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

Внутри httpd.conf файла:

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]

Ответ 1

Я наконец нашел его! Спасибо тон Justin lurman за то, что он выложил файл .htaccess. Это заставило меня понять, что Wordpress не имеет права редактировать мой файл .htaccess. Это было еще более странно, потому что я был на 100% уверен, что разрешения были хорошими (даже слишком разрешительными, если вы спросите меня).

Итак, я заглянул в SElinux, так как знаю, что время от времени он может играть на меня, и я был прав. Выпустив следующую команду, он решил:

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

Я надеюсь, что это поможет кому-то еще:)

Ответ 2

В моем случае содержащая папка не имела разрешения + x, изменив ее на 755, сделал трюк.

Ответ 3

Или вы можете запустить

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

В этих папках...

Ответ 4

setsebool -P httpd_enable_homedirs 1

chcon -R -t httpd_sys_content_t/home/user/public_html

Ответ 5

Что сработало для меня, так это то, что для всех каталогов компонентов в пути необходимы разрешения на выполнение для всех

поэтому, если путь к сайту -/home/user1/public_html/docroot

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

Ответ 6

В macOS это может быть вызвано проблемой с правами доступа группы пользователей.

Перейдите в файл httpd.conf (расположенный по адресу /usr/local/etc/httpd если Apache установлен Homebrew). Найдите <IfModule unixd_module> и измените значение перед User на имя User вашего компьютера (с которым вы <IfModule unixd_module>). Перезапустите Apache.

Это необходимо сделать и для PHP-FMP, если вы используете это с Apache. Найдите файл php-fpm.conf (обычно находится по адресу /usr/local/etc/php/7.x/ и найдите определения пула:

раскомментируйте include=/usr/local/etc/php/7.x/php-fpm.d/*.conf если прокомментируйте и сохраните файл. Теперь откройте недавно откомментированный файл и найдите user = и измените значение user на имя вашего компьютера. Теперь перезапустите сервис PHP.