文件...无法打开流:权限被拒绝。

4

我正在为客户复制一个网站,已经在我的服务器上克隆了整个网站,看起来运行正常。 现在我将网站复制到他的服务器上并尝试进行付款(使用PayPal Pro),但出现了权限错误:

`Warning: error_log(../PayPal.log) [function.error-log]: failed to open stream: Permission denied`

我尝试将所有权限更改为777,但是这个错误仍然出现。
我已经搜索了谷歌和这里的一些内容,发现这可能与php设置有关(safemodeopen_basedir),但是当我检查phpinfo()时,看起来safemod已禁用并且open_basedir为空。
有人有想法吗?

1
你复制文件的目录权限怎么样? - Leo supports Monica Cellio
一切都设置为777。文件目录和任何相关的所有内容。 - Neta Meta
使用绝对路径和相对路径有区别吗? - Mike
不行,已经尝试了绝对值函数。 - Neta Meta
1个回答

3

更新

在添加任何虚拟主机(或单个主机)时,您必须在Apache中设置一个DocumentRoot。该指令告诉Apache在哪里查找文件并映射网站的根目录。

DocumentRoot "/var/www/vhosts/www.example.com"

但仅有这个指令并不能让客户端读写该目录。您必须为该目录指定配置,例如:

<Directory "/var/www/vhosts/www.example.com">
      Options Indexes FollowSymLinks
      AllowOverride All
      Order allow,deny
      Allow from all 
</Directory>

如果您的文档根目录(在此示例中)为/var/www/vhosts/www.example.com,则Apache需要对/var/www/vhosts/和/var/www/vhosts/具有写入/执行访问权限,并且需要将其配置在Apache中。
好的。
我认为,如果所有内容都是777,则问题很可能与open_basedir或/和Apache指令相关。
请确保../Paypal.log在Apache和open_basedir中可访问。 还要注意其他在../范围内的内容以及它们如何影响您的安全性。

open_basedir为空,根据我的理解不限制任何文件夹。我不明白你所说的指令是什么意思? - Neta Meta
我明白了。好的,非常感谢,我会继续阅读和研究这个问题以及documentRoot - Neta Meta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接