设为首页 收藏本站
查看: 1435|回复: 0

[经验分享] php.ini配置文件详解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-1-7 09:38:40 | 显示全部楼层 |阅读模式
首先看php的配置文件,它在这个路径下[iyunv@zhangmengjunlinux ~]# vim /usr/local/php/etc/php.ini
  如果你不知道他在哪里的话,我们也有办法去查看
[iyunv@zhangmengjunlinux ~]# /usr/local/php/bin/php -i |head
phpinfo()
PHP Version => 5.3.27

System => Linux zhangmengjunlinux.com 2.6.32-573.el6.i686 #1 SMP Thu Jul 23 12:37:35 UTC 2015 i686
Build Date => Dec 26 2015 22:16:02
Configure Command =>  './configure'  '--prefix=/usr/local/php' '--with-apxs2=/usr/local/apache2/bin/apxs' '--with-config-file-path=/usr/local/php/etc' '--with-mysql=/usr/local/mysql' '--with-libxml-dir' '--with-gd' '--with-jpeg-dir' '--with-png-dir' '--with-freetype-dir' '--with-iconv-dir' '--with-zlib-dir' '--with-bz2' '--with-openssl' '--with-mcrypt' '--enable-soap' '--enable-gd-native-ttf' '--enable-mbstring' '--enable-sockets' '--enable-exif' '--disable-ipv6'
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => /usr/local/php/etc
Loaded Configuration File => /usr/local/php/etc/php.ini
这个命令也就是phpinfo,可以看到,所调用的php文件在哪里
Loaded Configuration File => /usr/local/php/etc/php.ini
  那我们就去配置php,就是去更改它的配置文件
[iyunv@zhangmengjunlinux ~]# vim /usr/local/php/etc/php.ini
  这个php是以“;”作为注释符号的,shell是用 #号,那我们常用的配置大概有这么多,首先第一个
disable_functions =eval,assert,popen.passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcrnd,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
disable_functions它默认是空的,要禁用的一些函数,那我们为了安全需要去禁用一些高风险的函数,有哪些上面已经列出来了,可以去看一下官方文档看看有什么含义
第二配置:关于它的错误日志,相关的搜索关键子/display_error
display_error=off默认是off的,如果我们把它改成on,它可以再页面也就是浏览器访问的页面里显示一些错误信息,不妨举个列子,假如把它改成display_error=on
#apachectl graceful
然后我们故意把php的脚本写错
QQ截图20160107093811.jpg
这一行aaaaaaaa在php看来是不识别的,保存退出
我们去浏览器刷新看一下,有一个错误提示,可以根据看提示找出脚本哪里出了问题
QQ截图20160107093819.jpg


那我们在把display_error=on改成off在来刷新就成了一个白页了,看不到任何的错误,那么这个时候不知道哪里错了怎么办,第一个办法打开display_error,当然你在不知道什么情况的情况下看一看他的状态码按F12刷新出来错误500,还可以curl测试一下,500一般都是PHP的脚本程序有问题,打开display_error=on之后意味着别人能看到你的错误信息,所以我们想到了一种别的方法,首先把display_error=off,然后打开php的错误日志,log_error=on,如果是off我们改成on,另外我们去定义一下具体的error_log所在的路径
error_log=/usr/local/php/logs/php_error_log
那我们先来看一下路径存在不存在

[iyunv@zhangmengjunlinux ~]# ls /usr/local/php/logs/
ls: 无法访问/usr/local/php/logs/: 没有那个文件或目录
[iyunv@zhangmengjunlinux ~]# mkdir /usr/local/php/logs/
[iyunv@zhangmengjunlinux ~]# ls /usr/local/phpp/logs
ls: 无法访问/usr/local/phpp/logs: 没有那个文件或目录
[iyunv@zhangmengjunlinux ~]# chmod 777 /usr/local/php/logs/

没有那个目录我们创建一个,然后呢改它的权限为777,因为错误日志的用户是apache的所以我们要让它可以写,到这里还没有完我们要去配置日志的格式,第三日志的级别
error_reporting = E_ALL & ~E_NOTICE
保存退出,从新加载apache
[iyunv@zhangmengjunlinux ~]# ls /usr/local/php/logs/
[iyunv@zhangmengjunlinux ~]# !vim
vim /usr/local/php/etc/php.ini
[iyunv@zhangmengjunlinux ~]# apachectl restart
[iyunv@zhangmengjunlinux ~]# vim /data/www/forum.php
[iyunv@zhangmengjunlinux ~]# apachectl restart
[iyunv@zhangmengjunlinux ~]# ls /usr/local/php/logs/
php_errors.log
[iyunv@zhangmengjunlinux ~]# cat /usr/local/php/logs/php_errors.log
[02-Jan-2016 16:05:11 Asia/Chongqing] PHP Parse error:  syntax error, unexpected T_STRING in /data/www/forum.php on line 11
那在浏览器页面刷新,虽然我们看不到任何信息,但是我们会在/usr/local/php/logs/下产生了php_error.log有一个日志产生,我们cat一下,看到有错误信息,这就是如何去打开php的错误日志,并且不暴露信息
在一个知识点、open_basedir也是一个安全选项,举几个列子,咱们这个php apache要访问网站,它们去找到一个路径,我们有定义一个路径,比如/data/www,假如网站有一些漏洞,让不法分子获得了一些权限,他可以上传木马,木马可以获得服务器上的一些信息,比如说可以获得一些目录,文件,那么这个时候我们应该想到一个策略,为了以防万一,我们应该把它的权限限制死在某一个目录下,因为我们的网站是在/data/www下。怎么去做呢,就用这个选项
open_basedir=/data/www:/tmp,先来做一个错误的显示open_basedir=/data/www2:/tmp
QQ截图20160107093826.jpg
保存退出, apache从新加载一下,去浏览器刷新一下的时候又是个白页,打开F12也是500,php可以这么做那么apache针对虚拟主机去做一些限制,每一个虚拟主机一open_basedir,每一个站点,每一个域名使用一个open_basedir怎么做它的配置很简单
#vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
php_admin_value open_basedir "/data/www/:/tmp/"
我们可以把php.ini里的open_basedir给注释掉了,我们需要的是apache里的,它的好处在于我们可以区分不同的虚拟主机


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-161276-1-1.html 上篇帖子: PHP检测utf8字数,包括中文 下篇帖子: php数据库链接 配置文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表