2014-02-27 44 views
0

强壮的文本我有一个PHP脚本。它在Web服务器上正常工作。我需要在linux终端上执行它。然后它给予Php警告权限被拒绝。在终端执行php脚本给予权限被拒绝错误

任何人都可以帮助我吗?

linux命令:

usr/bin/php /var/www/site/myscript.php 

php脚本

<?php 
$text = "Cats chase mice"; 
$filename = "somefile.txt"; 
$fh = fopen($filename, "a"); 
fwrite($fh, $text); 
fclose($fh); 
?> 

感谢您的帮助

我解决它使用这个

/usr/bin/curl http://localhost/site/myscript.php 
+2

您能否给一些更多的信息?脚本的权限(即“ls -l ”的输出)是什么?另外,是否在脚本中引用了特定的行号? –

+1

终端登录了哪些用户?您正在尝试写入的文件的权限是什么?如果它不存在,父目录的权限是什么? – Mike

回答

0

Permission denied

我想说你没有创建thar文件的权限。

0

在浏览器php文件/脚本作为万维网数据权限运行。 但是在CLI中,您可能会以普通用户的身份运行。您可以通过添加普通用户作为所有者来更改文件的权限。 也可能你还需要更改目录权限。

0

检查

sudo usr/bin/php /var/www/site/myscript.php 
+0

这将写入超级用户的文件。这不被推荐。 –

+0

Sudo甚至可能没有安装 – Mike

0

你需要一些权限写入文件。

如果确定脚本是无害的,你可以这样做:

sudo /usr/bin/php /var/www/site/myscript.php 

否则,你可以创建文件,并把它交给谁将会启动脚本的用户:

touch somefile.txt && chown [user] somefile.txt 
0

第一所有,你应该检查/var/www/site/somefile.txt的权限 - 它看起来像你不能写入somefile.txt。你可以对文件做CHOWN,或者尝试运行命令为根(不推荐)