在nginx中药使用php可不像apache那样,因为apache是把php当做自己的一个模块来启动的,
而我们的nginx是把http请求转发给php程序,也就是说,php和nginx是相互独立的的进程
php于nginx的通讯,我们称为fastcgi运行方式。
下面我们来说说nginx怎样整合php(nginx的安装可以看看我的文章“linux下编译安装nginx”)。
1、首先,我们应该要获取php的安装包。
去php官网下载:http://www.php.net/downloads.php
这里我选的是php5.6
将下载好的安装包放在linux目录下(我是放在/root目录下,大家可以随意放置,可以创建一个专门放置安装包的目录。)
2、解压安装包:tar zxvf php-5.6.39.tar.gz
进入到解压后的目录:cd php-5.6.39/
./configure配置: ./configure --prefix=/usr/local/fastphp --with-mysql=mysqlnd --enable-mysqlnd --with-gd --enable-gd-native-ttf --enable-gd-jis-conv --enable-fpm
(如果在configure的过程中出现了报错,按照错误提示进行操作,一般是一些依赖软件没有安装,使用yum进行安装)
make
make install
3、配置一些配置文件。
进入php安装目录:cd /usr/local/fastphp/
将php配置文件拷贝到 php安装目录中的lib目录下:cp /root/php-5.6.39/php.ini-development ./lib/php.ini
cp ./etc/php-fpm.conf.default ./etc/php-fpm.conf
启动php:[root@VM_16_2_centos sbin]# ./php-fpm //其中php-fpm在php安装目录的sbin目录下,直接执行就行了
4、配置nginx.conf文件。
vi /usr/local/nginx/conf/nginx.conf
在nginx.conf文件中加入红色部分。
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#error_page 404 /404.html;
5、重启nginx。
/usr/local/nginx/sbin/nginx -s reload
6、在nginx的安装目录下的html目录中写一个test.php程序文件。
<?php
phpinfo();
?>
7、访问。http://www.panchao.com/test.php(我用的是云服务器,有外网ip,在本地电脑配了hosts:111.231.226.228 www.panchao.com 所以能用www.panchao.com 这个域名来访问,如果大家是本地虚拟机的话可以用127.0.0.1/test.php来访问。)我们如果得到这样的结果,则表示我们nginx和php的整合成功了。