NGINX和PHP之间的环境变量传递

昨天遇到的,想将IP访问转换成域名访问。则NGINX需要将相关的变量转换后传递给PHP。

网上有一系统的方法:

前面讲过该不该把信息写在服务器配置文件里?、通过php扩展hidef来define常量,这里介绍一下如何在nginx中设置$_SERVER变量值?

  1. 通过nginx的fastcgi_param来设置

    在nginx配置文件中,可以在nginx总体的配置文件nginx.conf中,也可以在单独的网站配置环境中进行设置,如:www.test.com.conf

    在配置环境server段location中添加相应的配置信息:

    location ~ .*.(php|php5)?$ { try_files $uri =404; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; include fcgi.conf; fastcgi_param DB_NAME 'www.test.com'; }

    这里只添加了fastcgi_param DB_NAME ‘www.test.com’; 一个值。

    添加后重启nginx;

  2. 通过php主配置文件php-fpm.conf来设置

    这个设置必须放在主配置文件php-fpm.conf里,不能放到include指令设置的子配置文件里,否则会报错:「Array are not allowed in the global section」

    直接在配置文件中添加:

    env[DATABASE_HOST] = 192.168.0.1
    env[DATABASE_USERNAME] = administrator
    env[DATABASE_PASSWORD] = e1bfd762321e409cee4ac0b6e841963c

    添加后重启php-fpm

通过上面2种方式添加$_SERVER变量值后,我们就可以直接在php文件中通过$_SERVER来获取相应的变量值了。

联系我们

邮箱 626512443@qq.com
电话 18611320371(微信)
QQ群 235681453

Copyright © 2015-2024

备案号:京ICP备15003423号-3