在/ html之外提供php / apache读取访问权限

时间:2014-09-16 21:19:56

标签: php apache centos

如何给/ var / www / html之外的目录提供php和apache读取权限?

我试图将以下内容包含在php文件中:

require '/var/www/config/settings.php';

以下是配置

的持久性
drwxr-xr-x.  2 apache    root 4096 Sep 16 14:02 config

并在settings.php上

-rwxr-xr-x. 1 apache root 306 Sep 16 14:02 settings.php

PHP抛出以下错误: PHP警告:require(/var/www/config/settings.php):无法打开流:[filename here]中的权限被拒绝

2 个答案:

答案 0 :(得分:0)

sudoing chown不起作用,这已在你的apache的文档根目录中设置

您需要创建2个条目。 1就是这样:

<VirtualHost *:80>
DocumentRoot  /var/www/html
ServerName www.yourdomain.com

# Other directives here

</VirtualHost> 

对于此/var/www/config/settings.php,您需要创建此条目

<VirtualHost *:80>
DocumentRoot  /var/www/config
ServerName www.yourdomain.com

# Other directives here

</VirtualHost> 

这是Web服务器的工作方式,以便访问另一个文档根目录或/ 当你在网址中调用它时,它会查看 DocumentRoot

确保在执行此操作后重新启动apache以使更改生效。

答案 1 :(得分:0)

在与之斗争并尝试这里的建议后,我得到了它的工作,但不明白为什么......

我做了什么来解决问题...

我进入config目录,然后用vim创建了一个新文件并将其命名为test.php

然后:chown apache test.php

将包含它的php脚本更改为test.php而不是settings.php

工作了!!为什么?这两个文件具有完全相同的权限和所有权。我把它改回了settings.php,但又失败了。

然后我将settings.php的内容复制到test.php,删除settings.php并重命名为test.php-&gt; settings.php

现在我在做生意。

如果有人能解释发生的事情会很棒。