,PHP $_SERVER['REMOTE_ADDR']取得的竟然是服务器IP?

用户投稿 38 0

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

PHP $_SERVER['REMOTE_ADDR']取得的竟然是服务器IP?

可能是服务器所在网关做了些网络设置,比如端口映射之类的,造成php不能识别客户端的ip 建议你在同一个局域网内测试一下,如果没问题,可能就是这个原因

如何让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的限制。

PHP是什么?

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

主要特点编辑

(一)开源性和免费性

由于PHP的解释器的源代码是公开的,所以安全系数较高的网站可以自己更改PHP的解释程序。另外,PHP 运行环境的使用也是免费的。 [1]

(二)快捷性

PHP是一种非常容易学习和使用的一门语言,它的语法特点类似于C语言,但又没有C语言复杂的地址操作,而且又加入了面向对象的概念,再加上它具有简洁的语法规则,使得它操作编辑非常简单,实用性很强。 [1]

(三)数据库连接的广泛性

PHP可以与很多主流的数据库建立起连接,如MySQL、ODBC、Oracle等,PHP是利用编译的不同函数与这些数据库建立起连接的,PHPLIB就是常用的为一般事务提供的基库。 [1]

(四)面向过程和面向对象并用

在PHP语言的使用中,可以分别使用面向过程和面向对象, 而且可以将PHP面向过程和面向对象两者一起混用,这是其它很多编程语言是做不到的。 [1]

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

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