Php.ini 配置文件詳解(配置php錯誤日志)
創新互聯建站網絡公司擁有10年的成都網站開發建設經驗,千余家客戶的共同信賴。提供成都網站建設、成都網站設計、網站開發、網站定制、買鏈接、建網站、網站搭建、成都響應式網站建設、網頁設計師打造企業風格,提供周到的售前咨詢和貼心的售后服務
第一步禁用一些高風險函數 & 打開錯誤日志
[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 不能識的別的
<?php
wellcome to wuhan 2016-10-01
刷新網頁,網頁報錯了。
此時我們關掉 display_error off,再次刷新網頁(500一般是PHP的腳本有問題).
這一項打開會暴露我們的一些信息,所以保持黙認關掉。

定義我們的錯誤日志的保路徑:
;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 (日志保存的絕對路徑)
退出確認一下這個目錄存不存在
[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/ #創建目錄
[root@OBird etc]# chmod 777 !$
chmod 777 /usr/local/php/logs/ # 更改目示權根為777 ,讓apache 可寫。
修改日起的級別
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
[root@OBird ~]# apachectl graceful
再次刷新網頁,依然是看不到相關的任何息,但是我們可以查看日志。
這樣可以幫助我們不暴露我們的信息,也保存了錯誤日志,有助我們排查問題。
[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 = 這是一個安全選項,
將它配置為 open_basedir = /data/www2:/tmp
/data/www2 這是一個錯誤的目錄,此時去訪問網站刷出來的是白頁(同上 (500一般是PHP的腳本有問題).)
查看錯誤日志
—————————————————————————————————————————————
沒有達到理想中的的實驗效果;且記錄下來再說吧.沒搞明白magic_quotes_runtime 這個東西到底該怎么來設置。
[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
—————————————————————————————————————————————
如果一臺服務器上有多個網站,那么我們在
[root@OBird etc]# vim /usr/local/php/etc/php.ini 就無法進么區分限制了。
所以必須在虛擬機上來做一些設置,一個虛擬機一個配置
[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 的好處在于可以區分不同的虛擬主機,
注釋掉里面的目錄配置([root@OBird ~]# vim /usr/local/php/etc/php.ini )
然后將php_admin_value open_basedir "/data/www9/:/tmp/"目錄改錯進行測試
再測試打開網頁,網頁是打不開的。

本文標題:8_Php.ini配置文件詳解
標題鏈接:http://www.yijiale78.com/article40/ghddeo.html
成都網站建設公司_創新互聯,為您提供用戶體驗、網站設計公司、網頁設計公司、網站策劃、關鍵詞優化、ChatGPT
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