您好,登錄后才能下訂單哦!
Php.ini 配置文件詳解(配置php錯誤日志)
第一步禁用一些高風險函數 & 打開錯誤日志
[root@OBird etc]# vim /usr/local/php/etc/php.ini
disable_functions = 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
display_errors = On
[root@OBird etc]# apachectl -t
Syntax OK
[root@OBird etc]# apachectl restart
下面來做測試:
[root@OBird etc]# vim /data/www/forum.php
在forum.php 下加一行php 不能識的別的
<?php
wellcome to wuhan 2016-10-01
刷新網頁,網頁報錯了。
此時我們關掉 display_error off,再次刷新網頁(500一般是PHP的腳本有問題).
這一項打開會暴露我們的一些信息,所以保持黙認關掉。
定義我們的錯誤日志的保路徑:
;error_log = php_errors.log
; Log errors to syslog (Event Log on Windows).
;error_log = syslog
----------------------------------------------
error_log = /usr/local/php/logs/php_errors.log (日志保存的絕對路徑)
退出確認一下這個目錄存不存在
[root@OBird etc]# ls /usr/local/php/logs
ls: cannot access /usr/local/php/logs: No such file or directory #目錄不存在
[root@OBird etc]# mkdir /usr/local/php/logs/ #創建目錄
[root@OBird etc]# chmod 777 !$
chmod 777 /usr/local/php/logs/ # 更改目示權根為777 ,讓apache 可寫。
修改日起的級別
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
[root@OBird ~]# apachectl graceful
再次刷新網頁,依然是看不到相關的任何息,但是我們可以查看日志。
這樣可以幫助我們不暴露我們的信息,也保存了錯誤日志,有助我們排查問題。
[root@OBird ~]# cat /usr/local/php/logs/php_errors.log
[01-Oct-2016 12:36:37 UTC] PHP Fatal error: Directive 'magic_quotes_runtime' is no longer available in PHP in Unknown on line 0
[01-Oct-2016 12:42:55 UTC] PHP Fatal error: Directive 'magic_quotes_runtime' is no longer available in PHP in Unknown on line 0
[01-Oct-2016 12:43:17 UTC] PHP Fatal error: Directive 'magic_quotes_runtime' is no longer available in PHP in Unknown on line 0
[01-Oct-2016 12:45:36 UTC] PHP Fatal error: Directive 'magic_quotes_runtime' is no longer available in PHP in Unknown on line 0
分割線———————————————————————————————————————分割線
;open_basedir = 這是一個安全選項,
將它配置為 open_basedir = /data/www2:/tmp
/data/www2 這是一個錯誤的目錄,此時去訪問網站刷出來的是白頁(同上 (500一般是PHP的腳本有問題).)
查看錯誤日志
—————————————————————————————————————————————
沒有達到理想中的的實驗效果;且記錄下來再說吧.沒搞明白magic_quotes_runtime 這個東西到底該怎么來設置。
[root@OBird ~]# cat /usr/local/php/logs/php_errors.log
[01-Oct-2016 12:36:37 UTC] PHP Fatal error: Directive 'magic_quotes_runtime' is no longer available in PHP in Unknown on line 0
[01-Oct-2016 12:42:55 UTC] PHP Fatal error: Directive 'magic_quotes_runtime' is no longer available in PHP in Unknown on line 0
[01-Oct-2016 12:43:17 UTC] PHP Fatal error: Directive 'magic_quotes_runtime' is no longer available in PHP in Unknown on line 0
[01-Oct-2016 12:45:36 UTC] PHP Fatal error: Directive 'magic_quotes_runtime' is no longer available in PHP in Unknown on line 0
[02-Oct-2016 06:06:57 UTC] PHP Fatal error: Directive 'magic_quotes_runtime' is no longer available in PHP in Unknown on line 0
[02-Oct-2016 06:11:13 UTC] PHP Fatal error: Directive 'magic_quotes_runtime' is no longer available in PHP in Unknown on line 0
—————————————————————————————————————————————
如果一臺服務器上有多個網站,那么我們在
[root@OBird etc]# vim /usr/local/php/etc/php.ini 就無法進么區分限制了。
所以必須在虛擬機上來做一些設置,一個虛擬機一個配置
[root@OBird ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/www"
ServerName www.test.com
ServerAlias www.aaa.com
ServerAlias www.bbb.com
php_admin_value open_basedir "/data/www/:/tmp/" #加一句,
apache 的好處在于可以區分不同的虛擬主機,
注釋掉里面的目錄配置([root@OBird ~]# vim /usr/local/php/etc/php.ini )
然后將php_admin_value open_basedir "/data/www9/:/tmp/"目錄改錯進行測試
再測試打開網頁,網頁是打不開的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。