さくらのVPSプラン乗り換え計画(13)

PHP をインストールする。

[[email protected] ~]$ sudo yum install php-cli php-mysql php-common php php-cgi php-fpm php-dg php-mbstring

「パッケージ php-dg は利用できません。」て出たけど、php-dg って確か画像処理のライブラリだよな。たぶん画像使わないからいいか。
インストールの確認。

[[email protected] ~]$ 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

設定ファイルを編集。

[[email protected] ~]$ sudo cp /etc/php.ini /etc/php.ini.orig
[[email protected] ~]$ 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 としたので作る。

[[email protected] ~]$ sudo useradd nginx
[sudo] password for takatoh: 
useradd: ユーザ 'nginx' は既に存在します

あれ、あった。
じゃあ、php-fpm を起動。ついでに自動起動するように設定。

[[email protected] ~]$ sudo /etc/init.d/php-fpm start
php-fpm を起動中:                                          [  OK  ]
[[email protected] ~]$ sudo chkconfig php-fpm on
[[email protected] ~]$ 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 もインストールしておいた。

カテゴリー: misc, PHP パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください