20

私はubuntuコミュニティの推奨に従って/etc/environmentに設定されたいくつかのカスタム環境変数を持つubuntuサーバーを持っています

コマンドラインからphpを使用すると、phpのgetenv()関数を使用してこの変数にアクセスできます。

また、phpinfo()コマンドラインから実行すると、[環境]セクションにすべての変数が表示されます。

ただし、php5-fpmによって実行されているプロセス内の同じデータにアクセスしようとすると、このデータは利用できません。の環境セクションで見ることができるのphpinfo()は次のとおりです。

USER    www-data
HOME    /var/www

私はコマンドラインがこのiniを使用していることを知っています:

/etc/php5/cli/php.ini

そしてfpmは以下を使用します:

/etc/php5/fpm/php.ini

ENV変数が両方で実行されない理由を説明する2つの違いを見つけることができませんでした。

また、実行する場合:

sudo su www-data

次に、www-dataユーザーが実際に利用できると期待している環境変数をエコーし​​ます。

fpmによって実行されるphpプロセスに環境変数を取り込むために何をする必要がありますか?

4

4 に答える 4

1

問題は、php-fpm を実行するときです。プロセスは環境をロードしません。
起動スクリプトでロードできます。
私のphp-fpmはapt-getによってインストールされます。
そのため、

/etc/init.d/php5-fpm

追加します(ドットとスラッシュの間のスペースに注意してください)

. /etc/プロファイル

/etc/profile を変更して追加します

. /home/user/env.sh

env.sh で。export必要に応じて環境を整えることができます。

次に変更します

php-fpm.conf

env[MY_ENV_VAR_1] = 'value1' セクションの下に追加し[www]ます。
最後。php-fpm を再起動します。fpm で環境負荷を取得します。

于 2014-04-16T01:10:37.860 に答える