Недавнее обновление привело к тому, что мой сервер 16.04 больше не прослушивает порт 80.

Недавнее обновление привело к тому, что мой сервер 16.04 больше не прослушивает порт 80.

Недавнее обновление сделало мой сервер в моей локальной сети недоступным на порту 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.

Связанный контент