1. 程式人生 > >LAMP 中關於php錯誤日誌配置的小問題

LAMP 中關於php錯誤日誌配置的小問題

首先,php在LAMP中是作為一個模組被apache呼叫的,所有並沒有單獨的程序

php編譯安裝後,配置檔案在原始碼包裡面,將配置檔案複製到指定的目錄裡

cp /usr/local/src/php-5.3.28/php.ini-production   /usr/local/php/etc/php.ini

然後執行

/usr/local/php/bin/php -i | grep php.ini

看看配置檔案是否已經識別

完成這兩步之後然後開始正式配置php.ini

1.配置disable_function

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.配置php的錯誤日誌

display_errors = Off
logs_error = On
error_log = /usr/local/php/logs/php_errors.log
error_reporting = E_ALL | E_STRICT

第一個display_errors如果開啟的話,當php程式碼出錯時,訪問時會直接在瀏覽器上面顯示錯誤資訊,這樣很不安全,除非是用於開發者除錯,否則很容易被攻擊者利用,建議關閉

logs_error = on 這個是開啟日誌記錄的功能,開啟後錯誤資訊會儲存到日誌當中

error_log 這個很明顯就是錯誤日誌的路徑了

error_reporting 這一項是指定記錄錯誤日誌的形式,配置檔案裡面有英文解釋,可以按照自己需求去修改

最後再說說我在做實驗時遇到的問題 : 配置完錯誤日誌後,我把我的網頁php程式碼故意改錯了,然後用瀏覽器訪問確實沒有顯示任何錯誤資訊。但是當我去檢視錯誤日誌的時候卻發現居然沒有生成php_errors.log這個日誌檔案,後來上網查資料弄了好久發現原來是錯誤日誌要設定許可權的,然後我自己建立了php_errors.log這個日誌檔案,然後把該檔案的訪問許可權修改為666,然後再重新整理了下網頁,錯誤日誌就出來了。

也就是說:這個錯誤日誌必須能讓apache寫入,而apache程序的使用者是daemon,所以這個檔案的許可權必須要修改成daemon可寫才行。