
httpd.conf に環境変数を設定しました:
SetEnv http_proxy "http://localhost:3128"
しかし、PHP ではこの変数を取得できませんgetenv
:
<?php
echo getenv("http_proxy");
phpinfo();
print_r($_ENV);
getenv
空を返し、print_r($_ENV)
次のコンテンツを表示します。
Array ( [LANG] => C [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin [NOTIFY_SOCKET] => /run/systemd/notify )
興味深いことに、環境変数はphpinfo
出力の「Apache 環境」セクションの下に表示されます。
(私のシステムは apache 2.4/php 5.6/CentOS7 です)
答え1
PHP の5.6には蜂がいるサポートされていない 3年間今すぐアップグレード現行版今すぐ!次に、次の内容を変更します。
使用SetEnv HTTP_PROXY "http://localhost:3128"
- 環境変数では大文字と小文字が区別されます。
getenv(varname: "HTTP_PROXY", local_only: true)
サーバー環境から変数を要求するために使用します。
ローカル変数のみを受け取るように明示的に指定しない場合は、代わりにfastcgiから結果が取得されるため、varnameがHTTP_
次のように始まる場合は、代わりに危険なほどに安全でないコードを混乱させるヘッダー付きで黙って捨てられたSAPIの動作をオプトアウトすることはgetenv() 関数の説明に記載されている:
PHP が Fast CGI などの SAPI で実行されている場合、putenv() を使用して同じ名前のローカル環境変数が設定されている場合でも、この関数は常に SAPI によって設定された環境変数の値を返します。ローカルに設定された環境変数の値を返すには、local_only パラメータを使用します。