在Cento7上安装php-fpm,并与nginx进行配合

我打算做的是搭建一个CentOS7 + PHP7 + nginx + MariaDB + Drupal8的环境。

CentOS7在常用的VirtualBox + Vagrant上顺利安装成功。
由于从网络上获取的PHP7信息基本相同,因此也很顺利安装成功。
然而,安装nginx并与PHP协同工作并不那么顺利,因此我在这里总结一下。

※ yum 包管理器已经添加了 epel 和 remi 仓库。
http://qiita.com/inakadegaebal/items/b57cf10339978d638305

nginx的安装

在其他网络信息中,大多数人明确指定了epel软件源,但以下普通的方法也能行得通。

# yum install nginx

nginx.conf的位置

打开/etc/nginx/nginx.conf文件(使用vi命令)。

PHP和nginx的协作

终于进行了PHP和nginx的合作。
我以为与Apache没有太大区别,但当我试图实际做的时候,发现需要安装php-fpm。
在PHP和Web服务器之间的合作方面,
在Apache中,可以选择模块版本或CGI版本进行合作,
而在nginx中,只能选择CGI版本(或者可以说是主流)。
以下文章可以很清楚地解释它们的区别。
http://qiita.com/kotarella1110/items/634f6fafeb33ae0f51dc

安装php-fpm

# yum install --enablerepo=remi,remi-php70 php-fpm

www.conf的位置

编辑/etc/php-fpm.d/www.conf

PHP与nginx的配合。第二部分。

准确来说,与nginx和php-fpm之间的通信采用的是TCP或UNIX域套接字这两种主要方法之一。但在这里,我们将采用被认为更快的UNIX域套接字的方式进行。

php-fpm的配置

user = nginx
group = nginx

listen = /var/run/php-fpm/php-fpm.sock

listen.owner = nginx
listen.group = nginx

当使用nginx运行php-fpm时,将要执行的用户设为“nginx”用户,将执行用户设置为nginx。
在启动php-fpm时,所指定的文件将会被生成。

# systemctl start php-fpm
# systemctl enable php-fpm

我将在启动和操作系统重新启动时进行注册。

nginx的配置

    server {
        location ~ .php$ {
            fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
            include fastcgi_params;
        }
    }

请将上述内容添加到名为”server”的部分中。

# systemctl start nginx
# systemctl enable nginx

我会在开始和操作系统重新启动时进行注册。

创建php文件 php

如果要修改nginx的默认文档根目录,只需相应地修改”/etc/nginx/nginx.conf”文件。默认文档根目录为”/usr/share/nginx/html”。

<?php phpinfo(); ?>