我不妨先/usr/local/php/bin/php -i |head查看一下Loaded Configuration File->/usr/local/php/etc/php.ini
如果当这里是None表示是没有指定php.ini的。
那么php.ini这个文件是怎么来的呢。
在我对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学习空间” 博客,转载请与作者联系!