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


10

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

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

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

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

回答:


11

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

まず、個別の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ファイルを作成すると、このコマンドのみがロードされ/etc/php/php.iniphpcliコマンドではロードされません。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を別々に構成できます。

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


1
この2番目のアプローチはデバッグに非常に役立ちます。つまり、php-fpmサービスとconfファイル/ディレクトリのサフィックス付きコピーを作成し--php-ini、独自のfpm構成を指定し、オプションで別のiniをで指定して、2番目にのみxdebugをロードします。サービス。もちろん、2番目のサービスは別のポート/ソケットで実行する必要があります。Environment="PHP_INI_SCAN_DIR=/etc/php-debugger.d:"サービスファイルを設定し、コロンを追加して、debugger.ddir にコピーしたxdebugに加えて、すべてのデフォルトモジュールをロードします。
Walf

3

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

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

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

#〜/ .bashrc
#エイリアスと個人的な機能

#PHPソースパーソナルini
エイリアスphp = 'php -c /path/to/your/php.ini'

#lsを色付け
エイリアスls = 'ls --color'
...

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


いいアイデアですが、私が探しているものとは正確には異なります。おそらく他に方法がない場合。ありがとう。
Fiete

まあ、多分あるかもしれませんが、php、php-fpmのどのバージョンとあなたの基本的なセットアップ(nginx、apacheなどを使用していますか)を共有してください。php-fpmの設定方法。多分そこから、私たちは役に立ちます
the_architecht
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.