2016-10-12 15 views
0

私はENVモジュールがインストールされたことを確認しました。Apache(またはOS)で環境変数を設定してPHPで値を取得する方法は?

a2enmod 
Your choices are: access_compat 
... 
Which module(s) do you want to enable (wildcards ok)? 
env 
Module env already enabled 

私は次のセクションを追加することによって、localhostの "/etc/apache2/apache2.conf" で環境変数を設定してみました:

<VirtualHost *:80> 
    ServerName localhost 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/html 
    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
    SetEnv devmode 1 
</VirtualHost> 

sudo /etc/init.d/apache2 restart 

...そして使用してPHPの値を取得:...再起動Apacheの使用

getenv("devmode") 

か:

apache_getenv("devmode") 

...しかし、ローカルホスト上のブラウザを介してスクリプトにアクセスしたときに何がこれらの機能に現れない、値はPHPで空です。私はVirtualHostセクションせずに、それ自身の上でコマンドを置くことを試みた:

SetEnv devmode 1 

私はenvvarsのに次の行追加してみました:

export devmode=1 

を更新は 私もでVirtualHostセクションを入れてみました/ etc/apache2/sites-にある専用ファイルを使用可能にし、a2を使用してファイルを追加します。

私はLinux Mintバージョン17.3を使用しています。私は間違って何をしていますか?

+1

virthostディレクティブが実行されたことを確認してください。 Apacheはすべての仮想ホストを適用しません。最初に見つかった仮想ホストだけが一致します。 –

+0

私はApacheについて全く分かりません。 apache2.confファイルには他の "VirtualHost"セクションはありませんが。 – tyebillion

+0

SetEnvのdevmodeテストを.htaccessファイルに入れてみてください。 –

答えて

0

私は元の質問で説明したように、専用のファイルにVirtualHostセクションを入れた後、私は解決策が再びApacheの再起動コマンドを実行することがわかった:

sudo /etc/init.d/apache2 restart 

はその後DEVMODE変数はに現れましたPHP。

+0

'sudo /etc/init.d/apache2 restart'を実行してもうまくいきませんでしたか? –

+0

いいえ、私は専用ファイルを作成した後にこれを行いました。 – tyebillion

1

apache_getenvを試しましたか?

+0

これは知っておくと便利です。私はこの変更を試みましたが、apache_getenv( "devmode")の値はfalseです。 – tyebillion

+1

私の経験では、環境変数はどこにでも表示されます( 'getenv()'、 '$ _ENV'、' $ _SERVER' ...)。通常、専用のApache機能は必要ありません。 –

+0

ÁlvaroGonzálezあなたはapache_getenvが専用の関数であることを意味しますか? – tyebillion

関連する問題