注: open_basedir
配置文件 /usr/local/php/etc/php.ini
一. php配置
1. 配置disable_function
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
2. 配置error_log
display_errors=off
是否显示错误(浏览器)(浏览器白页是可以使用,修改好再改回来)
建议使用错误日志
log_errors=on
error_log=/usr/local/php/logs/php_errors.log 错误日志
cd /usr/local/php/logs
touch php_errors.log
chmod 777 php_errors.log
配置 错误日志级别(种类)
error_reporting = E_ALL & ~E_DEPRECATED 注释掉
error_reporting = E_ALL & ~E_NOTICE 添加
vim /data/www/forum.php php代码文件,验证使用
curl -xlocalhost:80 http://www.222.com/forum.php -I 查看 错误种类
3. 配置open_basedir (一个站点受攻击,另外站点不受影响)
php.ini: 找到 open_basedir 默认 未启用
open_basedir = /dir1/:/dir2
建议 写下面的方法 (每个站点分别写,给每个站点指定一个目录,站点就在此目录中活动)
apache http:vhost:
</VirtualHost> 上面加入
php_admin_value open_basedir "/data/www:/tmp/"
使用于俩个网站或更多
使用 curl -xlocalhost:80 111.com -I
查看错误信息 ,500错误 网站程序 有错误
[12-Jan-2015 23:41:25 America/New_York] PHP Fatal error: Unknown: Failed opening required '/data/www/index.php' (include_path='.:/usr/local/php/lib/php') in Unknown on line 0
报此类错误 为 open_basedir 问题导致
/usr/local/php/bin/php -i |grep -i open_basedir 查看 open_basedir 文件指向
/usr/local/php/bin/php -i |head -15
php的错误日志级别 error_report
; E_ALL 所有错误和警告(除E_STRICT外)
; E_ERROR 致命的错误。脚本的执行被暂停。
; E_RECOVERABLE_ERROR 大多数的致命错误。
; E_WARNING 非致命的运行时错误,只是警告,脚本的执行不会停止。
; E_PARSE 编译时解析错误,解析错误应该只由分析器生成。
; E_NOTICE 脚本运行时产生的提醒(往往是我们写的脚本里面的一些bug,比如某个变量没有定义),这个错误不会导致任务中断。
; E_STRICT 脚本运行时产生的提醒信息,会包含一些php抛出的让我们要如何修改的建议信息。
; E_CORE_ERROR 在php启动后发生的致命性错误
; E_CORE_WARNING 在php启动后发生的非致命性错误,也就是警告信息
; E_COMPILE_ERROR php编译时产生的致命性错误
; E_COMPILE_WARNING php编译时产生的警告信息
; E_USER_ERROR 用户生成的错误
; E_USER_WARNING 用户生成的警告
; E_USER_NOTICE 用户生成的提醒