【问题标题】:file ... failed to open stream: Permission denied文件...无法打开流:权限被拒绝
【发布时间】:2013-01-22 10:34:48
【问题描述】:

我正在为客户处理一个站点,我已经在我的服务器上克隆了整个站点,它似乎可以工作。 现在我已经将网站复制到他的服务器并尝试付款(使用 paypal pro)我得到一个权限错误:

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

我已尝试将所有权限更改为 777,但此错误不断出现。

我环顾四周,在谷歌和这里我看到它可能与 php 设置有关(safemodeopen_basedir)但是当我检查 phpinfo() 时,它似乎 safemod 被禁用并且 open_basedir是空的。

有人有想法吗?

【问题讨论】:

  • 您制作整个副本的目录的权限如何?
  • Everything 设置为 777。files 目录所有与任何事物相关的内容。
  • 如果你使用绝对路径而不是相对路径会有什么不同吗?
  • 没有同样的事情已经绝对尝试过

标签: php permissions fopen


【解决方案1】:

更新

在添加任何虚拟主机(甚至单个主机)时,您必须在 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。是空的,据我所知,这并不限制任何文件夹。我不明白你说的指令是什么意思?
  • 我明白了。好的,非常感谢,我会继续阅读和寻找这个问题以及documentRoot
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-10
  • 2010-12-26
  • 2020-08-29
  • 2019-06-30
  • 2011-06-22
  • 2015-12-16
  • 2015-11-15
相关资源
最近更新 更多