Apache не может найти каталоги в символической '/ var'

У меня есть следующие каталоги, где / data - точка монтирования для раздела данных, а / var - символическая ссылка:

lrwxrwxrwx 1 root root 9 Nov 20 13:25 /var -> /data/var
lrwxrwxrwx 1 root root 9 Nov 20 23:41 /var/lock -> /run/lock
drwxr-xr-x 5 root root 4096 Nov 20 13:42 /data
drwxr-xr-x 12 root root 4096 Nov 21 01:44 /data/var
drwxr-xr-x 6 root root 4096 Dec 18 06:25 /data/var/log
drwxr-x--- 3 root adm 4096 Dec  8 06:25 /data/var/log/apache2/

У Apache, похоже, есть проблемы с этим подходом:

mktemp: failed to create directory via template '/var/lock/apache2.XXXXXXXXXX': No such file or directory

Я решил это, изменив / etc / apache2 / envvars так, чтобы он ссылался на / run / lock напрямую, но следующая ошибка не удалось решить путем изменения APACHE_LOG_DIR в envvars :

(2)No such file or directory: AH02291: Cannot access directory '/var/log/apache2/' for main error log
(2)No such file or directory: AH02291: Cannot access directory '/var/log/apache2/' for error log of vhost defined at /etc/apache2/sites-enabled/site.conf:2
AH00014: Configuration check failed

Как я могу заставить эту работу?

1
задан 18 December 2018 в 22:28
3 ответа

Решение состоит в том, чтобы привязать mount, а не символическую ссылку, как рекомендуется здесь , с аргументацией против символической ссылки на / var , указанной в пункте № 7:

стандарт иерархии диктует, что это должен быть каталог

В моем случае переключение с символической ссылки на монтирование привязки было выполнено с помощью:

sudo -s
rm /var && mkdir -p /var && mount -o bind /data/var /var
cat >> /etc/fstab << END
/data/var /var none bind 0 0
END

, и теперь apache запускается без жалоб.

1
ответ дан 3 December 2019 в 18:25

Не используйте символическую ссылку / var, поскольку он используется не только для Apache. если вы хотите просто переместить журналы apache и файлы сайта в другой раздел / папку / диск, просто измените конфигурацию в apache для этого. Это очень гибкий веб-сервер, который позволяет размещать файлы где угодно, но то, что вы пытаетесь сделать, - это перенаправить основную папку ОС, когда вы должны обновлять конфигурации apache для хранения вещей, где вы хотите, чтобы они находились. .

2
ответ дан 3 December 2019 в 18:25

Некоторые дистрибутивы на основе Linux работают с включенным SELinux и настроены для нормального использования. Вы находитесь за пределами этих параметров, поэтому вам может потребоваться настроить SELinux.

0
ответ дан 3 December 2019 в 18:25

Теги

Похожие вопросы