在CentOS7.3上建立一个使用nginx和PHP-FPM的Web应用程序环境
简介
使用nginx来创建一个替代Apache的Web应用程序服务器环境。
此TIPS的目的是什么。
-
- nginxがどのようなものか体験してみたい。
- nginxとphpをどのように連携させるものか体験してみたい。
安装软件
-
- nginx 1.12.1-1
- php-fpm 5.4.16
步骤
1. 安装Nginx
1-1. 添加nginx的软件源仓库
为了从nginx官方网站获取nginx的安装包,需要在CentOS7.3上创建一个nginx.repo文件。
[nginx]
name=nginx.repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
1-2. 安装nginx
从Nginx官方网站下载软件包并安装。
[root@localhost]# yum -y install nginx
- 中略 -
Installed:
nginx.x86_64 1:1.12.1-1.el7
Complete!
1-3. 启动nginx服务
由于您可以在安装Nginx后立即确认其作为Web服务器的服务,因此请启动Nginx服务。
[root@localhost]# systemctl start nginx
1-4. 验证nginx的运行
当从他的计算机访问CentOS的IP地址时,如果显示以下欢迎消息,则可以确认Web服务的正常性。

2. 安装PHP(PHP-FPM)。
2-1.php5.4的安装
从CentOS官网下载并安装与PHP5.4相关的软件包。
[root@localhost]# yum -y install php php-mbstring php-pear php-fpm
- 中略 -
installed:
php.x86_64 0:5.4.16-42.el7
php-fpm.x86_64 0:5.4.16-42.el7
php-mbstring.x86_64 0:5.4.16-42.el7
php-pear.norach 1:1.9.4-21.el7
Dependency Installed:
httpd.x86_64 0:2.4.6-67.el7.centos.2
httpd-tools.x86_64 0:2.4.6-67.el7.centos.2
libzip.x86_64 0:0.10.1-8.el7
mailcap.noarch 0:2.1.41-2.el7
php-cli.x86_64 0:5.4.16-42.el7
php-common.x86_64 0:5.4.16-42.el7
php-process.x86_64 0:5.4.16-42.el7
php-xml.x86_64 0:5.4.16-42.el7
Complete!
修改2-3.php-fpm的设置
为了与nginx进行协作,需要编辑php-fpm的配置。
※用户帐户nginx和组帐户nginx会在安装过程中自动创建
[www]
listen = /var/run/php-fpm/php-fpm.sock;
listen.owner = nginx
listen.group = nginx
listen.mode = 660
user = nginx ← user = apacheから変更
group = nginx ← user = apacheから変更
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
slowlog = /var/log/php-fpm/www-slow.log
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session
开始2-4.php-fpm服务
[root@localhost]# systemctl start php-fpm
在nginx中添加配置以处理.php文件。
将 nginx 的配置文件按照下面的方式进行修改。
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
}
error_page 500 502 503 504 /50x.html
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/scripts$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
include fastcgi_params;
}
2-6. 重新启动 Nginx。
为了使对/etc/nginx/conf.d/default.conf的修改生效,重新启动nginx服务。
[root@localhost]# systemctl restart nginx
2-7. 創建動作測試腳本
创建一个脚本文件,其中包含用来执行phpinfo()函数以确认PHP是否正常处理的代码。
<?php phpinfo(); ?>
3. 服务发布
为了在CentOS重新启动时仍能提供服务,使用systemctl启用nginx和php-fpm的自动管理。
[root@localhost]# systemctl enable nginx
[root@localhost]# systemctl enable php-fpm
尝试完成后的感受
在参考了Qiita和Google上找到的信息后,我尝试了很多不同的方法,但实际上有很多我不了解的地方,所以我认为最好的做法还是自己去尝试并成功实践这些步骤。