您好,登錄后才能下訂單哦!
Php.ini 配置文件詳解(配置php錯(cuò)誤日志)
第一步禁用一些高風(fēng)險(xiǎn)函數(shù) & 打開錯(cuò)誤日志
[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 不能識(shí)的別的
<?php
wellcome to wuhan 2016-10-01
刷新網(wǎng)頁,網(wǎng)頁報(bào)錯(cuò)了。
此時(shí)我們關(guān)掉 display_error off,再次刷新網(wǎng)頁(500一般是PHP的腳本有問題).
這一項(xiàng)打開會(huì)暴露我們的一些信息,所以保持黙認(rèn)關(guān)掉。
定義我們的錯(cuò)誤日志的保路徑:
;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 (日志保存的絕對(duì)路徑)
退出確認(rèn)一下這個(gè)目錄存不存在
[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/ #創(chuàng)建目錄
[root@OBird etc]# chmod 777 !$
chmod 777 /usr/local/php/logs/ # 更改目示權(quán)根為777 ,讓apache 可寫。
修改日起的級(jí)別
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
[root@OBird ~]# apachectl graceful
再次刷新網(wǎng)頁,依然是看不到相關(guān)的任何息,但是我們可以查看日志。
這樣可以幫助我們不暴露我們的信息,也保存了錯(cuò)誤日志,有助我們排查問題。
[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 = 這是一個(gè)安全選項(xiàng),
將它配置為 open_basedir = /data/www2:/tmp
/data/www2 這是一個(gè)錯(cuò)誤的目錄,此時(shí)去訪問網(wǎng)站刷出來的是白頁(同上 (500一般是PHP的腳本有問題).)
查看錯(cuò)誤日志
—————————————————————————————————————————————
沒有達(dá)到理想中的的實(shí)驗(yàn)效果;且記錄下來再說吧.沒搞明白magic_quotes_runtime 這個(gè)東西到底該怎么來設(shè)置。
[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
—————————————————————————————————————————————
如果一臺(tái)服務(wù)器上有多個(gè)網(wǎng)站,那么我們?cè)?/p>
[root@OBird etc]# vim /usr/local/php/etc/php.ini 就無法進(jìn)么區(qū)分限制了。
所以必須在虛擬機(jī)上來做一些設(shè)置,一個(gè)虛擬機(jī)一個(gè)配置
[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 的好處在于可以區(qū)分不同的虛擬主機(jī),
注釋掉里面的目錄配置([root@OBird ~]# vim /usr/local/php/etc/php.ini )
然后將php_admin_value open_basedir "/data/www9/:/tmp/"目錄改錯(cuò)進(jìn)行測試
再測試打開網(wǎng)頁,網(wǎng)頁是打不開的。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。