web-dev-qa-db-ja.com

Arch Linuxでphp(cli)とphp-fpmの個別の設定ファイルを作成するにはどうすればよいですか

2つのフォルダー/etc/php/7.0/cli/etc/php/7.0/fpmを使用してdebianとubuntuで可能であるように、php(cli)とphp-fpmに個別のphp.iniファイルを作成することは可能ですか?

各サブシステムのconf.dディレクトリを使用して独立したモジュールをロードできれば、さらにクールになります。

誰かがそれを個別にどのように構成できるか考えていますか?

また、ubuntu 16.04で構成されているような構造を使用しようとしましたが、成功しませんでした。

10
Fiete

私は私の問題を解決するためにいくつかの微調整を見つけました。

最初:個別のphp.iniファイルをロードします:

Arch Linuxフォーラムのユーザーがman phpページからこれを投稿しました:

FILES
   php-cli.ini    The configuration file for the CLI version of PHP.

   php.ini        The standard configuration file will only be used when php-cli.ini cannot be found.

/etc/php/php-cli.iniファイルを作成すると、php cliコマンドで/etc/php/php.iniではなく、このファイルのみがロードされます。 php-fpmはまだ/etc/php/php.iniを読み込んでいます。

2番目:異なるモジュール構成をロードします:

phpのドキュメントPHP_INI_SCAN_DIR環境変数で見つけました。したがって、/usr/lib/systemd/system/php-fpm.serviceファイルを/etc/systemd/system/php-fpm.serviceに移動し、次の構成をサービスファイルに追加しました。

[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target

[Service]
Type=notify
Environment="PHP_INI_SCAN_DIR=/etc/php/fpm/conf.d" ; <-- I have added this line
PIDFile=/run/php-fpm/php-fpm.pid
ExecStart=/usr/bin/php-fpm --nodaemonize --fpm-config /etc/php/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

サービスを再起動/再読み込みした後、php-fpmは/etc/php/fpm/conf.dからのみファイルを読み込み、/etc/php/conf.dからは読み込みません。これにより、cliとfpmを別々に構成できます。

おそらくこれは最善の解決策ではありませんが、私は自分のユースケースに適しています。誰もがより良い解決策を持っているなら、あなたの答えを投稿することを躊躇しないでください!

11
Fiete

Cliバージョンではいつでもこれを行うことができます。

 php -c /path/to/your/php.ini

php-fpmで提供されるものをデフォルトのままにします。またはさらに良いことに、これをログインスクリプトに追加します

#〜/ .bashrc 
#エイリアスと個人用関数
 
#PHP source personal ini 
 alias php = 'php -c /path/to/your/php.ini'

# colorize ls 
 alias ls =' ls --color '
。 .. 

使用しているバージョンを指定した方がいいでしょう

3
the_architecht