Apache -路径组件的权限缺失



没有我的网站图像加载,虽然路径是正确的。在我的Apache日志中,我有很多:

(13)Permission denied: [client 87.231.108.18:57108] AH00035: access to 
my/file/path/some-photo.jpg denied because search permissions are missing 
on a component of the path

Within httpd.conf file:

User apache
Group apache

一直到我的网站目录,文件夹归apache:apache所有,chmod一直设置为774

SELinux boolean httpd_can_network_connect已经是On

我使用.htaccess文件将我的域名重定向到适当的目录。我怀疑这可能是导致问题的原因,但是……这只不过是一种直觉。

我确实需要帮助,任何建议都是最受欢迎的。很多谢谢!

编辑.htaccess文件的内容:

RewriteEngine On
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} www.domain.com
RewriteRule (.*) /domain/$1 [L]

我终于找到了!非常感谢Justin lurman指出。htaccess文件。这让我明白Wordpress没有权利再编辑我的。htaccess文件了。更奇怪的是,因为我100%肯定权限是好的(如果你问我的话,我甚至认为权限太宽松了)。

所以我研究了SElinux,因为我知道它有时会捉弄我,我是对的。发出以下命令解决了这个问题:

chcon -R --type=httpd_sys_rw_content_t wp-content/

我希望这对其他人有帮助:)

在我的例子中,包含文件夹没有+x权限,将其更改为755就可以了。

对我来说有效的是,路径中的所有组件目录都需要所有

的执行权限

所以如果网站的路径是/home/user1/public_html/doroot

chmod +x /home/user1/
chmod +x /home/user1/public_html/
chmod +x /home/user1/public_html/docroot/

或者运行

find . -type d -exec chmod 755 {} ;
find . -type f -exec chmod 644 {} ;

setsebool -P httpd_enable_homedirs 1
chcon -R -t httpd_sys_content_t /home/user/public_html

在macOS上可能是由用户组权限问题引起的。

转到httpd.conf文件(如果Apache是由Homebrew安装的,则位于/usr/local/etc/httpd)。找到<IfModule unixd_module>并将User前面的值更改为您的计算机用户名(您登录的)。重新启动Apache .

如果在Apache中使用PHP-FMP,也需要这样做。查找php-fpm.conf文件(通常位于/usr/local/etc/php/7.x/)并查找池定义:

取消注释include=/usr/local/etc/php/7.x/php-fpm.d/*.conf,如果注释并保存文件。现在打开最近未注释的文件,找到user =,并将user的值更改为您的计算机用户名。

只需一个命令:

sudo setsebool -P httpd_enable_homedirs 1

最新更新