ほとんどの場面で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 にあることが分かる
apache httpdだとモジュールphp5_moduleを読み込んで同一httpdプロセス内でphpを動かすかcgiベースで別のプロセスで動かすかであった。
nginxはどうやらcgiとしてphpを動かすみたい(あるかもしれないけど、調べた範囲で)。
まずはphp。php-fpm(php-FastCGI Process Manager)をインストール
[root@c110 ~]# yum install php-fpm
nginxとphpの連携はTCPソケットかUNIXソケットで行う。インストールしたphp-fpmはTCPソケットが既定の様でこれを採用した
|
そして、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にアクセス
一応動いた