LNMP架构介绍:php
Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组经常使用来搭建动态网站或者服务器的开源软件,自己都是各自独立的程序,可是由于常被放在一块儿使用,拥有了愈来愈高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件造成三足鼎立之势,而且该软件开发的项目在软件方面的投资成本较低,所以受到整个IT界的关注。从网站的流量上来讲,70%以上的访问流量是LAMP来提供的。
1、Nginx简介:html
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器,在高链接并发的状况下Nginx 是 Apache 服务器不错的替代品.其特色是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好.目前中国大陆使用nginx网站用户有:新浪、网易、 腾讯,另外知名的微网志Plurk也使用nginx。 *Nginx 做为 负载均衡 服务器:*
Nginx 既能够在内部直接支持 Rails 和 PHP 程序对外进行服务,也能够支持做为 HTTP 代理服务器对外进行服务。 Nginx 采用 C 进行编写, 不管是系统资源开销仍是 CPU 使用效率都比 Perlbal 要好不少。做为邮件代理服务器: mysql
Nginx 同时也是一个很是优秀的邮件代理服务器(最先开发这个产品的目的之一也是做为邮件代理服务器), Last.fm 描述了成功而且美妙的使用经验。Nginx 是一个安装很是简单,配置文件很是简洁(还可以支持perl语法), Bugs很是少的服务器: Nginx 启动特别容易,而且几乎能够作到 7*24 不间断运行,即便运行数个月也不须要从新启动。 你还可以不间断服务的状况下进行软件版本的升级。nginx
*2、Nginx 安装* 模块依赖性Nginx须要依赖下面3个包 1. gzip 模块须要 zlib 库 ( 下载: http://www.zlib.net/ ) 2. rewrite 模块须要 pcre 库 ( 下载: http://www.pcre.org/ ) 3. ssl 功能须要 openssl 库 ( 下载: http://www.openssl.org/ ) Nginx包下载: http://nginx.org/en/download.html 依赖包安装顺序依次为:openssl、zlib、pcre, 而后安装Nginx包。
第一步: 下载安装所需包sql
openssl-fips-2.0.2.tar.gz url: https://www.openssl.org/source/openssl-fips-2.0.16.tar.gz数据库
zlib-1.2.7.tar.gz url: http://www.zlib.net/zlib-1.2.11.tar.gz编程
pcre-8.42.tar.gz url: ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gzvim
nginx-1.2.6.tar.gz url: http://nginx.org/download/nginx-1.15.0.tar.gzapi
第二步:依次安装openssl-fips-2.0.2.tar.gz, zlib-1.2.7.tar.gz, pcre-8.21.tar.gz, nginx-1.2.6.tar.gz安全
1.安装openssl-fips-2.0.2.tar.gz
[root@localhost mrms]# tar -zxvf openssl-fips-2.0.2.tar.gz
[root@localhost mrms]# cd openssl-fips-2.0.2
[root@localhost openssl-fips-2.0.2]# ./config
[root@localhost openssl-fips-2.0.2]# make
[root@localhost openssl-fips-2.0.2]# make install
2.安装zlib-1.2.7.tar.gz
[root@localhost mrms]# tar -zxvf zlib-1.2.7.tar.gz
[root@localhost mrms]# cd zlib-1.2.7
[root@localhost zlib-1.2.7]# ./configure
[root@localhost zlib-1.2.7]# make
[root@localhost zlib-1.2.7]# make install
3.安装pcre-8.21.tar.gz
[root@localhost mrms]# tar -zxvf pcre-8.21.tar.gz
[root@localhost mrms]# cd pcre-8.21
[root@localhost pcre-8.21]# ./configure
[root@localhost pcre-8.21]# make
[root@localhost pcre-8.21]# make install
4.安装 nginx-1.2.6.tar.gz
[root@localhost mrms]# tar -zxvf nginx-1.2.6.tar.gz
[root@localhost mrms]# cd nginx-1.2.6
[root@localhost nginx-1.2.6]# ./configure --with-pcre=../pcre-8.21 --with-zlib=../zlib-1.2.7 --with-openssl=../openssl-fips-2.0.2
[root@localhost nginx-1.2.6]# make
[root@localhost nginx-1.2.6]# make install
至此Nginx的安装完成! 第三步:检测是否安装成功
[root@localhost nginx-1.2.6]# cd /usr/local/nginx/sbin
[root@localhost sbin]# ./nginx -t
启动nginx
[root@localhost sbin]# ./nginx
查看端口
[root@localhost sbin]# netstat -anple | grep 80
## 安装PHP 1、PHP简介: 脚本语言,网站建设,服务器端运行PHP定义:一种服务器端的 HTML 脚本/编程语言,是一种简单的、面向对象的、解释型的、健壮的、安全的、性能很是之高的、独立于架构的、可移植的、动态的脚本语言。是一种普遍用于 Open Source(开放源代码)的尤为适合 Web 开发并能够嵌入 HTML 的多用途脚本语言。它的语法接近 C,Java 和 Perl,并且容易学习。该语言让 Web 开发人员快速的书写动态生成的网页。 2、安装: 2.1 php下载链接:http://www.php.net/downloads.php 2.2 下载解压 3.1 wget http://cn2.php.net/get/php-7.2.6.tar.bz2/from/this/mirror 3.2 tar xf php-7.2.6.tar.bz2 3.3 cd php-7.2.6 2.3 配置 #./configure --prefix=/usr/local/php \ --with-curl \ --with-freetype-dir \ --with-gd \ --with-gettext \ --with-iconv-dir \ --with-kerberos \ --with-libdir=lib64 \ --with-libxml-dir \ --with-mysql \ --with-mysqli \ --with-openssl \ --with-pcre-regex \ --with-pdo-mysql \ --with-pdo-sqlite \ --with-pear \ --with-png-dir \ --with-xmlrpc \ --with-xsl \ --with-zlib \ --enable-fpm \ --enable-bcmath \ --enable-libxml \ --enable-inline-optimization \ --enable-gd-native-ttf \ --enable-mbregex \ --enable-mbstring \ --enable-opcache \ --enable-pcntl \ --enable-shmop \ --enable-soap \ --enable-sockets \ --enable-sysvsem \ --enable-xml \ --enable-zip
注:./configure 过程当中会出现不少问题,根据报错信息百度相关资料进行解决。这里再也不说明,在后面的问题和解答段落列出部分问题和解决方式,仅供参考!
若是须要GD库还要 ./configure --prefix=/usr/local/php --with-mysql --enable-fpm--enable-opcache --with-freetype-dir --with-jpeg-dir --with-png-dir --with-gd --with-zlib --with-libxml-dir --enable-xml --disable-debug --enable-safe-mode --enable-mbstring 若是配置错误,须要安装须要的模块,直接yum一并安装依赖库 yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql pcre-devel 3、配置成功:
出现上图说明配置成功~
4、 make && make install
到此处则编译完成!
5、后续工做
5.1 cp -R ./sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf 5.2 拷贝php.ini文件
安装目录有2个文件:php.ini-development和php.ini-production
注意php.ini-production拥有较高的安全性设定,则适合上线当产品使用 cp php.ini-development /usr/local/php/lib/php.ini 或者 cp php.ini-production /usr/local/php/lib/php.ini 若是操做了这一步之后使用phpinfo()就会看到Loaded Configuration File:
5.3 cd /usr/local/php/etc/php-fpm.d ; cp www.conf.default www.conf
6、php-fpm启动
cp -R ./sapi/fpm/php-fpm /etc/init.d/php-fpm /etc/init.d/php-fpm 至此php环境搭建完成,php-fpm 进行也启动完成。下一步要将 nginx + php 经过php-fpm进行整合,用于解释php页面。
7、Nginx + php 结合
编辑nginx.conf文件 location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name; } #将 scripts 修改为对应的发布目录便可,并在对应发布目录下面建立index.php文件 /usr/local/nginx/sbin/nginx -t ; /usr/local/nginx/sbin/nginx -s reload 重启nginx ,进行测试 curl localhost/index.php -I
Mysql 数据库安装
参考连接: http://www.javashuo.com/article/p-eybjqely-k.html
phpMyadmin的安装配置:
参考链接:https://blog.csdn.net/u014410695/article/details/72779324
问题和解决:
一、编译安装php遇到的问题和解决方法: https://www.cnblogs.com/z-ping/archive/2012/06/18/2553929.html 二、问题:在启动php-fpm出现 [root@localhost etc]# service php-fpm start Starting php-fpm [28-Nov-2016 17:13:23] WARNING: Nothing matches the include pattern ‘/usr/local/php/etc/php-fpm.d/*.conf’ from /usr/local/php/etc/php-fpm.conf at line 125. [28-Nov-2016 17:13:23] ERROR: No pool defined. at least one pool section must be specified in config file [28-Nov-2016 17:13:23] ERROR: failed to post process the configuration [28-Nov-2016 17:13:23] ERROR: FPM initialization failed 解决方法: 进入PHP安装目录/etc/php-fpm.d cp www.conf.default www.conf 三、找不到pid文件 修改vim /etc/my.cnf 中的 pid-file的配置,配置到相关位置。 四、ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 本身是作了一个软链接 ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock;由于mysql进程会读取默认位置/var/lib/mysql/mysql.sock文件,即便修改了my.cnf中的socket的配置。本身测试也不行。 参考链接为:https://www.cnblogs.com/fuhj02/p/3541173.html 五、出现mysql第一次能够正常启动,可是后续restart出现PID文件找不到,killall mysql 以后在次启动就能够完成了。 数据编译的参数和编译时的相关设置,大多数时仿照网上,没有理解其中的意思,后续还需增强数据库的学习。 六、出现 curl localhost/phpmyadmin 403错误。则在nginx.conf上面root 添加规则index.php。重启nginx,再次尝试访问。