LAMP里php.ini配置文件详解
2015-07-11 15:29
766 查看
路径:/usr/local/php/etc/php.ini
php用“;”作为“注释”符号,shell用“#”作为“注释”符号;
编辑php.ini
[root@LAMPLINUX ~]# vim /usr/local/php/etc/php.ini
1. 查询/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
这些函数都是高风险函数,为了安全,需要禁止这些函数。
2. 错误日志相关配置
查询/display_error
display_error=off
默认是off,若改成on,会显示当前浏览器错误,同时也会造成信息泄漏,影响安全性。
3. 查询 /log_errors
log_errors =on
4. 查询 /error_log
创建绝对路径
[root@LAMPLINUX ~]# mkdir /usr/local/php/logs
授予权限(生成错误日志的用户是apache,所以要用777权限,使他可写)
[root@LAMPLINUX ~]# chmod 777 /usr/local/php/logs
编辑php.ini,去掉语句前面的;号
把error_log=php_error.log改成error_log=/usr/local/php/logs/php_error.log的“绝对路径”。
5. 配置日志级别
查询 /error_reporting
error_reporting =E_ALL & ~E_NOTICE (用这两种级别)
保存退出
:wq
[root@LAMPLINUX ~]# apachectl -t
Syntax OK
[root@LAMPLINUX ~]# apachectl restart
这就是如何去打开错误日志,而不用暴露错误信息的配置方法,有助于排查问题。
查看错误信息:
如果发现有网页浏览错误
[root@LAMPLINUX ~]# ls /usr/local/php/logs/
php_error.log
[root@LAMPLINUX ~]# cat /usr/local/php/logs/php_error.log
这样就可以查看错误信息了。
6. 查询/open_basedir
编辑php.ini
找到;open_basedir= 去掉;号,改成如下路径
open_basedir=/data/www:/tmp
这是个安全选项,针对单一主机、网站、域名,把访问的权限限定在指定目录下,其他目录没有访问权限,所以这个open_basedir一定要限定在网站程序所在的目录下。
[root@LAMPLINUX ~]# apachectl -tSyntax OK[root@LAMPLINUX ~]# apachectl restart生效。
扩展延伸学习:
针对多个主机,多个网站,多个域名,要多配置几个open_basedir的限制,如果用php.ini去编辑,只能限定配置一句;要是限制多个,我们可以针对apache的“虚拟主机配置文件”去做限制,使每一个虚拟主机一个open_basedir,我们把他们分割开,每一个站点,每一个虚拟机,每一个域名公用一个open_basedir。
配置如下:
[root@LAMPLINUX ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
写入:
php_admin_value open_basedir "/data/www:/tmp"
:wq
现在我们就不需要php.ini里的open_basedir配置,用;注释掉
[root@LAMPLINUX ~]# apachectl -t
Syntax OK
[root@LAMPLINUX ~]# apachectl restart
生效,这样做的好处是能够区分不同的虚拟机。
php用“;”作为“注释”符号,shell用“#”作为“注释”符号;
编辑php.ini
[root@LAMPLINUX ~]# vim /usr/local/php/etc/php.ini
1. 查询/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
这些函数都是高风险函数,为了安全,需要禁止这些函数。
2. 错误日志相关配置
查询/display_error
display_error=off
默认是off,若改成on,会显示当前浏览器错误,同时也会造成信息泄漏,影响安全性。
3. 查询 /log_errors
log_errors =on
4. 查询 /error_log
创建绝对路径
[root@LAMPLINUX ~]# mkdir /usr/local/php/logs
授予权限(生成错误日志的用户是apache,所以要用777权限,使他可写)
[root@LAMPLINUX ~]# chmod 777 /usr/local/php/logs
编辑php.ini,去掉语句前面的;号
把error_log=php_error.log改成error_log=/usr/local/php/logs/php_error.log的“绝对路径”。
5. 配置日志级别
查询 /error_reporting
error_reporting =E_ALL & ~E_NOTICE (用这两种级别)
保存退出
:wq
[root@LAMPLINUX ~]# apachectl -t
Syntax OK
[root@LAMPLINUX ~]# apachectl restart
这就是如何去打开错误日志,而不用暴露错误信息的配置方法,有助于排查问题。
查看错误信息:
如果发现有网页浏览错误
[root@LAMPLINUX ~]# ls /usr/local/php/logs/
php_error.log
[root@LAMPLINUX ~]# cat /usr/local/php/logs/php_error.log
这样就可以查看错误信息了。
6. 查询/open_basedir
编辑php.ini
找到;open_basedir= 去掉;号,改成如下路径
open_basedir=/data/www:/tmp
这是个安全选项,针对单一主机、网站、域名,把访问的权限限定在指定目录下,其他目录没有访问权限,所以这个open_basedir一定要限定在网站程序所在的目录下。
[root@LAMPLINUX ~]# apachectl -tSyntax OK[root@LAMPLINUX ~]# apachectl restart生效。
扩展延伸学习:
针对多个主机,多个网站,多个域名,要多配置几个open_basedir的限制,如果用php.ini去编辑,只能限定配置一句;要是限制多个,我们可以针对apache的“虚拟主机配置文件”去做限制,使每一个虚拟主机一个open_basedir,我们把他们分割开,每一个站点,每一个虚拟机,每一个域名公用一个open_basedir。
配置如下:
[root@LAMPLINUX ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
写入:
php_admin_value open_basedir "/data/www:/tmp"
:wq
现在我们就不需要php.ini里的open_basedir配置,用;注释掉
[root@LAMPLINUX ~]# apachectl -t
Syntax OK
[root@LAMPLINUX ~]# apachectl restart
生效,这样做的好处是能够区分不同的虚拟机。
相关文章推荐
- Windows7下获得System权限问题解决方法
- 安装软件 Nullsoft Install System 2.27汉化版 下载
- Powershell Profiles配置文件的存放位置介绍
- PowerShell入门教程之创建和使用配置文件实例
- SERV-U 的配置文件详解
- Could not load type System.ServiceModel.Activation.HttpModule解决办法
- PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
- php.ini 配置文件的深入解析
- redis2.8配置文件中文翻译版
- PHP配置文件php.ini中打开错误报告的设置方法
- oracle忘记sys/system/scott用户密码的解决方法
- C#中读取App.config配置文件代码实例
- c++实现逐行读取配置文件写入内存的示例
- 关于session在PHP5的配置文件中的详细设置参数说明
- MySQL 配置文件my.cnf 例子最详细翻译
- Oracle中sys和system的区别小结
- apache 配置文件解说
- System Repair Engineer (SREng) 功能介绍与下载
- Office 2007 System 常见问题集第1/3页
- php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)