nginx + PHP (php-fpm) のインストール

nginxのインストール

次の記事を参考にnginxをインストールします。

nginxのインストール

php-fpmのインストール

php-fpmとPHP関連のパッケージをインストールします。

yum install php-fpm php-mysql php-mbstring php-pear php-gd

PHPの設定 (php.ini)

タイムゾーンをAsia/Tokyoに設定します。

vi /etc/php.ini
;date.timezone =
date.timezone = Asia/Tokyo

php-fpmの設定

サーバの動作ユーザ、グループをnginxに変更します。

vi /etc/php-fpm.d/www.conf
;user = apache
user = nginx
;group = apache
group = nginx

ログディレクトリの所有者もapacheからnginxに変更します。

chown nginx /var/log/php-fpm/

php-fpmデーモンの起動

php-fpmデーモンをsystemctl経由で起動します。

systemctl start php-fpm

ホスト起動時のphp-fpmの自動起動を有効にします。

systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.

php-fpmデーモンの起動状態を確認します。

systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2017-03-29 14:06:29 UTC; 17s ago
 Main PID: 4392 (php-fpm)
   Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
   CGroup: /system.slice/php-fpm.service
           ├─4392 php-fpm: master process (/etc/php-fpm.conf)
           ├─4394 php-fpm: pool www
           ├─4395 php-fpm: pool www
           ├─4396 php-fpm: pool www
           ├─4397 php-fpm: pool www
           └─4398 php-fpm: pool www

nginxにおけるPHP, FastCGIの設定

nginxにドメインexample.comの設定を追加します。phpファイルの場合はphp-fpm経由で処理をするFastCGIの設定を記述します。

vi /etc/nginx/conf.d/example.com.conf
server {
    listen       80;
    server_name  example.com;
    root   /var/www/webuser/example.com/htdocs;
    index  index.html index.htm index.php;

    location ~ \.php$ {
        try_files      $uri =404;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

nginxコマンドの-tオプションで設定ファイルのテストをします。

nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

nginxをリロードして設定を反映します。

nginx -s reload

サイト管理ユーザの作成

サイト管理ユーザwebuserを作成します。

/usr/sbin/useradd webuser -m -d /var/www/webuser

passwdコマンドでwebuserのパスワードを設定します。

passwd webuser
Changing password for user webuser.
New password: (パスワード入力)
Retype new password: (パスワード再入力)
passwd: all authentication tokens updated successfully.

作成直後のホームディレクトリのパーミッションは700のため、nginxがアクセス出来るように711のパーミッションに変更します。

chmod 711 /var/www/webuser

Webコンテンツの配置

公開ディレクトリ/var/www/webuser/example.com/htdocs/を作成して、phpinfoを表示するinfo.phpを配置します。

mkdir -p /var/www/webuser/example.com/htdocs/
echo ' /var/www/webuser/example.com/htdocs/info.php

動作確認

http://example.com/info.phpにアクセスすることでphpinfoが表示されれば、動作することが確認できます。