데비안에서 Apache 디버깅, 오류 로그는 어디에 있습니까? 여러 가상 호스트가

Apache, mod_wsgi 및 여러 가상 호스트가 이미 실행중인 데비안 서버를 사용하고 있습니다.

포럼 앱 (Django의 OSQA)을 설치 하고 OSQA 지침ServerName따라 새 하위 도메인으로 지정된 Apache 구성 파일을 작성했습니다 . 또한 앱에 대한 .wsgi 파일을 만들어 지적 WSGIScriptAlias했습니다. 그런 다음 Apache를 다시 시작했습니다.

그러나 새 하위 도메인으로 이동하면 404 오류 메시지가 나타납니다.

위의 단계가 누락 되었습니까? 아니면 단순히 아파치 sites-available에게 새로운 서브 도메인을 알려주기 에 충분한 새로운 아파치 설정 파일을 생성하는 것 입니까?

다른 문제가 발생하면 어떻게 디버깅 할 수 있습니까? ErrorLogCustomLog설정 파일에 지정된 모두 비어 있습니다. apache2.conf, 아파치 전체 구성이라고 생각 ErrorLog /var/log/apache2/error.log하지만을 지정 하지만 이것은 또 다른 빈 파일입니다.



답변

Apache에 대한 많은 온라인 리소스가 있습니다. 답변을 찾기 위해 Google을 검색하려고 했습니까?

몇 달 전에 Google을 검색했을 때 다음 정보를 찾았습니다.

ErrorLog     /var/log/apache2/error.log
AccessLog    /var/log/apache2/access.log

start/stop   /etc/init.d/apache2 (start|stop|restart|reload|force-reload|start-htcacheclean|stop-htcacheclean)

답변

첫 번째 게시물은 데비안의 모든 경우에 해당되지 않습니다. apt를 통하거나 소스에서 컴파일하든 패키지를 설치 한 방법에 따라 다릅니다.

Apache가 로그 생성 지시에 따라 로그 위치를 확인하려면 다음 명령을 실행하십시오.

/usr/sbin/apachectl -V

일부 리눅스 배포판은 / usr / sbin / apacheVERctl이라는 심볼릭 링크를 생성합니다. 데비안은 실제 파일을 / usr / sbin /에 저장하므로 위의 명령을 시도하면 다음과 같은 내용이 표시됩니다.

/usr/sbin/apachectl -V
Server version: Apache/2.2.3

<removed for brevity>

 -D DEFAULT_PIDLOG="run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log" <<=== default log files stored in "logs/" which is relative to /usr/local/apache<VER>/logs on this server==>
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

보시다시피 내 로그는 / usr / local / apache2 / error_log에 있습니다. 서버가 컴파일 된 방식에 따라 –prefix 플래그가 다른 곳을 가리킬 수 있습니다. 가장 좋은 방법은 해당 명령을 실행하고 find를 사용하여 error_log를 찾는 것입니다.

find / -iname name_of_error_log_file_that_apachectl_spit_out

바이너리가있는 위치를 찾기 위해 find / -iname apachectl 또는 다양한 순열 을 수행해야 할 수도 있습니다 . 때로는 / usr / sbin / httpd라고합니다. find 명령을 알고 있으면 알아낼 것입니다.

Google 검색에서 항상 올바른 답변을 제공하지는 않으므로 서비스 관련 설명서를 반드시 읽어보십시오.

또한 문서를 검토 한 후 전체 문서를 검토 한 경우 / nimda 경로에 대한 로깅을 이미 구성 했으므로 nimda에 대한 로그는 여기로 이동하십시오.

    <cut above config lines>

        CustomLog /var/log/httpd/OSQA/access_log common
        ErrorLog /var/log/httpd/OSQA/error_log
    </VirtualHost>

SSL의 경우 로그가 동일한 위치에있는 것으로 보입니다.

(선택 사항) SSLCertificateFile /path/to/ssl-certificate/server.crt에서 https ServerAdmin forum@example.com DocumentRoot / path / to / osqa-site ServerName example.com SSLEngine에서 admin 인터페이스를 실행하십시오. SSLCertificateKeyFile / path / to / ssl- certificate / server.key WSGIScriptAlias ​​/ /path/to/osqa-site/osqa.wsgi CustomLog / var / log / httpd / OSQA / access_log 공통 ErrorLog / var / log / httpd / OSQA / error_log DirectoryIndex index.html

확인해주십시오

/usr/local/apache<VER>/logs

서버에서

/usr/local/httpd/*, /var/log/httpd or /var/log/apache<ver>.

Linux 배포판마다 로그를 저장하는 위치가 다릅니다.

로그가 항상 / var / log / apache / * 또는 / var / log / httpd에있는 것은 아닙니다.

때로는 / var / log / httpd /에 있고 소스에서 Apache를 컴파일하고 Apache 변수 DEFAULT_ERRORLOG가 다르게 설정되어 오류 로그가 한 곳에 있고 access_log가 다른 곳에 있습니다. 때로는 파일 이름이 다를 수도 있습니다. 때때로 사람들은 도메인이 많기 때문에 다른 호스트에 로그를 저장하도록 다른 호스트를 구성하고 상자에있는 다른 모든 고객이 중요한 정보를 노출 할 수 있기 때문에 다른 도메인의 로그를 보지 않기를 원합니다. 첫 번째 게시물은 모든 경우에 작동하지 않습니다.

Google은 모든 질문에 답변 할 수 없으며 많은 단어로 “Google 질문”을하는 것이 항상 최선의 대답은 아닙니다.

Redhat 분산 RPM에서 설치할 때 로그를 다른 위치에 저장하는 Redhat을 사용할 수 있습니다.