ほとんどの場面でapache httpdを使っているのだが、このnginxにもなれる必要が出てきた
ここではCentOS 7でnginxを使う場合について記す
インストール †
CentOS 7提供のリポジトリで nginx は提供されていないようで epel のリポジトリからインストール
[root@c110 ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@c110 ~]#
[root@c110 ~]# yum install epel-release
[root@c110 ~]# sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/epel.repo
[root@c110 ~]# yum --enablerepo=epel install nginx
起動 †
systemctlを使って起動させる
[root@c110 ~]# systemctl start nginx
[root@c110 ~]# systemctl enable nginx
ブラウザでそのマシンにアクセスすると下図のように表記される

この画面からコンテンツの場所は、/usr/share/nginx/html で、
設定ファイルは/etc/nginx/nginx.conf にあることが分かる
php連携 †
apache httpdだとモジュールphp5_moduleを読み込んで同一httpdプロセス内でphpを動かすかcgiベースで別のプロセスで動かすかであった。
nginxはどうやらcgiとしてphpを動かすみたい(あるかもしれないけど、調べた範囲で)。
まずはphp。php-fpm(php-FastCGI Process Manager)をインストール
[root@c110 ~]# yum install php-fpm
php連携(設定) †
nginxとphpの連携はTCPソケットかUNIXソケットで行う。インストールしたphp-fpmはTCPソケットが既定の様でこれを採用した
| [root@c110 ~]# diff -u /etc/php-fpm.d/www.conf.orig /etc/php-fpm.d/www.conf
--- /etc/php-fpm.d/www.conf.orig 2016-11-06 09:32:28.000000000 +0900
+++ /etc/php-fpm.d/www.conf 2017-05-21 21:31:48.486233802 +0900
@@ -36,9 +36,9 @@
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache Choosed to be able to access some dir as httpd
-user = apache
+user = nginx
; RPM: Keep a group allowed to write in log dir.
-group = apache
+group = nginx
; Choose how the process manager will control the number of child processes.
; Possible Values:
[root@c110 ~]#
|
そして、nginxへの設定
/etc/nginx/nginx.confの中へ追記する方法もあるのだが、「server block」向けのincludeフォルダが
用意されているので下記ファイルで設定を有効にさせた。
*nginx.confを汚したくないので
[root@c110 ~]# vi /etc/nginx/default.d/php-fpm.conf
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
サービス再起動 †
php-pfmのデーモンを起動させ、nginxを再起動させる
[root@c110 ~]# systemctl start php-fpm
[root@c110 ~]# systemctl enable php-fpm
[root@c110 ~]# systemctl restart nginx
テストコンテンツを用意する。っと言っても簡単なものを。場所は/usr/share/nginx/html/がコンテンツルートなので
[root@c110 ~]# vi /usr/share/nginx/html/index.php
<?php
phpinfo();
?>
[root@c110 ~]#
として、該当URLにアクセス

一応動いた