查看PHP.ini文件的路徑
/usr/local/php/bin/php -i |head
如果此處為None說明沒有加載到具體的php.ini,想想自己以前安裝PHP的時候是不是忘記拷貝過來?
一般文件的位置都是在
Loaded Configuration File => /usr/local/php/etc/php.ini
若是沒有或則自己的里面沒有大量的注釋內(nèi)容(以;開頭的),kk勸你還是再拷貝一份吧。
cp /usr/local/src/php-5.6.31/php.ini-production /usr/local/php/etc/php.ini
1. 禁止使用部分函數(shù)?
在php中有大量的函數(shù),但是有一些函數(shù)對我們來說是不安全的,所以需要禁掉
vim /usr/local/php/etc/php.ini
建議大家搜索一下關(guān)鍵字,對應(yīng)的寫到相應(yīng)的部分
disable_functions = eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chg,rp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsock,open,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close
2. 配置error_log
PHP排查錯誤有兩種做法
(1)錯誤信息直接輸出顯示到網(wǎng)頁中
vim /usr/local/php/etc/php.ini
找到(466行)display_error=更改為
display_error=on
重啟服務(wù)器即可
/usr/local/apache2/bin/apachectl graceful
但是這種情況只適合臨時調(diào)試,不適合長期配置,因為可能暴露我們服務(wù)器的一些信息,被人攻擊,所以就要用到第二種方法
(2)錯誤信息輸出到日志文件
vim /usr/local/php/etc/php.ini
更改一下配置,以前沒有的配置要自己寫
首先關(guān)閉日志輸出到瀏覽器
display_errors = Off
然后打開錯誤日志開關(guān)
log_errors = On
指定錯誤日志的輸出路徑
error_log=/usr/local/php/logs/error.log
指定錯誤日志的級別,意思是報告所有的錯誤信息,除了E_STRICT這一種
error_reporting = E_ALL | E_STRICT
解釋一下不同的錯誤級別
1 ? E_ERROR? ? ? ? ? ? 報告導(dǎo)致腳本終止運行的致命錯誤
2 ? E_WARNING ? ? ? 報告運行時的警告類錯誤(腳本不會終止運行)
4 ? E_PARSE ? ? ? ? ? ? 報告編譯時的語法解析錯誤
8 ? E_NOTICE ? ? ? ? ? 報告通知類錯誤,腳本可能會產(chǎn)生錯誤
30767 ? E_ALL ? ? ? ? ? ? ? ? ?報告所有的可能出現(xiàn)的錯誤(不同的PHP版本,常量E_ALL的值也可能不同)
重啟服務(wù)器后生效
/usr/local/apache2/bin/apachectl graceful