Nginx访问pHp,如何让PHP能够读取系统环境变量?

用户投稿 147 0

关于“nginx访问php”的问题,小编就整理了【3】个相关介绍“nginx访问php”的解答:

如何让PHP能够读取系统环境变量?

一、fpm模式

1、通过服务器传递

如在nginx的配置里设置:

fastcgi_param ENV_XXX 123456;

每次页面请求nginx都会将此变量传递给php,php可以通过getenv函数或$_SERVER全局变量获得。

2、通过fpm配置传递

fpm在每次启动时都会读取php-fpm.conf文件中的环境变量设置,如:

env[ENV_XXX]="test test"

或者让fpm读取系统环境变量,如:

env[ENV_XXX]=$ENV_XXX

注意此种方式要确保系统环境变量存在,且不被sudo禁用。

如果fpm是用sudo方式启动,默认sudo会禁用一些环境变量,可以通过以下方式放开限制:

vim /etc/sudoers

Defaults env_reset

Defaults env_keep = "ENV_XXX"

或者干脆放开所有限制:

Defaults !env_reset

最后,如果修改了php-fpm.conf中的设置需要重启fpm才能生效,同样php可以通过getenv函数或$_SERVER全局变量获得环境变量。

二、命令行模式

命令行模式限制较少,可以通过getenv函数或$_SERVER全局变量获取对当前执行用户有效的系统环境变量,同样要注意sudo的限制。

window+nginx+php环境配置,附配置搭配说明?

1,下载PHP

  php下载版本比较多,其中,

  vc9=vs2008编译,推荐使用IIS+php搭配模式,

  vc6=vs6编译,推荐使用apache+php方式搭配,

  Thread Safe,线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查。

  Non Thread Safe,

  再来看PHP的两种执行方式:ISAPI和FastCGI。

  ISAPI执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以ISAPI来执行PHP,建议选择Thread Safe版本;

  而FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以FastCGI来执行PHP,建议选择Non Thread Safe版本。

  官方并不建议你将Non Thread Safe 应用于生产环境,所以我们选择Thread Safe 版本的PHP来使用。

nginx 404解决办法?

nginx 404通常有以下原因出现该问题:

1. nginx自己的页面不存在返回404

2. 反向代理的页面不存在

解决思路:

当出现图片无法访问的情况,首先应拿到对应图片的url(可以通过在浏览器页面上点击右键选择检查或者直接复制图片地址),然后再对比图片在服务器存放的实际位置,根据二者的差异选择不同的解决办法。

解决方法:

确认服务器的nginx.conf的配置文件中设置的根目录和索引文件均没有错误,  网站根目录下的确存在请求的文件

到此,以上就是小编对于“nginx访问php”的问题就介绍到这了,希望介绍关于“nginx访问php”的【3】点解答对大家有用。

抱歉,评论功能暂时关闭!