>백엔드 개발 >PHP 튜토리얼 >Apache/Nginx 설정 및 PHP용 $_SERVER 서버 환경 변수 추가

Apache/Nginx 설정 및 PHP용 $_SERVER 서버 환경 변수 추가

WBOY
WBOY원래의
2016-07-29 08:58:081551검색

요구사항

<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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:thinkphp 기초 소개 1다음 기사:thinkphp 기초 소개 1