デフォルトではNginxではPHPは動作しません。
元々静的コンテンツ向けのWebサーバが理由というのもあるかもしれあませんが、PHPをモジュールとして組み込むことで動作が可能になります。そのモジュールとして組み込むソフトウェアがPHP-FPM(FastCGI-Processor-Manager)というものです。
今どき、動的コンテンツのないWebサイトのほうが珍しいぐらいなので動作できるよう設定してみます。Nnginxのインストールは下記のページを参照してください。
NginxでPHPをモジュールとして動かすPHP-FPMをインストールします。
# yum install php php-mbstring php-fpm |
PHPの基本設定については以下を参照ください。
PHP-FPMの設定を下記の通り行います。
# vi /etc/php-fpm.d/www.conf <省略> ; RPM: apache Choosed to be able to access some dir as httpd user = nginx ; RPM: Keep a group allowed to write in log dir. group = nginx <省略> |
php-fpmを起動し、OS起動時にも自動的に起動するよう変更します。
# systemctl enable php-fpm # systemctl start php-fpm |
ログディレクトリをデフォルトでオーナーがapacheとなっておりますのでnginxに変更しておきます。
# chown nginx /var/log/php-fpm |
続いてnginxにphpの設定をします。
# vi /etc/nginx/conf.d/default.conf <省略> location / { root /usr/share/nginx/html; index index.html index.htm index.php; } location ~ \.php$ { root /usr/share/nginx/html; try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } <省略> |
設定を有効にするためにnginxを再起動します。
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # nginx -s reload |
PHPが動作するか確認してみます。ドキュメントルートに以下のファイルを置いて正常に表示されるか確認してみてください。
# vi /usr/share/nginx/html/info.php <?php phpinfo(); ?> |
これでブラウザからhttp://ip-address/info.phpにアクセスしPHPに関する詳細画面が表示されればOKです。
参考URL:https://centos.bungu-do.jp/archives/324