さくらのVPSプラン乗り換え計画(13)
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 もインストールしておいた。
