web-dev-qa-db-fra.com

Déboguer Apache sur Debian, où sont les journaux d'erreur?

J'utilise un serveur Debian qui a déjà Apache, Mod_WSGI et un groupe d'hôtes virtuels en cours d'exécution.

J'ai installé mon application forum (OSQA de Django) et suivez les instructions OSQA , j'ai ensuite créé un fichier de configuration Apache spécifié ServerName comme nouveau sous-domaine. J'ai également créé un fichier .WSGI pour l'application et pointé WSGIScriptAlias à cela. J'ai ensuite redémarré Apache.

Cependant, lorsque je vais au nouveau sous-domaine, je reçois un message d'erreur 404.

Est-ce que je manque une étape ci-dessus? Ou consiste simplement à créer un nouveau fichier de configuration Apache dans sites-available assez pour dire Apache à propos d'un nouveau sous-domaine?

S'il y a quelque chose d'autre qui ne va pas, comment puis-je le déboguer? Le ErrorLog et CustomLog spécifié dans le fichier de configuration sont à la fois en blanc. Apache2.conf, que je suppose que la configuration de l'Apache, spécifie ErrorLog /var/log/Apache2/error.log, mais c'est encore un autre fichier vierge.

7
AP257

Le premier post n'est pas correct pour tous les cas sur Debian. Cela dépend de la manière dont vous avez installé l'emballage, que ce soit via APT ou en compilant de la source.

Pour savoir où se trouvent les journaux, en fonction de la façon dont Apache dit qu'il a été instructuré de générer des journaux que vous souhaitez exécuter la commande suivante:

/usr/sbin/apachectl -V

certaines distributions de Linux créent un lien symbolique appelé/usr/sbin/apacheverctl où VER est 2 ou 1.3 ou autre. Debian met le fichier réel dans/usr/sbin/donc essayez la commande ci-dessus et vous verrez quelque chose comme:

/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"

Comme vous pouvez le constater, mes journaux sont dans/usr/local/apache2/error_log. Selon la compilation du serveur, le drapeau --Préfix a été signalé quelque part ailleurs. Votre meilleur pari est d'exécuter cette commande et de rechercher l'erreur_log à l'aide de la recherche.

find / -iname name_of_error_log_file_that_apachectl_spit_out

Vous devrez peut-être avoir à faire une trouvaille/-Name Apachectl ou diverses permutations de ceux-ci pour trouver où le binaire est. Parfois, il s'appelle/usr/sbin/httpd. Assurez-vous simplement de connaître la commande de la recherche et vous le découvrirez.

La recherche de Google ne vous donnera pas toujours les bonnes réponses afin qu'il soit essentiel de lire la documentation pour vos services.

De plus, après avoir examiné le document, si vous avez participé à l'ensemble du document, vous avez déjà configuré la journalisation pour le chemin NIMDA afin que les journaux de NIMDA vont ici:

    <cut above config lines>

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

Et pour SSL, les journaux semblent aller au même endroit:

(Facultatif) Exécutez l'interface d'administrateur sous HTTPS ServerAdmin [email protected] DocumentOrot/chemin/à/OSQA-SERVERNAME SERVERName Exemple.com SSLEGINE SUR SSLCERTICATEFILE /PATH/TO/SSL-CERTIFICATE/SERVERCATINGEKEYFILE/PATH/SSL- Certificat/serveur.Key Wsgiscripels//path/to/osqa-site/osqa.wsgi CustomLog/var/journal/httpd/OSQA/Access_log Common Errorlog/var/log/httpd/OSQA/ERROR_LOG DirectorNdex index.html

Vérifiez s'il vous plaît

/usr/local/Apache<VER>/logs 

sur le serveur peut-être même

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

Différentes distributions Linux ont différents endroits qu'ils stockent des journaux.

Les journaux ne sont pas toujours dans/var/log/apache/* ou/var/journal/httpd

Parfois, ils sont dans/var/log/httpd /, parfois des personnes compilent Apache à partir de la source et la variable Apache par défaut_errorlog est définie différemment, un journal d'erreur est donc au même endroit pendant que Access_log est dans une autre. Parfois, les fichiers ont aussi des noms différents. Parfois, les gens configurent différents Vhosts pour stocker des journaux dans différents endroits, car ils ont un tas de domaines et ils ne veulent pas tous les autres clients de la boîte pour voir les journaux pour d'autres domaines, car cela pourrait exposer des informations critiques. Le premier post ne va pas fonctionner dans tous les cas.

Google ne peut pas répondre à toutes les questions et dire à quelqu'un "Google It" dans tant de mots n'est pas toujours la meilleure réponse.

Une personne peut utiliser Redhat, qui met les journaux dans un endroit différent lorsqu'il est installé à partir d'un RPM distribué à Redhat.

6
Jarrod Wageman

Il y a beaucoup de ressources en ligne pour Apache. Avez-vous essayé de chercher sur Google Trouver les réponses vous-même?

Quand j'ai cherché google il y a quelques mois, j'ai trouvé les informations suivantes:

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) 
6
Tom