问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php配置环境变量(php的环境)

发布网友 发布时间:2024-09-17 03:35

我来回答

1个回答

热心网友 时间:2024-10-04 17:16

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

一般情况下,都能实现显示phpinfo()的页面。就从能够显示该页面之后出现的问题说起。php的问题都会显示在phpinfo()页面上。首先查看自己的php.ini的路径是否正确。Q:我已经配置了php.ini文件,但重新启动服务器后为什么没有任何效果?A:这个问题主要有这几种情况。第一个原因是由于系统所读取的php.ini文件与你当时修改的php.ini文件不一致造成的1、可以通过phpinfo()的ConfigurationFile(php.ini)Path选项查看当前PHP服务器读取的是哪一个php.ini2、如果你要更改php.ini的文件存取位置,可参考php.ini的搜索顺序,如下所示:a)SAPI模块所指定的位置(Apache2中的PHPIniDir指令,CGI和CLI中的-c命令行选项,NSAPI中的php_ini参数,THTTPD中的PHP_INI_PATH环境变量)b)HKEY_LOCAL_MACHINESOFTWAREPHPIniFilePath(Windows注册表位置)c)PHPRC环境变量d)当前工作目录(对于CLI)e)web服务器目录(对于SAPI模块)或PHP所在目录(Windows下其它情况)f)Windows目录(C:windows或C:winnt),或--with-config-file-path编译时选项指定的位置3、一般做法:通过设置PHPRC环境变量,a)操作:右击我的电脑-属性-高级-环境变量b)在系统变量下新建一个“变量名为PHPRC,变量值为你的php.ini文件所地文件路径”的环境变量第二个原因是:PHP没有找到相应的扩展库1、查看PHP找到的扩展库位置:在phpinfo()的extension_dir选项可以看到2、在php.ini更改extension_dir文件第三个原因:没有完全重启IIS1、对php.ini的修改必须完全重启IIS才能起作用,而不能只是对当前站点进行重启。2、进入cmd,停止服务器:netstopiisadmin;启动服务器:netstartw3svcQ:我的PHP怎么没有办法激活MySql扩展库A:在PHP5.0以上版本,MySQL默认未启用,因此需要咱们进行手工激活。1、在PHP运行MySql,必须在php.ini中激活php_mysql.dll动态连接库,另外还需要访问MySQL客户端连接库即libmysql.dll文件2、可以通过php.ini中的extension激活php_mysql.dll动态连接库;而libmysql.dll文件必须放在Windows的系统路径PATH才能访问,可以通过把libmysql.dll复制到system32目录下,也可以在PATH环境变量中新增一个路径。3、建议做法:通过设置PATH,方便以后的php升级,在系统环境变量中的PATH后增加“libmysql.dll”所在的文件夹即可。记得通过“;”号隔开4、[案例]最近,服务器总是找不到MySql扩展库,导致程序无法运行。因此,把所有文件删除后重新配置PHP服务器。但最后在安装MySql的时候,却始终无法激活MySql扩展库。在phpinfo()中找到的信息如下:PATH:c:phpPHPRC:C:phpextension_dir:c:phpext另外,我测试了将其它的库激活,如msql、gd2、xml,在phpinfo()都可以正常显示证明PHP能找到php_mysql.dll动态连接库,而MySql的运行的另一个条件是能够讯问MySQL客户端连接库即libmysql.dll文件,看来问题就在这里了。我对C盘搜索libmysql.dll文件,发现在system32和php文件夹各有一个文件,做好备份后,我尝试删除system32的libmysql.dll文件,发现被锁死,无法删除,却可以重新命名,我随便修改了名称,再重新启动IIS,服务器运行正常。补充一点:如果ConfigurationFile(php.ini)Path显示为C:Windows就说明,php.ini文件没有读取到。另外,我发现,在用IIS整合php时,有两种方式:ISAPI与CGI模式这两种方式,我们都可以看到phpinfo页面但是使用ISAPI模式,无法读取环境变量,所以通过环境变量PHPRC设置的php.ini路径无法找到。使用CGI就可以,这样就不必把好多文件拷到系统文件下。

php扩展在全局变量中不存在但是打印phpinfo却存在?

说明:我本地装的php集成环境MAMPPRO

