簡體   English   中英

權限被拒絕,錯誤日志

[英]Permission denied, error log

我正在嘗試創建一個簡單的錯誤日志,記下php錯誤,以防這些錯誤無法報告給管理員(使用數據庫連接)。 我寫了這個:

function errorLog($array)
{
    $time = date("F j, Y, g:i a");
    $ip = $_SERVER['REMOTE_ADDR'];
    $no = $array['e-no'];
    $string = $array['e-string'];
    $file = $array['e-file'];
    $line = $array['e-line'];
    $context = $array['e-context'];

    $string = "TIME {$time} IP {$ip} ERROR {$no} | {$string} | {$file} | {$line} | {$context}";
    if ($handler = fopen('log/log-file.txt', 'a'))
    {
        fwrite($handler, $string);
        fclose($handler);
    }
    else
    {
        exit('Fatal Error #0002');
    }
}

開始編輯

功能已成為

function errorLog($array)
{
    $time = date("F j, Y, g:i a");
    $ip = $_SERVER['REMOTE_ADDR'];
    $type = $array['e-type'];
    $string = $array['e-string'];
    $file = $array['e-file'];
    $line = $array['e-line'];
    $context = $array['e-context']
    $string = "ON {$time} IP {$ip} ERROR {$type} | {$string} | {$file} | {$line} | {$context}"; 
    if (!error_log($string, 3, 'log/log-file.txt')) { exit('Fatal Error #0002'); }
}

結束編輯

但是,當我運行它時,我得到了

Warning: fopen(log/log-file.txt) [function.fopen]: failed to open stream: Permission denied in myfile.php on line 17

我得到這是一個服務器權限問題,但我正在使用localhost(Mac OS X上的Xampp),我想管理這些權限。 我怎樣才能將日志/只能寫入? 有沒有更好的方法來做我想做的事情?

我得到這是一個服務器權限問題,但我正在使用localhost(Mac OS X上的Xampp),我想管理這些權限。 我怎樣才能將日志/只能寫入? 有沒有更好的方法來做我想做的事情?

您可能需要簽出set_error_handler ,以確保通過自定義函數自動發送所有錯誤。 無論如何,這不是問題的根源,您的問題實際上是服務器上的權限。 現在,要做的第一件事就是確定PHP運行的用戶。 這可以非常簡單地確定,您只需運行此腳本:

<?php
echo `whoami`;

對於你的Mac,這可能是'www-data'。 如果你想改變它(可能),你應該深入研究Apache MPM ITK的工作原理。 如果運行腳本的'www-data'沒問題,則應該對日志目錄賦予'www-data'訪問權限。 首先,轉到父目錄並發出命令'ls -laF',以查看有關日志目錄的詳細信息。 假設輸出如下:

rwxr-xr-x 2漿果漿果4096 2011-01-18 16:53日志/

在這種情況下,我(用戶“漿果”)將是所有者。 我主要在的組(即“berry”)是擁有該目錄的組。 現在,您可以通過rwx rx rx告訴所有者(第一個rwx)可以讀取,寫入和執行。 第二個(組)可以讀取和執行。 其他人(其他人)可以閱讀和執行。

“www-data”可能不屬於“漿果”組。 要解決此問題,您需要發出命令: chgrp -R www-data log/ ,然后是chmod -R g+x log/ 這意味着:將擁有組更改為“www-data”,並給予組(g)執行權限(+ x)​​,在目錄“log /”上遞歸執行(-R)。

祝好運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM