当前位置:首页 > CN2资讯 > 正文内容

PHP配置

2天前CN2资讯

一、查看PHP配置文件所在位置

虽然PHP是以httpd一个模块的形式存在的,但是PHP本身也有自己的配置文件。 查看PHP配置文件所在位置的命令为:

[root@zlinux ~]# /usr/local/php/bin/php -i | grep -i "Loaded Configuration file" PHP Warning: Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in Unknown on line 0 Loaded Configuration File => /usr/local/php/etc/php.ini

第一行是warning警告信息,可以忽略,如想想取消则需要编辑php.ini,找到date.timezone设置为:

[root@zlinux ~]# vim /usr/local/php/etc/php.ini //取消前面;号 date.timezone = Asia/Shanghai

再次执行就不会提示警告信息了。 然后访问一个包含phpinfo函数的页面,会显示这样:

二、PHP的disable_functions

由于phpinfo会显示出服务器内LAMP架构内的很多软件的配置文件等重要文件的信息,所以在生产环境下最好禁掉,防止被黑客获取到系统内部php信息,造成损失。测试环境可以不禁。

[root@zlinux ~]# vim /usr/local/php/etc/php.ini //搜索disable_functions,编辑成如下内容 disable_functions = eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close,phpinfo [root@zlinux ~]# /usr/local/apache2/bin/apachectl graceful //更改要重新加载下apache服务

三、配置error_log

PHP日志非常重要,它是排查问题的重要手段。步骤如下:

[root@zlinux ~]# vim /usr/local/php/etc/php.ini log_errors = On //搜索log_errors error_log = /var/log/php/ php_errors.log //搜索log_error,改成这个,存放日志的路径 error_reporting = E_ALL & ~E_NOTICE //搜索error_reporting改成这个 display_errors = Off //改为Off [root@zlinux ~]# /usr/local/apache2/bin/apachectl graceful

display_errors=On/Off :设定是否显示错误原因,需要注意的是,此处设置为off(防止用户看到)后必须设置错误日志,设定保存路径,和错误日志级别,否则将无法查找错误原因 。 log_errors=On/Off 开启/关闭错误日志 “error_log=/tmp/” 设定错误日志的保存路径。如果定义好路径后无法生产日志,此时需要检查日志文件所在目录是否有写(w)权限 “error_reporting =” 设定错误日志级别,级别有:E_ ALL 、~E_ NOTICE 、~E_ STRICT 、~E_DEPRECATED(可以自由组合)。生产环境使用:E_ ALL & ~E_ NOTICE就可以。

设置完php.ini之后,需要一些额外操作:

[root@zlinux ~]# mkdir /var/log/php [root@zlinux ~]# chmod 777 /var/log/php/ //保证PHP错误日志所在目录存在,并且权限可读写 [root@zlinux ~]# /usr/local/apache2/bin/apachectl graceful

测试效果:

[root@zlinux ~]# curl -A "www" -x 192.168.204.128:80 linuxtest.com/indextest.php -I //故意去掉phpinfo函数的括号 HTTP/1.0 500 Internal Server Error Date: Wed, 07 Mar 2018 07:51:56 GMT Server: Apache/2.4.29 (Unix) PHP/5.6.30 X-Powered-By: PHP/5.6.30 Connection: close Content-Type: text/html; charset=UTF-8

出现了500状态码,此时就可以查看PHP错误日志了:

[root@zlinux php]# cat php_errors.log [07-Mar-2018 16:00:49 Asia/Shanghai] PHP Parse error: syntax error, unexpected '?>' in /data/wwwroot/123test/indextest.php on line 3

四、配置open_basedir

open_basedir可将用户访问文件的活动范围限制在指定的区域,通常是其家目录的路径,也 可用符号"."来代表当前目录。注意用open_basedir指定的限制实际上是前缀,而不是目录名。

[root@zlinux php]# vim /usr/local/php/etc/php.ini ; open_basedir, if set, limits all file operations to the defined directory ; and below. This directive makes most sense if used in a per-directory ; or per-virtualhost web server configuration file. ; http://php.net/open-basedir open_basedir = /usr/local/wwwroot/123test:/tmp //多个目录用:隔开,这个说明PHP限制在这两个目录活动

测试是否只能在这俩目录下活动:

