我有一个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 );
?>
答案 0 :(得分:2)
快速回答:将写入权限添加到您要写入的目录:
chmod -R +w /home/j0h/www/test/
但是,为了更安全的方式,您应该将日志写入特定的日志目录,而不包含任何php或可执行文件。
答案 1 :(得分:0)
这可能不是php的问题。它是阻止写访问的文件系统。有几种解决方案:给目录777权限,让你的webuser拥有该目录或让它加入一个拥有权限的组,...
导航到日志目录并尝试sudo chmod -R 777 .