内容概要:
一.  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

这些是php中不安全的函数,一般情况下是禁用,使之disable

2. 配置error_log,error_log经常用于分析页面白页(500,没有任何显示,可能是语法问题)
display_errors= Off
log_errors= On
error_log=/path/to/logfile
error_reporting = E_ALL | E_STRICT

注意:display_errors 一般情况是Off ,如果是打开On,报错日志(包括那个哪个目录下的php源码存在)都回显示在浏览器中,这样很不安全。Off之后

可以定义错误日志log_errors = On ,在服务器上然后定义错误日志路径及日志错误日志级别。(错误日志有时无法写入,记得把日志权限改为apache的damon用户,让其有写权限)

3.错误日志级别:

; 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      用户生成的提醒
& 表示并且
~ 表示非
| 表示或者
比如: error_reporting  =  E_ALL & ~E_NOTICE  表示错误级别为E_ALL 并且除了E_NOTICE

3. 配置open_basedir

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.

open_basedir 目录用来限制对定义的文件进行操作,他可以放在php的配置文件中,也可以放在虚拟主机配置文件中。

一般用于限制虚拟主机,使虚拟主机与虚拟之间彼此独立,这样更安全。

php.ini: open_basedir = /dir1/:/dir2
httpd.conf: php_admin_value open_basedir "/dir1/:/dir2/"  #

错误日志:

限制目录open_basedir= /data/1   存在错误,可能不在

最新文章

  1. Python列表和元组
  2. 如何使用.NET开发全版本支持的Outlook插件产品(二)——完善插件
  3. Python 网络编程(二)
  4. crontab执行脚本中文乱码,手动执行没有问题
  5. SDAutolayout图片大小根据数量变化
  6. 去掉list重复值
  7. SparkStreaming入门及例子
  8. 使用VS插件在VS2012/2013上编辑和调试Quick-Cocos2d-x的Lua代码
  9. VB调用WebService(SOA2.0接口)(直接Post方式)并解析返回的XML
  10. HDU 2102 A计划 经典搜索
  11. webMagic+RabbitMQ+ES爬取京东建材数据
  12. Gitlab_ansible_jenkins三剑客①搭建gitlab的详细步骤
  13. 删除zabbix数据库日志
  14. HDU 6319 Problem A. Ascending Rating(单调队列)
  15. cocos2dx自带物理引擎-创建物理世界
  16. JQuery 的Bind()事件
  17. [Aaronyang] 写给自己的WPF4.5 笔记10[层次数据需求处理,TreeView绿色文章1/4]
  18. Derek解读Bytom源码-protobuf生成比原核心代码
  19. QTableWidget自定义表头QHeaderView加全选复选框
  20. CentOS7安装配置PostgreSQL9.6

热门文章

  1. 详解Linux运维工程师应具备的十大技能
  2. Hacking Tools
  3. [洛谷P3321][SDOI2015]序列统计
  4. 关于Yarn源码那些事-前传之ResourceManager篇(一)初始化
  5. 使用org.jsoup.Jsoup下载网络中的图片
  6. mac 安装 navicat premium11.2.1400 破解版
  7. SyntaxError: Unexpected token ' in JSON at position 1
  8. dom内容区域的滚动overflow,scroll
  9. Codevs 2080 特殊的质数肋骨
  10. Vue.js 2使用中的难点举例--子组件,slot, 动态组件,事件监听