[root@zlinux php]# curl -A "www" -x 192.168.204.128:80 ztest.com/openbasedir.php -I HTTP/1.0 500 Internal Server Error Date: Wed, 07 Mar 2018 08:14:04 GMT Server: Apache/2.4.29 (Unix) PHP/5.6.30 X-Powered-By: PHP/5.6.30 Connection: close Content-Type: text/html; charset=UTF-8 //状态码500,查看日志 [root@zlinux php]# cat php_errors.log [07-Mar-2018 16:00:49 Asia/Shanghai] PHP Parse error: syntax error, unexpected '?>' in /data/wwwroot/123test/indextest.php on line 3 [07-Mar-2018 16:13:57 Asia/Shanghai] PHP Warning: Unknown: open_basedir restriction in effect. File(/data/wwwroot/abctest/openbasedir.php) is not within the allowed path(s): (/usr/local/wwwroot/123test:/tmp) in Unknown on line 0 [07-Mar-2018 16:13:57 Asia/Shanghai] PHP Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0 [07-Mar-2018 16:13:57 Asia/Shanghai] PHP Fatal error: Unknown: Failed opening required '/data/wwwroot/abctest/openbasedir.php' (include_path='.:/usr/local/php/lib/php') in Unknown on line 0 [07-Mar-2018 16:14:04 Asia/Shanghai] PHP Warning: Unknown: open_basedir restriction in effect. File(/data/wwwroot/abctest/openbasedir.php) is not within the allowed path(s): (/usr/local/wwwroot/123test:/tmp) in Unknown on line 0 [07-Mar-2018 16:14:04 Asia/Shanghai] PHP Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0 [07-Mar-2018 16:14:04 Asia/Shanghai] PHP Fatal error: Unknown: Failed opening required '/data/wwwroot/abctest/openbasedir.php' (include_path='.:/usr/local/php/lib/php') in Unknown on line 0 //通过日志可以看出,要访问的页面不在规定目录下。

也可以给单个虚拟主机设置open_basedir:

[root@zlinux ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf //添加如下内容 php_admin_value open_basedir "/data/wwwroot/123test;:/tmp"

说明: “php_admin_value”可以定义php.ini中的参数。使用该办法分别在每个虚拟主机设定相关的“open_basedir”即可! 在此开放“/tmp/”目录是为了使临时文件能正常写入。

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/26099.html

    标签: PHP配置
    分享给朋友:

    “PHP配置” 的相关文章

    微信海外服务器助力全球化业务拓展与用户体验优化

    微信海外服务器是微信在全球范围内部署的技术基础设施,旨在支持其海外业务的发展。这些服务器不仅是数据存储的中心,还承担着用户信息处理和互动的各种功能。随着技术的不断进步,微信的使用需求也在全球范围内快速增长,这种现象驱动着微信不断扩展其海外服务器的网络。 我们时常看到,微信与WeChat的分拆让用户数...

    LightLayer云服务器评测与应用案例分析

    在我日常工作中,云服务器的选择至关重要,而我最近了解到的LightLayer云服务器,给我留下了深刻的印象。作为Megalayer旗下的品牌,LightLayer在全球多个重要地点部署了服务器,尤其是在美国洛杉矶、中国台湾台北和菲律宾马尼拉。这些选择不仅为用户提供了更快速的访问速度,也为他们的云计算...

    选择合适的域名注册商,轻松完成域名注册流程

    在如今数字化的时代,域名注册变得越来越重要。它不仅是建立个人或企业在线身份的第一步,也是一种品牌保护和业务推广的手段。在互联网上,域名就像是你的地址,方便别人找到你。因此,选择一个合适的域名注册商显得尤为重要。 域名注册商,是那些提供域名注册、管理和支持服务的公司。可以想象成他们是光明正大的中介,帮...

    RackNerd评测:高性价比VPS服务体验与优缺点分析

    谈到VPS主机服务,RackNerd无疑是近年来备受关注的一个名字。成立于2019年的RackNerd,以其高性价比和出色的客户服务,迅速在行业内站稳了脚跟。无论你是个人网站的博主,还是小型企业的运营者,RackNerd都能为你提供一个合适的解决方案。 RackNerd的主要数据中心遍布北美和欧洲,...

    华纳云:全球领先的云计算与数据中心服务提供商

    华纳云概述 在当今数字化高速发展的时代,云计算和数据中心服务显得尤为重要。华纳云,作为一家专业的全球数据中心基础服务提供商,总部位于香港,依托于香港联合通讯国际有限公司的实力,稳步发展。华纳云不仅是APNIC和ARIN的会员单位,更拥有自有的ASN号,这为其全球运营提供了强有力的支持。通过这些背景,...

    解决Linode被封的问题与账户恢复策略分享

    Linode作为一款备受欢迎的美国VPS,其灵活性和服务质量吸引了众多用户。然而,基于我的经验,国内用户在使用Linode时常常面临被封的困扰。这不仅影响了使用体验,也对业务的持续性造成了影响。我想深入分析一下Linode被封的原因。 首先,Linode的全球网络状况在近年来遭遇了严峻挑战。随着越来...