最近遇到一个比较奇怪的问题,在本地搭建了PHP运行环境,并且安装了相应的PHP扩展并且在测试页面中通过打印phpinfo能看到所安装的扩展是正常的,但是php-m|grepswoole没有显示swoole已经配好了php环境变量

装好了php,php一些常用的扩展后就开始配置php系统环境变量,因为我用的macbookpro所以配置命令如下

查看环境变量是否OK

以为一切OK的我想试试swoole的性能是否真有官网说的那么厉害于是就准备了一段测试脚本

测试脚本

终端执行

然后奇怪的是swoole的http服务并没有起来????

然后查看php错误日志惊奇!

确定浏览器打印的phpinfo是有swoole扩展的,而且终端的php跟界面的php是同一个版本的php百思不解然后我在终端

结果很意外终端里面找不到swoole扩展!!!可是浏览器里打印有的啊而且是同一个PHP版本??奇怪了

然后在终端执行php-i这个是在终端打印phpinfo

然后对比这个

终端打印phpinfo

浏览器打印phpinfo

是同一个PHP没错了。。。

然后再对比php.ini引用路径

终端的:

浏览器的

终于找到原因了两个地方引用的php.ini不一样于是在终端引用的php.ini同样加上extension=swoole.so即可

MacM1安装php开发环境

去年年底,苹果推出了新款的M1芯片的mac,最近刚好要换电脑,考虑对比再三,还是选择了M1芯片的mac;刚拿到手以后,担心会有软件不兼容啥的,网上也推荐作为主力开发的笔记本的话,不推荐M1,但是现在已经完全配置好了开发环境,安全下车了。下面就来简单介绍下安装过程中的步骤:

注意:如果没有安装brew,需要先安装brew,使用arch-arm64brewinstall安装

首先搜索是否包含想要安装的mysql版本,如下图:

此处选择mysql@5.7这个版本,我本地已经安装完成了

安装完成后,需要添加环境变量,这样才能在任何目录下面直接打mysql访问

先查询有哪些php的版本,之前看网上说的M1,目前还不支持php7.3以下的版本,所有我安装了php7.4

等待安装完成后,可以开始部署项目了,由于我的项目是thinkphp框架开发的,而且用到了redis,所以,这边需要先安装redis依赖

安装phpredis依赖(此处使用pecl安装,网上有很多使用编译安装的方法,那种方法比较麻烦,而且需要配置的地方比较多,pecl安装的话,快捷方便)

这个安装完成后,就只需要去nginx目录下面配置项目文件就OK了。

其他的不多说,主要提一点,就是thinkphp框架,重定向那边的配置,location里面的配置需要修改下,如下图:

修改完成后,重启服务器,还要重启php-fpm,这个是关键

php服务器变量$_SERVER服务器环境变量$_ENV

PHP?$_SERVER变量

$_SERVER是一个包含诸如头信息(header)、路径(path)和脚本位置(scriptlocations)的数组。它是PHP中一个超级全局变量,我们可以在PHP程序的任何地方直接访问它。

$_SERVER包含着众多的信息,你可以尝试直接打印它:

print_r($_SERVER);

$_SERVER数组元素

更多情况下,我们只需要$_SERVER数组中的某些元素(数组单元)。$_SERVER数组包含的元素如下:

页面程序相关

$_SERVER[‘PHP_SELF’]:相对于网站根目录的路径及PHP程序名称,与documentroot相关。

$_SERVER[‘HTTP_REFERER’]:链接到当前页面的前一页面的URL地址。

$_SERVER[‘SCRIPT_NAME’]:相对于网站根目录的路径及PHP程序文件名称。

$_SERVER[‘REQUEST_URI’]:访问此页面所需的URI。

$_SERVER[‘SCRIPT_FILENAME’]:当前运行PHP程序的绝对路径及文件名。

$_SERVER[‘PATH_TRANSLATED’]:当前PHP程序所在文件系统(不是文档根目录)的基本路径。

