php.ini配置文件

回复 收藏
php配置文件:
/usr/local/php/etc/php.ini

如果找不到,可以使用/usr/local/php/bin/php -i | head查找

500 脚本程序错误

;分号为注释符号

(1)禁用函数 ,禁止一些高风险的函数  
disable_functions = phpinfo,eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen

重启apache   
apache graceful
(2)错误日志
display_errors =   默认Off    [On]
log_errors=On
error_log=/usr/local/php/logs/php_errors.log
error_reporting=E_ALL & ~E_NOTICE      //日志级别
mkdir /usr/local/php/logs
chmod 777 /usr/local/php/logs/
配置完成后即可在/usr/local/php/logs/下查看php日志错误

注意:当在/data/www/forum.php中故意输错信息时
display_errors = off时,打开的网页显示的是空白页
解决:
curl -x127.0.0.1:80 www.jqm.com/forum -I显示为500的脚本程序错误信息
将原输错的信息删除即可

如果是on,显示的为错误信息,但是这样不安全,所以建议不使用

(3)限制访问
为了防止黑客的破坏,可以将某个网站限制在某个目录下
open_basedir = /data/www:/tmp
多个站点时,配置apache

如:将设置成open_basedir = /data/www2:/tmp
打开网页访问时显示为空白页
查看错误日志能看到错误信息
证明:必须要指定为已经存在的网页路径

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
每一个虚拟主机使用一个open_basedir

    DocumentRoot "/data/www"
    ServerName www.jqm.com
    ServerAlias www.jc.com
php_admin_value open_basedir "/data/www/:/tmp/"
重启服务即可/usr/local/apache/bin/apachectl restart   [graceful]
   

2016-08-09 20:26 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: