如何给/ 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]中的权限被拒绝
答案 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
现在我在做生意。
如果有人能解释发生的事情会很棒。