#apache #raspberry-pi #apache2 #raspberry-pi4
Вопрос:
Недавно я запустил сервер apache2 на своем raspi, который работает совершенно нормально. Сегодня мне пришлось перезагрузить сервер, даже не изменив файлы конфигурации, и по какой-то причине я получил следующую ошибку:
apache2: Syntax error on line 225 of /etc/apache2/apache2.conf:
Syntax error on line 30 of /etc/apache2/sites-enabled/default-ssl.conf:
Expected </Directory> but saw </VirtualHost>
Что ж, подумал я, давайте отследим это:
/etc/apache2/apache2.conf
[...]
217
218 # Include of directories ignores editors' and dpkg's backup files,
219 # see README.Debian for details.
220
221 # Include generic snippets of statements
222 IncludeOptional conf-enabled/*.conf
223
224 # Include the virtual host configurations:
225 IncludeOptional sites-enabled/*.conf
226
227 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
В строке 255 нет ничего плохого. Фактически включен самим apache.
/etc/apache2/sites-enabled/default-ssl.conf
1 <IfModule mod_ssl.c>
2 <VirtualHost *:443>
3
4 ServerAdmin myemail@gmail.com
5 ServerName mydomain.net
6
7 DocumentRoot /var/www/html
8
9 <Directory /var/www/html>
10 Options Indexes FollowSymLinks
11 AllowOverride None
12 Require all granted
13 </Directory>
14
15 ErrorLog ${APACHE_LOG_DIR}/error.log combined
16 CustomLog ${APACHE_LOG_DIR}/access.log combined
17
18 SSLEngine on
19 SSLCertificateFile /etc/apache2/ssl/mydomain.net.cer
20 SSLCertificateKeyFile /etc/apache2/ssl/mydomain.net.key
21 SSLCertificateChainFile /etc/apache2/ssl/mydomain.net.intermediate.cer
22
23 <Directory /var/www/html/Humboldtplan>
24 AuthType Basic
25 AuthName "Restricted Content"
26 AuthUserFile /etc/apache2/.passwords/humboldt
27 Require valid-user
28 </Directory>
29
30 </VirtualHost>
31 </IfModule>
Теперь я действительно не могу понять, в чем здесь проблема. Я ломал голову над тем, что может быть не так, но мне все кажется правильным. Все теги правильно закрыты, они там, </VirtualHost>
где и должны быть. Кроме того, та же конфигурация работала и раньше, в чем проблема так внезапно?
Я подумал, что это может быть не связанная с этим проблема, такая как память, поэтому я сделал все основные вещи. Обновил все пакеты, перезагрузил свой raspi, все еще не работал, выключил его и отключил, чтобы устранить возможные проблемы с памятью, все еще не работал.
Что здесь не так?
Комментарии:
1. Вы уверены, что строка 26 правильна в файле default-ssl.conf
2. это так, просто изменил имя файла на «ограничено» в этом посте (исходное имя файла содержит только алфавитные символы, и файл действительно существует.)
3. Отредактировал его обратно в то, чем он был первоначально. Я хотел изменить имена по соображениям конфиденциальности, но, думаю, это немного преувеличение.
4. Закомментируйте строки с 23 по 28 с символом # перед каждой строкой. Сохраните файл и перезапустите apache, это покажет, вызывает ли эта строка проблему.
5. Спасибо за этот совет, это именно то, что я сделал 10 минут назад, и я нашел проблему (но другим способом) :). Ответ ниже.
Ответ №1:
Что ж, ответ-разочаровывающая ошибка «пробелов». Распечатка экранированных символов с cat -An [...]
помощью дала мне следующее:
7 ^I^IDocumentRoot /var/www/html$
8 $
9 ^I^I<Directory /var/www/html>$
10 M-bM-^@M-^K^I^I^IOptions Indexes FollowSymLinks$
11 M-bM-^@M-^K^I^I^IAllowOverride None$
12 ^I^I^IRequire all granted$
13 M-bM-^@M-^K^I^I</Directory>$
14 $
15 ^I^I#ErrorLog ${APACHE_LOG_DIR}/error.log$
16 ^I^I#CustomLog ${APACHE_LOG_DIR}/access.log combined$
17 $
Я понятия не имею, что именно M-bM-^@M-^K
означает (кроме некоторой формы пробелов UTF-8), и как они на самом деле оказались в этом файле (тем более, что я, как я уже сказал, не редактировал их, пока сервер работал). Но удаление их, похоже, решило мою проблему.
Это было особенно удивительно, так как они не останавливали мой курсор от перехода с вкладки на вкладку и никоим образом не форматировали документ. Я заметил это только при попытке прокомментировать конкретные строки, поскольку они не были помечены синим цветом (как «прокомментированные») после того, как я поставил перед ними хэштег.