LNMP指的是Linux、Nginx、MySQL和PHP。这里我们用虚拟机来进行安装。
我用的虚拟机是Virtual Box,虚拟机中装的是CentOS6.6的系统(32位)。
利用 yum 工具,在线安装php函数相关的rpm包和其他工具包。
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel
yum -y install freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel
yum -y install glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel
yum -y install e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel
yum -y install openssl openssl-devel openldap openldap-devel nss_ldap
yum -y install openldap-client openldap-servers
这里,我们先安装mysql,且是以源码包的方式安装mysql。具体的安装方法可参考:http://blog.csdn.net/lamp_yang_3533/article/details/52979089
这里,也是以源码包的方式安装nginx,具体可参考:http://blog.csdn.net/lamp_yang_3533/article/details/53007419
php-5.6.27 源码包的下载地址:http://cn.php.net/distributions/php-5.6.27.tar.gz
其实,在PHP的官网给出了具体的安装方法,故也可参考:http://php.net/manual/en/install.unix.nginx.php
下载好php-5.6.27.tar.gz后,就来进行安装。
tar zxf php-5.6.27.tar.gz
cd php-5.6.27
./configure --enable-fpm --with-mysql
make
sudo make install
说明:选项 –enable-fpm 表示启用创建的fpm SAPI 可执行文件,也就是使fpm(在php中fpm就是指php-fpm)可用。
FPM (FastCGI Process Manager) ,即FastCGI进程管理器,它对于高负载的网站非常有用。
想要了解什么是FastCGI,可参考:http://blog.csdn.net/lamp_yang_3533/article/details/53002731
上述安装过程完成后,接下来,将配置文件和可执行文件拷贝至正确的目录,命令如下:
cp php.ini-development /usr/local/lib/php.ini
cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin
修改php的配置文件/usr/local/lib/php.ini,添加下面的代码:
cgi.fix_pathinfo=0
date.timezone=Asia/Shanghai
添加用户和用户组 www-data
groupadd www-data
useradd -g www-data www-data
修改php-fpm的配置文件/usr/local/etc/php-fpm.conf,添加下面的代码:
user = www-data
group = www-data
启动php-fpm:
/usr/local/bin/php-fpm
php-fpm的其他操作:
/usr/local/bin/php-fpm -t 检测php-fpm.conf配置信息是否正确
kill -s QUIT 17713 平滑关闭php-fpm,末尾的那个数字为主进程号
到此,FastCGI进程管理的PHP,就已经安装和配置好了。
下面介绍nginx如何通过php-fpm的FastCGI进程对php文件进行解析。
nginx服务器本身无法解析php文件,要实现nginx对php的支持,其实就是将对php文件的请求通过TCP协议交给FastCGI进程监听的IP地址和端口。如果把php-fpm当做是动态应用服务器,那么nginx就是一个反向代理服务器。nginx通过反向代理实现对PHP文件的解析。
修改nginx的配置文件 /usr/local/nginx/conf/nginx.conf,在server大括号内,添加下面的代码:
location / {
root html;
index index.php index.html index.htm;
}
location ~* \.php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
保存退出后,使用下面的命令,使nginx重新加载配置文件,而不用重启nginx服务器:
/usr/local/nginx/sbin/nginx -s reload
在nginx的root根目录(/usr/local/nginx/html)中,创建一个php文件,进行测试。
echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php
请确保php-fpm和nginx都已启动,php-fpm默认监听9000端口,nginx默认监听80端口。
在本地主机使用curl命令访问127.0.0.1或localhost进行测试,或者,在局域网内的其他电脑上通过浏览器访问该linux主机的局域网IP。