У меня есть сервер Nextcloud, на котором работает NextCloudPi (NCP) на Raspberry Pi 3. NCP - это стек Raspbian / Apache2 / PHP / MariaDB, так сказать. Он надежно работает годами. Но недавно умер мой Nextcloud! Все, что он делает при загрузке страницы, - это отчет:
Internal Server Error
The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.
В самом деле? Подробности можно найти в журнале сервера? Не мной. Я все перепробовал и везде искал. Вот мой подход кувалды:
Сначала я исключаю все прокси, обращаясь к ним локально по IP. Я могу и могу получить доступ к своему серверу через глобальное доменное имя, но оно передано через локальный обратный прокси-сервер, и поэтому я могу и могу получить к нему доступ по внутреннему имени .lan или его LAN IP без проблем, по желанию, регулярно. Никаких драм. Работаю много лет.
Что вызвало это? С небольшой потерей, но подозреваю, что я сделал обновление с помощью ncp-update. Не уверен на 100%. Но это кандидат. Причина постепенно исчезает, хотя, что бы ни случилось, я смогу ее диагностировать. Итак, вот и:
Я нахожусь на терминале bash на сервере nextcloud и делаю следующее:
touch /tmp/foobar
sudo find / -regextype posix-extended -regex "/(sys|srv|proc|dev)" -prune -o -newer /tmp/foobar
Увы, все это дает:
/run/sudo/ts/cirrus
/dev
/sys
/var/log/apache2/other_vhosts_access.log
/var/log/apache2/nc-access.log
/var/log/auth.log
/proc
/srv
Короче говоря, ТОЛЬКО журналы, которые я вижу измененными, - это журналы доступа и журналы sudo auth.
Как это может быть? Как может apache выдает внутреннюю ошибку сервера и не оставляет журнала ошибок?
Что дает? Что я могу извлечь из этого?
Это Apache или подсистема PHP? Что я могу сделать, чтобы получить более глубокую диагностику, учитывая «Более подробную информацию можно найти в журнале сервера». явно не соответствует действительности.
Также следует отметить, что ErrorLogs не отключены, и я использую их время от времени, но для уверенности:
$ grep -R ErrorLog /etc/apache2/
/etc/apache2/apache2.conf:# ErrorLog: The location of the error log file.
/etc/apache2/apache2.conf:# If you do not specify an ErrorLog directive within a <VirtualHost>
/etc/apache2/apache2.conf:ErrorLog ${APACHE_LOG_DIR}/error.log
/etc/apache2/sites-enabled/nextcloud.conf: ErrorLog /var/log/apache2/nc-error.log
/etc/apache2/sites-available/default-ssl.conf: ErrorLog ${APACHE_LOG_DIR}/error.log
/etc/apache2/sites-available/nextcloud.conf: ErrorLog /var/log/apache2/nc-error.log