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