LNMP的安装和配置

LNMP指的是Linux、Nginx、MySQL和PHP。这里我们用虚拟机来进行安装。
我用的虚拟机是Virtual Box,虚拟机中装的是CentOS6.6的系统(32位)。

1. 准备工作

利用 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

2. 安装MySQL的源码包

这里,我们先安装mysql,且是以源码包的方式安装mysql。具体的安装方法可参考:http://blog.csdn.net/lamp_yang_3533/article/details/52979089

3. 安装Nginx的源码包

这里,也是以源码包的方式安装nginx,具体可参考:http://blog.csdn.net/lamp_yang_3533/article/details/53007419

4. 安装PHP的源码包

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,就已经安装和配置好了。

5. 配置Nginx来支持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。

你可能感兴趣的:(linux,nginx,mysql,PHP,php-fpm)