当前位置:首页 » 编程语言 » php系统变量

php系统变量

发布时间: 2024-09-29 11:07:32

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

如何让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版本,如下图:

此处选择[email protected]这个版本,我本地已经安装完成了

安装完成后,需要添加环境变量,这样才能在任何目录下面直接打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的信息。

B. 如何配置php环境变量

如果是Windows系统:

桌面-》我的电脑-》属性-》高级系统设置-》环境变量

如果是Linux系统:

软链:ln -sphp执行文件的真实路径 /usr/bin/php

如:ln -s /usr/local/php/bin/php /usr/bin/php

或者编辑/etc/profile文件,手动将php的真实执行路径添加进PATH

C. php语句的结构与变量类型

php语句:
一个php文件通常包含HTML标记和一些php语句段。
一个php语句段从<?php 标签开始,到 ?> 结束。php标签用于分割其他php语句段和html,php语句写在两个标签中间,可以写多行PHP语句。
注意:php语句以分号结尾,如果没有分号,则会继续分析文件,直到下一个分号,并忽略中间的空格和换行。
php中,回车换行,空格,制表符都被视为空格,php解析器会当它们不存在。
例如:
<?php
echo 'Hello World';
?>

php的变量类型:
php一共八种基本的变量类型,包括如下:
四种标量类型:
boolean (布尔型)
integer (整型)
float (浮点型, 也称作 double)
string (字符串)
两种复合类型:
array (数组)
object (对象)
最后是两种特殊类型:
resource(资源)
NULL(NULL)
另外php还有一些伪类型:
mixed
number
callback

D. 如何添加php环境变量

右击我的电脑 再属性 再高级 再环境变量 再系统变量里有个path 双击打开来 把你的PHP路径 加个分号再前面 添加进去就OK了!

E. html中使用php 的变量

html标签使用php中的变量方法如下:

一、如果html标签中使用php变量,提示:Undefined index: uid in /var/www//list.php,list.php的具体代码如下:

<?php
require'redis.php';
for($i=0;$i<=($redis->get("userid"));$i++){
$data[]=$redis->hgetall("user:".$i);
}
/*var_mp($data)的结果如下:
array(size=3)
0=>
array(size=0)
empty
1=>
array(size=4)
'uid'=>string'1'(length=1)
'username'=>string'jjj'(length=3)
'password'=>string'123'(length=3)
'age'=>string'20'(length=2)
2=>
array(size=4)
'uid'=>string'2'(length=1)
'username'=>string'lamp'(length=4)
'password'=>string'123'(length=3)
'age'=>string'20'(length=2)
*/
?>
<tableborder="1">
<caption>userlist</caption>
<tr>
<th>uid</th>
<th>username</th>
<th>age</th>
</tr>
<?phpforeach($dataas$v){?>
<tr>
<td><?phpecho$v['uid']?></td>
<td><?phpecho$v['username']?></td>
<td><?phpecho$v['age']?></td>
</tr>
<?php}?>
</table>

这时在echo 前 isset 下就可以了,代码如下:

<?php$a=10;if(isset($a)){echo"这个变量存在";}else{echo"这个变量不存在";}?>

二、 php可以和html混编的 ,如下图所示

F. php 定义变量

<?php//常量声明!defined("PI") or define("PI", 3.14);//变量声明$var = value; //value可以为值类型、引用类型、NULL、布尔类型、资源类型?>

热点内容
在c语言中表示什么 发布:2024-11-24 19:04:46 浏览:408
discuz友情链接缓存 发布:2024-11-24 19:00:11 浏览:693
数据库时区 发布:2024-11-24 18:28:30 浏览:614
板的塑性算法 发布:2024-11-24 18:17:59 浏览:29
酷狗缓存乱码 发布:2024-11-24 18:12:42 浏览:509
aes算法模式 发布:2024-11-24 17:47:19 浏览:612
linux查看端口是否占用 发布:2024-11-24 17:42:15 浏览:467
手机电影天堂的文件夹 发布:2024-11-24 17:39:08 浏览:690
吉林金税盘安全服务器地址 发布:2024-11-24 17:39:00 浏览:277
360无法访问网络 发布:2024-11-24 17:32:48 浏览:558