$_SERVER[‘QUERY_STRING’]:查询(query)的字符串(URL中第一个问号?之后的内容但不包括#后面的内容)。

$_SERVER[‘argv’]:传递给当前PHP程序的参数。

$_SERVER[‘argc’]:命令行模式下,包含传递给程序的命令行参数的个数。

$_SERVER[‘REQUEST_TIME’]:请求开始时的时间戳,从PHP5.1.0起有效。

$_SERVER[‘REQUEST_METHOD’]:访问页面时的请求方法,例如:“GET”、“HEAD”,“POST”或“PUT”。

$_SERVER[‘HTTP_ACCEPT’]:当前请求的Accept:头信息的内容。

$_SERVER[‘HTTP_ACCEPT_CHARSET’]:当前请求的Accept-Charset:头信息的内容。例如:“iso-8859-1,*,utf-8”。

$_SERVER[‘HTTP_ACCEPT_ENCODING’]:当前请求的Accept-Encoding:头信息的内容。例如:“gzip”。

$_SERVER[‘HTTP_ACCEPT_LANGUAGE’]:当前请求的Accept-Language:头信息的内容。例如:“zh-cn”。

$_SERVER[‘HTTP_CONNECTION’]:当前请求的Connection:头信息的内容。例如:“Keep-Alive”。

$_SERVER[‘HTTP_HOST’]:当前请求的Host:头信息的内容。

$_SERVER[‘HTTPS’]:如果PHP程序是通过HTTPS协议被访问,则被设为一个非空的值。

$_SERVER[‘PHP_AUTH_DIGEST’]:当作为Apache模块运行时,进行HTTPDigest认证的过程中,此变量被设置成客户端发送的“Authorization”HTTP头内容(以便作进一步的认证操作)。

$_SERVER[‘PHP_AUTH_USER’]:当PHP运行在Apache或IIS(PHP5是ISAPI)模块方式下,并且正在使用HTTP认证功能,这个变量便是用户输入的用户名。

$_SERVER[‘PHP_AUTH_PW’]:当PHP运行在Apache或IIS(PHP5是ISAPI)模块方式下,并且正在使用HTTP认证功能,这个变量便是用户输入的密码。

$_SERVER[‘AUTH_TYPE’]:当PHP运行在Apache模块方式下,并且正在使用HTTP认证功能,这个变量便是认证的类型。

服务器端相关

$_SERVER[‘DOCUMENT_ROOT’]:当前运行PHP程序所在的文档根目录,在服务器配置文件中定义。

$_SERVER[‘GATEWAY_INTERFACE’]:服务器使用的CGI规范的版本,例如:“CGI/1.1”。

$_SERVER[‘SERVER_ADDR’]:当前运行PHP程序所在的服务器的IP地址。

$_SERVER[‘SERVER_NAME’]:当前运行PHP程序所在的服务器的名称。

$_SERVER[‘SERVER_ADMIN’]:Apache服务器配置文件中的SERVER_ADMIN参数。

$_SERVER[‘SERVER_PORT’]:服务器所使用的端口。如果使用SSL安全连接,则这个值为用户设置的HTTP端口。

$_SERVER[‘SERVER_SIGNATURE’]:包含服务器版本和虚拟主机名的字符串。

$_SERVER[‘SERVER_SOFTWARE’]:服务器标识的字串,在响应请求时的头信息中给出。

$_SERVER[‘SERVER_PROTOCOL’]:请求页面时通信协议的名称和版本,例如:“HTTP/1.0”。

其他杂项

$_SERVER[‘HTTP_USER_AGENT’]:当前请求的User-Agent:头信息的内容,该字符串表明了访问该页面的用户代理的信息。

$_SERVER[‘REMOTE_ADDR’]:正在浏览当前页面用户的IP地址。

$_SERVER[‘REMOTE_HOST’]:正在浏览当前页面用户的主机名。

$_SERVER[‘REMOTE_PORT’]:用户连接到服务器时所使用的端口。

注意,如果以命令行方式运行PHP,上面列出的元素几乎没有有效的(或是没有任何实际意义的)。

PHP$_ENV变量

$_ENV是一个包含服务器端环境变量的数组。它是PHP中一个超级全局变量,我们可以在PHP程序的任何地方直接访问它。

$_ENV只是被动的接受服务器端的环境变量并把它们转换为数组元素,你可以尝试直接打印它:

print_r($_ENV);

限于篇幅,在此不再列出打印的结果,且不同的服务器上,打印出的结果可能是完全不同的。

$_ENV数组元素

$_ENV数组中的元素(数组单元)随服务器环境不同而有较大差异,所以无法像?$_SERVER?那样列出完整的列表。以下是$_ENV数组包含的比较通用的元素:

$_SERVER[‘PATH’]:环境变量PATH路径。

$_SERVER[‘CLASSPATH’]:系统CLASSPATH路径。

$_SERVER[‘LIB’]:系统LIB库路径。

$_SERVER[‘INCLUDE’]:系统Include路径,注意与PHP的包含路径是不一样的。

$_SERVER[‘OS’]:操作系统类型。

$_SERVER[‘LANG’]:系统语言,如en_US或zh_CN。

$_SERVER[‘PWD’]:当前工作目录。

$_SERVER[‘TEMP’]:系统TEMP路径。

$_SERVER[‘AP_PARENT_PID’]:当前进程ID号。

$_SERVER[‘NUMBER_OF_PROCESSORS’]:系统CPU数目。

$_ENV为空的原因及解决办法

如果打印输出$_ENV为空,可以检查一下php.ini的配置:

variables_order="EGPCS"

上述配置表示PHP接受的外部变量来源及顺序,EGPCS是Environment、Get、Post、Cookies和Server的缩写。如果variables_order的配置中缺少E,则PHP无法接受环境变量,那么$_ENV也就为空了。

如何创建phpinfo查看php信息

1、方法一:

命令行查询,如果已经配置好环境变量,直接在命令行中输入php-v,将会显示php的版本信息。如果没有配置环境变量,直接在命令行中进入到php的安装目录后,再输入命令php-v,在安装目录下输入查询命令,可以看到输出的版本信息为PHP5.3.29。

2、方法二:

(1)使用预定义常量PHP_VERSION查询,新建一个php文件,在里面输入?php???echoPHP_VERSION;?。

(2)在浏览器中输出对应的网址,就可以查看到php的版本信息。

3、方法三:

(1)使用phpversion()函数查询,新建一个php文件,在文件中输入?php???echophpversion();?即可。

(2)在浏览器中访问,可以看到浏览器页面上返回的php版本信息,跟预定义常量PHP_VERSION显示效果一样。

4、方法四:

(1)使用phpinfo()函数查询,新建一个php文件,在文件中输入?php???echophpinfo();?即可。

(2)在浏览器中访问,可以看到不仅可以看到PHP的版本信息,还能看到其它很多关于PHP的信息。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... Think-Swoole: 全面协程化你的 ThinkPHP 应用 windows10搭建php环境/扩展swoole redis 英语专业四、六级考多少分才算合格? Laravel 集成 Swoole 教程 phpswoole架构项目? 桃坪旅游自驾游攻略 现在东莞厂子工作好找不 霸王山最佳旅游时间,霸王山旅游自驾路线 霸王山自驾游路线攻略,自驾游鹧鸪山旅游攻略 请问现在普工多少钱一个月? 四川霸王山在什么地方,霸王山风景区门票 求一张壁纸 从左到右分四格 是春夏秋冬,人的一生的缩影,春天天真 夏天... ...押韵。人名茂发和冬娥得放里面。 茂旺祖辈冬聚瑞,发盛子孙娥荫福... 立方氧化锆戒指价格贵吗? 黄金戒指换款是怎样换 河田玉jpaa305287戒指 便宜戒指如何挑选呢 php如何做微服务? ...php集成环境、php绿色集成环境、php独立安装版环境这三者的... php语言是什么(php是什么编程语言) ThinkPHP6 模型的定义以及基本使用 带你学习swoole_process详解 BFT材质塑料盒可以装食品吗? 布线板的特性 50m等于多少km 电动平开门电机什么品牌好 完成下列单位转换(1)50m=___km; (2)36km/h=___ m/s; (3)6min=___h... PLC IO信号之模拟量输入AI-传感器1 ubuntu多版本php切换 php介绍(php介绍页) PHP中文网百科(php中文网app官网) php技术是什么意思(php技术课程是什么php开发技术机构) 张家口文化传统三大特征是什么 Yii2源码分析——应用是如何启动及其生命周期 php的运行方式有哪些? SWOOLE进阶-01快速入门 学好申论的秘诀有哪些? 如何快速提高申论的写作 品牌皮衣袖口的商标要去掉吗? 2023年白露能吃西瓜吗 2023年白露要怎么吃