최근 업데이트로 인해 16.04 서버가 더 이상 포트 80에서 수신 대기하지 않습니다.

최근 업데이트로 인해 16.04 서버가 더 이상 포트 80에서 수신 대기하지 않습니다.

최근 업데이트로 인해 내 LAN에 있는 내 서버가 포트 80에서 액세스할 수 없게 되었습니다. 22에서 SSH로 연결할 수 있었고 nmap은 이 서버가 22, 443, 3306 및 10000에서 수신 대기 중임을 밝혔습니다. 그러나 80은 아닙니다. 다양한 .conf 파일에서 답변을 찾지 못했습니다.

마침내 몇 시간 후에 이 게시물의 첫 번째 답변은 다음과 같습니다.Florian Diesch가 문제를 찾아내는 첫 번째 단계를 공개했습니다.

해당 시스템에 다음과 같이 다른 서버를 배치하라는 그의 제안: sudo python -m SimpleHTTPServer 80은 실제로 apache2에 문제가 없고 단지 conf 파일 중 하나가 손상되었다는 사실을 보여주었습니다.

포트 80을 전혀 사용할 수 없게 되기 전에는 systemctl status apache2.service가 전혀 작동하도록 할 수 없었습니다. 그러나 위의 Python 코드 조각을 사용하여 포트 80에 대한 청취를 진행한 후 다음과 같은 결과를 얻었습니다.

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와 "여기에서는 주문이 허용되지 않습니다"였습니다.

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 파일을 저장한 다음 다시 테스트했습니다. 매번 오류가 다시 표시되고 문제가 있는 줄 번호가 1씩 증가합니다. 첫 번째 구성 블록이 주석 처리되기 전에 해당 다섯 줄을 모두 갖고 있으면 모든 것이 다시 작동했습니다. 우리 둘 다 파일을 편집한 적이 없었기 때문에 나와 아들 모두 오류가 어떻게 나타나는지 알 수 없었습니다.

그러나 마침내 그날 일찍 서버에 SSH를 연결하고 업데이트/업그레이드 주기를 수행했다는 사실이 기억납니다. 이것이 phpmyadmin.conf 파일에 들어가는 다섯 줄의 유일한 소스입니다.

나는 그것이 문제의 원인이라는 것을 알고 완전히 어리둥절했음을 인정해야 합니다. 실제로 포트 80에 대해 apache2 서비스가 완전히 중단되었습니다. 마침내 apache2.conf 파일 자체가 로드될 때 다른 파일을 포함하고 있어 문제 conf 파일이 발생한다는 것을 깨달았습니다.

12시간 동안 문제를 해결했지만 수많은 검색을 통해 다양한 구멍을 따라 수많은 토끼를 추적한 끝에 마침내 문제가 해결되었습니다.

다른 누군가가 이러한 폭로로부터 혜택을 받을 수 있기를 바랍니다.

답변1

그 곳에서는 명령, 알로에, 거부가 당연히 허용되지 않습니다. 일부 모듈에서만 사용할 수 있습니다(https://httpd.apache.org/docs/2.2/howto/access.html)

업데이트하기 전에 해당 버전의 Apache가 오류를 무시하거나 경고했을 수 있습니다. 새 버전은 실패를 선택합니다. 이와 같은 문제가 발생하면 항상 apache configtest 프로그램을 실행하고, 오류가 명확하지 않으면 Apache 설명서에서 지시어를 찾아보세요.

관련 정보