在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(); ?>