您好,登錄后才能下訂單哦!
路徑:/usr/local/php/etc/php.ini
php用“;”作為“注釋”符號(hào),shell用“#”作為“注釋”符號(hào);
編輯php.ini
[root@LAMPLINUX ~]# vim /usr/local/php/etc/php.ini
1. 查詢/disable_functions 設(shè)置禁用函數(shù)
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
這些函數(shù)都是高風(fēng)險(xiǎn)函數(shù),為了安全,需要禁止這些函數(shù)。
2. 錯(cuò)誤日志相關(guān)配置
查詢/display_error
display_error=off
默認(rèn)是off,若改成on,會(huì)顯示當(dāng)前瀏覽器錯(cuò)誤,同時(shí)也會(huì)造成信息泄漏,影響安全性。
3. 查詢 /log_errors
log_errors =on
4. 查詢 /error_log
創(chuàng)建絕對(duì)路徑
[root@LAMPLINUX ~]# mkdir /usr/local/php/logs
授予權(quán)限(生成錯(cuò)誤日志的用戶是apache,所以要用777權(quán)限,使他可寫)
[root@LAMPLINUX ~]# chmod 777 /usr/local/php/logs
編輯php.ini,去掉語(yǔ)句前面的;號(hào)
把error_log=php_error.log改成error_log=/usr/local/php/logs/php_error.log的“絕對(duì)路徑”。
5. 配置日志級(jí)別
查詢 /error_reporting
error_reporting =E_ALL & ~E_NOTICE (用這兩種級(jí)別)
保存退出
:wq
[root@LAMPLINUX ~]# apachectl -t
Syntax OK
[root@LAMPLINUX ~]# apachectl restart
這就是如何去打開(kāi)錯(cuò)誤日志,而不用暴露錯(cuò)誤信息的配置方法,有助于排查問(wèn)題。
查看錯(cuò)誤信息:
如果發(fā)現(xiàn)有網(wǎng)頁(yè)瀏覽錯(cuò)誤
[root@LAMPLINUX ~]# ls /usr/local/php/logs/
php_error.log
[root@LAMPLINUX ~]# cat /usr/local/php/logs/php_error.log
這樣就可以查看錯(cuò)誤信息了。
6. 查詢/open_basedir
編輯php.ini
找到;open_basedir= 去掉;號(hào),改成如下路徑
open_basedir=/data/www:/tmp
這是個(gè)安全選項(xiàng),針對(duì)單一主機(jī)、網(wǎng)站、域名,把訪問(wèn)的權(quán)限限定在指定目錄下,其他目錄沒(méi)有訪問(wèn)權(quán)限,所以這個(gè)open_basedir一定要限定在網(wǎng)站程序所在的目錄下。
[root@LAMPLINUX ~]# apachectl -t
Syntax OK
[root@LAMPLINUX ~]# apachectl restart
生效。
擴(kuò)展延伸學(xué)習(xí):
針對(duì)多個(gè)主機(jī),多個(gè)網(wǎng)站,多個(gè)域名,要多配置幾個(gè)open_basedir的限制,如果用php.ini去編輯,只能限定配置一句;要是限制多個(gè),我們可以針對(duì)apache的“虛擬主機(jī)配置文件”去做限制,使每一個(gè)虛擬主機(jī)一個(gè)open_basedir,我們把他們分割開(kāi),每一個(gè)站點(diǎn),每一個(gè)虛擬機(jī),每一個(gè)域名公用一個(gè)open_basedir。
配置如下:
[root@LAMPLINUX ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
寫入:
php_admin_value open_basedir "/data/www:/tmp"
:wq
現(xiàn)在我們就不需要php.ini里的open_basedir配置,用;注釋掉
[root@LAMPLINUX ~]# apachectl -t
Syntax OK
[root@LAMPLINUX ~]# apachectl restart
生效,這樣做的好處是能夠區(qū)分不同的虛擬機(jī)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。