允许php写日志文件

时间:2014-05-07 11:17:57

标签: php linux file-io permissions

我有一个php脚本,我想创建日志文件。但它不会这样做,许可被拒绝。 从语法上讲,我认为我的代码对于编写文件是正确的,但我不知道如何(安全地) 允许php在目录中创建文件。

> [Wed May 07 07:01:28.827861 2014] [:error] [pid 2457] [client
> 10.0.0.123:63383] PHP Warning:  fopen(Log filename: 1399460488.txt): failed to open stream: Permission denied in /home/j0h/www/test/iv.php on line 7, referer:
> http://10.0.0.123/test/

这是一个使用php5.4的linux服务器 这是我试图用来编写文件的代码: 第7行以$ handle ...

开头
<?php
//Time... for some logs
$t=time();
//create Log filename based of Epoch
$LogName =  $t . ".txt";
$handle = fopen($LogName, 'w') or die('Cannot open file:  '.$LogName); 

$file = fopen( $LogName, "w" );
if( $file == false )
{
   echo ( "Error in opening new file" );
   exit();
}
fwrite( $file, "This is  a simple test\n" );
fclose( $file );
?>

2 个答案:

答案 0 :(得分:2)

快速回答:将写入权限添加到您要写入的目录:

chmod -R +w /home/j0h/www/test/

但是,为了更安全的方式,您应该将日志写入特定的日志目录,而不包含任何php或可执行文件。

答案 1 :(得分:0)

这可能不是php的问题。它是阻止写访问的文件系统。有几种解决方案:给目录777权限,让你的webuser拥有该目录或让它加入一个拥有权限的组,...

导航到日志目录并尝试sudo chmod -R 777 .