如何在服务器端编写当前原始访问日志文件

时间:2015-04-02 12:07:59

标签: php

我要在服务器上写当前的原始访问文件,但是我无法访问该文件路径我正在使用以下代码

    const GENERAL_ERROR_DIR = '/logs/agent_log'; 

    public function general($msg) 
    { 
        $date = date('d/m/Y h:i:s'); 
        $log = $msg . "   |  Date:  " . $date . "\t"; 
        error_log($log,3, self::GENERAL_ERROR_DIR); 
    }  

在上面的代码中,我无法到达该文件的目的地。我这样做。

2 个答案:

答案 0 :(得分:1)

您需要写入实际的服务器端路径,类似于/home/yourdomain.com/htdocs/logs/agent_log,您可以使用getcwd();获取当前脚本的路径,以便写入与脚本本身相同的路径尝试:

const GENERAL_ERROR_DIR = getcwd();

public function general($msg) 
 { 
    $date = date('d/m/Y h:i:s'); 
    $log = $msg."   |  Date:  ".$date."\t"; 
    error_log($log,3, self::GENERAL_ERROR_DIR); 
 } 

然后,您可以将其编辑为文件夹的正确路径。像const GENERAL_ERROR_DIR = getcwd() . '/../../logs/agent_log这样的东西;

同样正如@ethrbunny所提到的,检查您写入的任何文件夹的权限应该设置为可以写入。

答案 1 :(得分:1)

确保文件存在且apache / httpd具有正确的文件读/写权限。 通常给予该组的写入权限将起作用。 这File permission可以提供帮助。

简而言之,如果您已经在Linux环境中试试这个:

chmod 666 /logs/agent_log sudo chmod 666 /logs/agent_log

这将为所有人提供读写权限。