PHP をインストールする。
[takatoh@tk2-254-36564 ~]$ sudo yum install php-cli php-mysql php-common php php-cgi php-fpm php-dg php-mbstring
「パッケージ php-dg は利用できません。」て出たけど、php-dg って確か画像処理のライブラリだよな。たぶん画像使わないからいいか。
インストールの確認。
[takatoh@tk2-254-36564 ~]$ php -v PHP 5.3.3 (cli) (built: Mar 22 2017 12:27:09) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
設定ファイルを編集。
[takatoh@tk2-254-36564 ~]$ sudo cp /etc/php.ini /etc/php.ini.orig [takatoh@tk2-254-36564 ~]$ sudo vi /etc/php.ini
エラーログの場所を変更。
error_log = /var/log/php_errors.log
日本語の設定。
mbstring.language = Japanese (中略) mbstring.internal_encoding = UTF-8
http_input。
mbstring.http_input = auto
detect_order。
mbstring.detect_order = auto
expose_php を Off に。
expose_php = Off
最後にタイムゾーン。
date.timezone = Asia/Tokyo
php-fpm の設定。
設定ファイルは /etc/php-fpm.d/www.conf。
使用するポート。デフォルトのまま。
listen = 127.0.0.1:9000
許可するクライアントの IP アドレス。これも localhost だけなのでデフォルト。
listen.allowed_clients = 127.0.0.1
php-fpm サービスの実行ユーザとグループ。nginx としたので、あとで作る。
; 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 のプロセス数を定量にする。
pm = static
最大子プロセス数の設定。
pm.max_children = 5
php-fpm が受け付ける最大要求数。これを超えると子プロセスが再起動する。
pm.max_requests = 500
これで編集は終了。
実行ユーザを nginx としたので作る。
[takatoh@tk2-254-36564 ~]$ sudo useradd nginx [sudo] password for takatoh: useradd: ユーザ 'nginx' は既に存在します
あれ、あった。
じゃあ、php-fpm を起動。ついでに自動起動するように設定。
[takatoh@tk2-254-36564 ~]$ sudo /etc/init.d/php-fpm start php-fpm を起動中: [ OK ] [takatoh@tk2-254-36564 ~]$ sudo chkconfig php-fpm on [takatoh@tk2-254-36564 ~]$ sudo chkconfig --list php-fpm php-fpm 0:off 1:off 2:on 3:on 4:on 5:on 6:off
よし、最後にテストしてみよう。Nginx のデフォルトのデータ置き場が /usr/share/nginx/html になってるので、そこに phpinfo.php ファイルを置く。
これでブラウザでアクセスしてみると……あれ?ダメだ。
そうか。Nginx に PHP 用の設定をしてないからか。デフォルトの設定ファイルに追記。
location ~\.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
これでどうだ!
OK。ちゃんと表示された。
[追記]
インストールできなかった php-dg、dg じゃなくて gd だった。php-gd。
ま、どっちにしろいいか。
[更に追記]
とりあえず、php-gd もインストールしておいた。