2012-09-04 16 views
1

我遇到问题。 我有一个PHP脚本,它执行一些操作,然后创建一个.txt文件来放入一些日志。在MAC终端中执行的PHP脚本:无法打开流:权限被拒绝

当我使用我的浏览器中运行的脚本,它完美的作品,创建txt文件(一个新的脚本,每次使用时被创建),写日志了进去..

但 当我启动从终端使用命令php的脚本,然后我有错误: 警告fopen未能打开流:权限被拒绝

我保存日志的文件夹的权限是755.该文件夹在/ Library/WebServer/Documents/ _www是该文件夹的所有者。

感谢您的帮助。

回答

1

检查每个人都可以访问该目录/文件夹,并且该目录/文件夹的默认文件创建权限使该文件可以向整个系统公开访问,而不仅仅是一个用户。有时候会把它塞满。

如果不工作,你总是可以尝试把sudo在你的命令,后面加一个空格的前面,所以这样的:

$ sudo php whatever here

这时会提示输入您的用户密码。

+0

谢谢。事实上,这个目录并不适合所有人。我最终将脚本移动到了我的主文件夹中,现在它运行良好! – Sinan

1

因此,当您在浏览器中运行脚本时,该脚本正在被_www用户执行,这是一个隐藏用户(可能是由apache,您的web服务器使用)。

然后,当您自己运行脚本时,它将由您的用户帐户运行,该用户帐户不拥有日志所在的目录,因此您无法写入该目录。您可以通过以管理员身份运行脚本来解决此问题(sudo php script.php)。


或者,您可能会对用户和组做些事情,以使其同时适用于您的用户帐户和_www帐户。也许你可以将自己和_www用户添加到一个组中,然后将该组设置为该目录的所有者。我对这部分并不太自信,但如果你想要一个比每次使用sudo更强大的解决方案,它都会让你朝着正确的方向发展。

+0

谢谢!我想避免每次都以管理员身份运行它,所以我最终将脚本的位置更改为可访问的目录。 – Sinan

相关问题