Home > Backend Development > PHP Tutorial > Apache/Nginx set up and add $_SERVER server environment variable for PHP

Apache/Nginx set up and add $_SERVER server environment variable for PHP

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-07-29 08:58:08
Original
1596 people have browsed it

Requirements

<code>在PHP开发中为了区分线上生产环境还是本地开发环境,
如果我们能通过判断$_SERVER['RUNTIME_ENVIROMENT']为 'DEV'还是'PRO'来区分该多好,
可惜的是$_SERVER数组里面根本没有RUNTIME_ENVIROMENT这个元素。

</code>
Copy after login

1. Set it through nginx’s fastcgi_param

In the nginx configuration file, it can be set in the nginx overall configuration file nginx.conf, or in a separate website configuration environment, such as: www.tomener .com.conf

Add the corresponding configuration information in the configuration environment server section location:

<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>
Copy after login

Only the fastcgi_param RUNTIME_ENVIROMENT 'PRO' value is added here, more can be added later

Then restart nginx

<code>nginx -s reload</code>
Copy after login

2 , set through the main php configuration file php-fpm.conf

This setting must be placed in the main configuration file php-fpm.conf and cannot be placed in the sub-configuration file set by the include directive, otherwise an error will be reported: "Array are not allowed in the global section"

My php-fpm.conf location is in /usr/local/php/etc/php-fpm.conf

Add it directly in the configuration file:

<code>env[RUNTIME_ENVIROMENT] = 'PRO'
</code>
Copy after login

Restart php-fpm after adding it

<code>service restart php-fpm</code>
Copy after login

After adding the $_SERVER variable value through the above two methods, we can directly obtain the corresponding variable value through $_SERVER in the php file.

However, it is said that if the configuration information is set through nginx's fastcgi_param, when nginx interacts with php, a large amount of data will be transmitted.

Apache sets environment variables

<code>SetEnv 变量名 变量值</code>
Copy after login
<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>
Copy after login

Reference documentation:

<code>http://man.chinaunix.net/newsoft/ApacheManual/mod/mod_env.html#setenv</code>
Copy after login

The above introduces how to set and add the $_SERVER server environment variable for PHP by Apache/Nginx, including the relevant content. I hope it will be helpful to friends who are interested in PHP tutorials.

Related labels:
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Issues
php data acquisition?
From 1970-01-01 08:00:00
0
0
0
PHP extension intl
From 1970-01-01 08:00:00
0
0
0
How to learn php well
From 1970-01-01 08:00:00
0
0
0
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template