요구사항
<code>在PHP开发中为了区分线上生产环境还是本地开发环境, 如果我们能通过判断$_SERVER['RUNTIME_ENVIROMENT']为 'DEV'还是'PRO'来区分该多好, 可惜的是$_SERVER数组里面根本没有RUNTIME_ENVIROMENT这个元素。 </code>
1. nginx의 fastcgi_param을 통해 설정하세요
nginx 구성 파일에서는 전체 nginx 구성 파일 nginx.conf에 있을 수도 있고 별도의 파일에 있을 수도 있습니다. 웹사이트 구성 환경 설정: www.tomener.com.conf
구성 환경 서버 섹션 위치에 해당 구성 정보 추가:
<code>location ~ \.php($|/) { try_files $uri =404; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param RUNTIME_ENVIROMENT 'PRO'; # PRO or DEV }</code>
fastcgi_param RUNTIME_ENVIROMENT만 추가됨 여기서 'PRO'는 값입니다. 끝에 더 많은 것을 추가할 수 있습니다
그런 다음 nginx를 다시 시작하세요
<code>nginx -s reload</code>
2. PHP 기본 구성 파일 php-fpm.conf를 통해 설정합니다
이 설정은 기본 구성 파일인 php-fpm.conf에 배치되어야 하며 include 지시어로 설정된 하위 구성 파일에 배치할 수 없습니다. 그렇지 않으면 오류가 보고됩니다: "어레이는 허용되지 않습니다. 전역 섹션"
My php-fpm.conf의 위치는 /usr/local/php/etc/php-fpm.conf에 있습니다
구성 파일에 직접 추가하세요.
<code>env[RUNTIME_ENVIROMENT] = 'PRO' </code>
php-fpm 추가 후 재시작
<code>service restart php-fpm</code>
위의 두 가지 방법을 통해 $_SERVER 변수 값을 추가한 후, php에서 $_SERVER를 통해 해당 변수 값을 직접 얻을 수 있습니다. 파일.
그러나 nginx의 fastcgi_param을 통해 구성 정보를 설정하면 nginx가 php와 상호 작용할 때 많은 양의 데이터가 전송된다고 합니다.
Apache는 환경 변수를 설정합니다
<code>SetEnv 变量名 变量值</code>
<code><VirtualHost *:80> ServerAdmin webmaster@demo.com DocumentRoot "e:\wwwroot\demo" ServerName my.demo.com ErrorLog "logs/my.demo.com-error.log" CustomLog "logs/my.demo.com-access.log" common SetEnv RUNTIME_ENVIROMENT DEV <Directory "e:\wwwroot\demo"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost></code>
참조 문서:
<code>http://man.chinaunix.net/newsoft/ApacheManual/mod/mod_env.html#setenv</code>
위 내용은 Apache/Nginx에서 PHP용 $_SERVER 서버 환경 변수를 설정하고 추가하는 방법과 관련 내용을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.