Недавнее обновление сделало мой сервер в моей локальной сети недоступным на порту 80. Мне удалось подключиться к нему по ssh на порту 22, а nmap показал, что он прослушивает порты 22, 443, 3306 и 10000. Однако НЕ 80. Долгое чтение различных файлов .conf не дало результата.
Наконец, после многих часов, первый ответ на этот пост:Флориан Диш раскрыл первый шаг к выявлению проблемы.
Его предложение разместить на этой машине еще один сервер, например, так: sudo python -m SimpleHTTPServer 80, показало, что на самом деле проблемы с apache2 не было, просто один из файлов conf был поврежден.
До того, как порт 80 стал доступен, я вообще не мог заставить работать systemctl status apache2.service, однако после прослушивания порта 80 с помощью приведенного выше фрагмента кода Python я получил следующий результат:
systemctl status apache2.service
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: failed (Result: exit-code) since Tue 2017-06-13 20:40:43 EDT;
39s ago
Docs: man:systemd-sysv-generator(8)
Process: 4411 ExecStart=/etc/init.d/apache2 start (code=exited,
status=1/FAILURE)
Jun 13 20:40:43 s2 apache2[4411]: * The apache2 configtest failed.
Jun 13 20:40:43 s2 apache2[4411]: Output of config test was:
Jun 13 20:40:43 s2 apache2[4411]: AH00526: Syntax error on line 5 of
/etc/apache2/conf-enabled/phpmyadmin.conf:
Jun 13 20:40:43 s2 apache2[4411]: order not allowed here
Jun 13 20:40:43 s2 apache2[4411]: Action 'configtest' failed.
Jun 13 20:40:43 s2 apache2[4411]: The Apache error log may have more
information.
.......
Далее следовало еще несколько строк, но наиболее ярким моментом был phpmyadmin.conf и фраза «order not allowed here» (заказ здесь не разрешен).
Я отредактировал phpmyadmin.conf и нашел следующее:
Alias /phpmyadmin /usr/share/phpmyadmin
Order Deny, Allow
Deny from all
Allow from 127.0.0.1
Allow from 192.1.0
Allow from 192.1.1
<Directory /usr/share/phpmyadmin>
various configs .....
</Directory>
Я продолжил комментировать с помощью # строку с "Order", сохранил файл conf и снова протестировал. Каждый раз ошибка появлялась снова, а номер проблемной строки увеличивался на единицу. Когда я закомментировал каждую из этих пяти строк до первого блока конфигурации, все снова заработало. Ни мой сын, ни я не могли понять, как появилась ошибка, потому что никто из нас не редактировал файл.
Однако я наконец вспомнил, что ранее в тот день я подключился к серверу по ssh и выполнил цикл обновления/апгрейда. Это единственный возможный источник попадания этих пяти строк в файл phpmyadmin.conf.
Признаюсь, я был совершенно озадачен, узнав, что это было источником проблемы. На самом деле это было полное уничтожение службы apache2 для порта 80. Я наконец понял, что сам файл apache2.conf включал другие файлы по мере загрузки, тем самым создавая проблемный файл conf.
12 часов устранения неполадок, но в конце концов все заработало после того, как я проследил за множеством кроликов по разным норкам в ходе МНОГОЧИСЛЕННЫХ поисков.
Надеюсь, эти откровения принесут пользу кому-то еще.
решение1
Order, alloe и deny, очевидно, не допускаются в этом месте. Они могут использоваться только с некоторыми модулями (https://httpd.apache.org/docs/2.2/howto/access.html)
До вашего обновления текущая версия apache могла игнорировать или предупреждать об ошибке. Новая версия решила не срабатывать. Если у вас возникли такие проблемы, всегда запускайте программу apache configtest, и если ошибка неочевидна, посмотрите директивы в руководстве Apache.