環境
AmazonLinuxに検証なのでとりあえず入るモジュールを全部入れています。
# yum install php71-fpm php71-opcache php71-pecl-apcu
# yum install php71-bcmath php71-dba php71-dbg php71-enchant php71-gd php71-gmp php71-imap php71-intl php71-json php71-ldap php71-mbstring php71-mcrypt php71-mysqlnd php71-odbc php71-pdo php71-pdo-dblib php71-pecl-igbinary php71-pecl-igbinary-devel php71-pecl-imagick php71-pecl-imagick-devel php71-pecl-memcache php71-pecl-memcached php71-pecl-oauth php71-pecl-redis php71-pecl-ssh2 php71-pgsql php71-process php71-pspell php71-recode php71-snmp php71-soap php71-tidy php71-xml php71-xmlrpc
した後。
# ls -l | grep php
drwxr-xr-x 2 root root 4096 Dec 11 02:00 php-7.1.conf
drwxr-xr-x 2 root root 4096 Dec 11 02:09 php-7.1.d
-rw-r--r-- 1 root root 62394 Dec 5 19:41 php-7.1.ini
-rw-r--r-- 1 root root 4044 Dec 5 19:41 php-fpm-7.1.conf
drwxr-xr-x 2 root root 4096 Dec 11 02:08 php-fpm-7.1.d
lrwxrwxrwx 1 root root 30 Dec 11 02:02 php-fpm.conf -> /etc/alternatives/php-fpm.conf
lrwxrwxrwx 1 root root 27 Dec 11 02:02 php-fpm.d -> /etc/alternatives/php-fpm.d
drwxr-xr-x 2 root root 4096 Dec 11 02:09 php-zts-7.1.d
lrwxrwxrwx 1 root root 27 Dec 11 02:02 php-zts.d -> /etc/alternatives/php-zts.d
lrwxrwxrwx 1 root root 23 Dec 11 02:02 php.d -> /etc/alternatives/php.d
lrwxrwxrwx 1 root root 25 Dec 11 02:02 php.ini -> /etc/alternatives/php.ini
多すぎてわけが分からないです。*.confがファイルだったりディレクトリだったりと地獄。
公式でもtypoしていて、
# cat /etc/php-7.1.d/10-opcache.ini | grep 'opcache.blacklist_filename'
opcache.blacklist_filename=/etc/php-7.0.d/opcache*.blacklist
と、7.0のディレクトリ名になってました。
整理
まず、ztsは、マルチスレッド(Apacheのworker/event)で動作させるときに使う特別なPHPのためのもの(のはず)なので、一旦頭から追い出します。
# ls -l /etc/ | grep php | grep -v zts
drwxr-xr-x 2 root root 4096 Dec 11 15:38 php-7.1.conf
drwxr-xr-x 2 root root 4096 Dec 11 15:39 php-7.1.d
-rw-r--r-- 1 root root 62394 Dec 6 04:41 php-7.1.ini
-rw-r--r-- 1 root root 4044 Dec 6 04:41 php-fpm-7.1.conf
drwxr-xr-x 2 root root 4096 Dec 11 16:08 php-fpm-7.1.d
lrwxrwxrwx 1 root root 30 Dec 11 15:38 php-fpm.conf -> /etc/alternatives/php-fpm.conf
lrwxrwxrwx 1 root root 27 Dec 11 15:38 php-fpm.d -> /etc/alternatives/php-fpm.d
lrwxrwxrwx 1 root root 23 Dec 11 15:38 php.d -> /etc/alternatives/php.d
lrwxrwxrwx 1 root root 25 Dec 11 15:38 php.ini -> /etc/alternatives/php.ini
少し減りました。
また、シンボリックリンクが指す先も実はこのls結果の中で完結しているので省きます。
# ls -l /etc/ | grep php | grep -v zts | grep -v "^l"
drwxr-xr-x 2 root root 4096 Dec 11 15:38 php-7.1.conf
drwxr-xr-x 2 root root 4096 Dec 11 15:39 php-7.1.d
-rw-r--r-- 1 root root 62394 Dec 6 04:41 php-7.1.ini
-rw-r--r-- 1 root root 4044 Dec 6 04:41 php-fpm-7.1.conf
drwxr-xr-x 2 root root 4096 Dec 11 16:08 php-fpm-7.1.d
見るのはこの5つだけでOKです!
-
php-7.1.conf/
これもphpの設定ファイルの格納ディレクトリです。 /etc/php-7.1.conf/README に、; Copy or create the php.ini file here just for php 7.1. ; The php.ini file in this directory will take precendence ; over /etc/php.ini for php 7.1 only
とあるように、こちらの設定が優先されます。
-
php-7.1.d/
phpの各モジュール用の設定ファイルを格納します。 -
php-7.1.ini
phpの設定ファイルです。普通にiniファイルです。 -
php-fpm-7.1.conf
php-fpmの設定ファイルです。global設定を入れます。 -
php-fpm-7.1.d/
php-fpmの設定ファイルです。pool設定を入れます。
まとめた表
ファイル/ディレクトリ | 説明 |
---|---|
php-7.1.ini | phpの設定ファイルです。普通にiniファイルです。 |
php-7.1.conf/ | phpの追加設定ファイルの格納ディレクトリです。 |
php-7.1.d/ | phpの各モジュール用の設定ファイルを格納します。 |
php-fpm-7.1.conf | php-fpmの設定ファイルです。global設定を入れます。 |
php-fpm-7.1.d/ | php-fpmの設定ファイル格納ディレクトリです。pool設定を入れます。 |