在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服务的正常性。

nginx_services_check.png

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上找到的信息后,我尝试了很多不同的方法,但实际上有很多我不了解的地方,所以我认为最好的做法还是自己去尝试并成功实践这些步骤。

广告
将在 10 秒后关闭
bannerAds