Если приложение на сервере не работает так, как от него ожидается, то начать следует с просмотра логов ошибок.
tail /var/log/httpd/error_log # ИЛИ tail /var/log/apache2/error.log
Если у вас несколько виртуальных хостов, то вполне возможно, что вы указали собственный файл лога для каждого хоста. Поэтому вышеприведённую команду подправьте под ваши условия.
Если там вы видите ошибку
Symbolic link not allowed or link target not accessible
Это означает, что сервер пытается обратиться к файлу по символьной ссылке, но:
- либо возможность следовать по символьным ссылкам отключена в настройках веб-сервера
- либо сервер не имеет прав доступа к каталогу, в который ведёт символьная ссылка.
Начнём с включения этой опции. Общие настройки веб-сервера Apache размещены в файле
vim /etc/httpd/conf/httpd.conf # ИЛИ vim /etc/apache2/apache2.conf
Но обратите внимание, что если у вас несколько виртуальных хостов, то у каждого хоста может быть свой собственный файл .conf и редактировать нужно именно его.
Прежде всего, интересует Options FollowSymLinks. Если она установлена так:
<Directory "/srv/http"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
Значит сервер может переходит по символьным ссылкам.
Если проблема с CGI скриптами, то обратитесь к секции:
<Directory "/srv/http/cgi-bin"> AllowOverride None Options None Require all granted </Directory>
В вышеприведённом примере, серверу запрещено следовать по символьным ссылкам для директории cgi-bin. Чтобы это исправить, нужно отредактировать этот участок следующим образом:
<Directory "/srv/http/cgi-bin"> AllowOverride None Options FollowSymLinks Require all granted </Directory>
Чтобы внесённые изменения вступили в силу, нужно перезапустить веб-сервер.
Если после перезапуска изменение этой директивы не помогло, то причин может быть две:
- вы отредактировали не тот файл (либо импортируется другой .conf хоста, который перезаписывает настройки)
- Apache не имеет разрешения на доступ к директории, файлам, на которые указывают символьные ссылки.
Во втором случае нужно присвоить соответствующие права требуемой директории или поменять её владельца:
chmod 755 директория,-куда-ведёт-символьная-ссылка
Связанные статьи:
- Решение пробем с ошибкой .htaccess: Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration (100%)
- Ошибка «No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /run/php/php8.1-fpm.sock (*:80) failed» (РЕШЕНО) (100%)
- Как в PHP 8 показать все ошибки (95.7%)
- Защита контента веб-сайта (90.9%)
- Бесплатное получение и настройка автоматического продления действительных сертификатов SSL (90.9%)
- Ошибка «Failed to set session cookie. Maybe you are using HTTP instead of HTTPS to access phpMyAdmin» (РЕШЕНО) (RANDOM - 59.2%)
большое спасибо, за разжеваный ответ))