我的Linux服務器在Apache2上運行PHP 7作爲CGI。在php.ini
我將錯誤寫入錯誤日誌
error_log = /var/log/apache2/php.log
現在,我有兩個問題:
1)所有PHP錯誤去/var/log/apache2/error.log
而不是php.log
。我編輯了正確的php.ini
,因爲ini_get('error_log')
返回PHP中的php.log
的完整路徑。
2)當我嘗試在PHP中打開這些文件中的任何一個時,我得到權限被拒絕。我有chmod
'd這兩個文件到777,但PHP仍然無法訪問它們。
服務器已多次重新啓動,因此配置更改適用。我的Apache配置是這樣的:
ErrorLog ${APACHE_LOG_DIR}/error.log
ScriptAlias /local-bin /usr/bin
AddHandler application/x-httpd-php7 php
Action application/x-httpd-php7 /local-bin/php-cgi7.0
<Directory "/usr/bin">
Require all granted
AllowOverride All
</Directory>
如何將PHP錯誤重定向到正確的文件,並使其可讀取PHP?提前致謝!
將'ErrorLog $ {APACHE_LOG_DIR}/error.log'更改爲'ErrorLog $ {APACHE_LOG_DIR}/php.log'? – Halcyon
chmodding這些文件通常是不夠的。您必須具有訪問所有父/容器目錄的權限。如果它位於鎖定的保險庫內,授予對文件的訪問權限毫無意義。日誌文件是在apache仍以root身份運行時創建的,因此這些文件由root擁有。那麼一旦你嘗試訪問它們在PHP中,Apache不再是根,並且PHP沒有文件的權利。 –
好的,回到基礎!這確實是父目錄的權限問題。現在我感到尷尬:) – Aleksiv95