php.ini配置文件有哪些值得要操作的呢

我不妨先/usr/local/php/bin/php -i |head查看一下Loaded Configuration File->/usr/local/php/etc/php.ini

如果当这里是None表示是没有指定php.ini的。

那么php.ini这个文件是怎么来的呢。

  1. 在我对php编译安装的时候有这么一步,在把解压之后的php-5.4.44这个文件夹里面,

    cp php.ini.production /usr/local/php/etc/php.ini

2.那么,vim /usr/local/php/etc/php.ini一下。

3.php中有非常多的函数的,这是很危险的,所以禁掉一些函数

/disable_functions=

加入以下函数(这里不多说,相应这些函数解释可以转http://zxlwz.blog.51cto.com/6952946/1718118或去php官网)

disable_function=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

4.当访问一个网站时,出现白页,一般情况是500状态码,php遇到错误的原因。

那要怎么去查看php是哪里出现错误了呢。

1)这里如果是on,那么在访问网页时,他会报错在浏览器上,并且会提示哪里有问题。但我们想,如果出现在了浏览器里报错,当php程序员写错了代码,而且这段代码非常重要,如果这段代码让有心人看到了,是非常危险的。

所以说,这里off掉。

/display_error=

display_error=on 

display_error=off

2)引用error错误日志。

/log_errors=

log_errors=on

error_log=/usr/local/php/logs/error.log

3)通过/找到/log_errors定义on。

在给错误日志定义路径。可能php下不存在logs目录,且在访问apache的时候是apache的用户去访问的,所以有必要给定义权限。

mkdir /usr/local/php/logs

chmod 777 logs


5.最后一步,就是

/erro_reporting=E_ALL |E_STRICT


6.重启apache



7.配置open_basedir.这个功能是限制php的用户限定在指定目录下,不选项访问定义之外的目录,这极大的提高了安全性。

如:open_basedir=/data/www:/tmp

其中多个目录用冒号分开。

在配置完这个,当访问别的目录时,就会提示报错。


8。也可以在apache下的文件里定义。(如果apache有多个网站那么可在在下面定义。)

vim /usr/local/apache2/conf/httpd.conf

php_admin_value open_basedir "/dir1://dir2/"

本文出自 “Linux学习空间” 博客,转载请与作者联系!

你可能感兴趣的:(error_log)