So beheben Sie häufige Apache-Probleme
Apache ist ein stabiler, weit verbreiteter Webserver. Die meisten Probleme kommen aus der Konfiguration, aus Portkonflikten oder aus dem Zusammenspiel mit anderen Diensten auf demselben Host.
Die Apache-Logs prüfen
Beginnen Sie mit dem Error-Log. Übliche Speicherorte:
Die üblichen Speicherorte des Apache-Error-Logs zur schnellen Orientierung:
cPanel
/usr/local/apache/logs/error_log
Plesk
/var/log/httpd/error_log
CentOS/Fedora
/var/log/httpd/error_log
Debian/Ubuntu
/var/log/apache2/error_log
tail -f /var/log/httpd/error_log
Häufige Apache-Probleme
Portkonflikte
Prüfen Sie, dass nichts anderes auf den Ports 80 und 443 lauscht:
[root@server ~]# netstat -plan | grep :80
tcp 0 0 203.0.113.10:80 0.0.0.0:* LISTEN 18950/nginx
tcp 0 0 203.0.113.10:80 203.0.113.10:52630 TIME_WAIT -
tcp 0 0 203.0.113.10:51704 203.0.113.10:80 TIME_WAIT -
tcp 0 0 203.0.113.10:80 203.0.113.10:52626 TIME_WAIT -
tcp 0 0 203.0.113.10:80 203.0.113.10:51712 TIME_WAIT -
tcp 0 0 203.0.113.10:80 203.0.113.10:52622 TIME_WAIT -
Wie Sie sehen, belegt Nginx bereits Port 80 auf der öffentlichen Schnittstelle, und Apache startet nicht. Beenden Sie Nginx und starten Sie Apache erneut.
Andere hängende Apache-Instanzen, die die Ports halten.
Sie können Fehler ähnlich einem Portkonflikt sehen, deren Ursache bereits gestartete, nicht beendete Apache-Prozesse sind, die die Ports halten. Mit den folgenden Befehlen prüfen Sie, ob solche Prozesse auf dem Server existieren.
[root@server ~]# ps aux | grep "httpd\|apache" | grep -v grep
root 18663 0.0 0.6 394336 32168 ? SNs 15:25 0:00 /usr/sbin/httpd
apache 18666 0.0 0.3 252844 17436 ? SN 15:25 0:00 /usr/sbin/httpd
apache 18667 0.0 0.5 395040 25532 ? SN 15:25 0:00 /usr/sbin/httpd
apache 18668 0.0 0.5 395440 25592 ? SN 15:25 0:00 /usr/sbin/httpd
apache 18670 0.0 0.5 395032 25716 ? SN 15:25 0:00 /usr/sbin/httpd
apache 18671 0.0 0.5 394984 25676 ? SN 15:25 0:00 /usr/sbin/httpd
apache 18672 0.0 0.5 394944 25640 ? SN 15:25 0:00 /usr/sbin/httpd
apache 18673 0.0 0.5 395000 25468 ? SN 15:25 0:00 /usr/sbin/httpd
apache 18674 0.0 0.4 394912 25384 ? SN 15:25 0:00 /usr/sbin/httpd
apache 18675 0.0 0.5 395076 25780 ? SN 15:25 0:00 /usr/sbin/httpd
apache 18676 0.0 0.5 394940 25636 ? SN 15:25 0:00 /usr/sbin/httpd
apache 18677 0.0 0.4 394892 25280 ? SN 15:25 0:00 /usr/sbin/httpd
Beenden Sie alle gefundenen Apache-Prozesse mit dem Befehl kill wie unten gezeigt.
[root@server ~]# kill -9 18666 18663 18667 18668 18670 18671 18672 18673 18674 18675 18676 18677
Syntaxfehler in der httpd.conf
Ein Syntaxfehler in der httpd.conf verhindert den Start von Apache. Die Fehlermeldung nennt die Zeile:
Syntax error on line 218 of /etc/httpd/conf/httpd.conf
Prüfen Sie die Syntax vor dem Neustart:
[root@server ~]# apachectl -t
Syntax OK
[root@server ~]# httpd -t
Syntax OK
Unter Debian und Ubuntu führen Sie die Syntaxprüfung so durch.
apache2ctl -t
Similarly you cause the command with -S switch to list all virtual hosts with essential information like configured ports, defined line number in configuration etc.
Entsprechend zeigt der Befehl mit dem Schalter -S alle Virtual Hosts mit den wesentlichen Angaben, etwa den konfigurierten Ports und der Zeile ihrer Definition in der Konfiguration.
[root@server ~]# httpd -S
VirtualHost configuration:
127.0.0.1:7080 is a NameVirtualHost
Apache startet nicht, wenn die .htaccess-Datei nicht korrekt angelegt ist.
Damit .htaccess-Dateien berücksichtigt werden, müssen die Virtual Hosts von Apache die passenden Definitionen enthalten. Fehlen diese Direktiven, wird die .htaccess-Datei nicht berücksichtigt und ihre Definitionen werden nicht geladen. Unten eine Beispieldefinition.
</VirtualHost>
<Directory /home/eurovps/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Danach wird eine in /home/eurovps/public_html/ angelegte .htaccess-Datei von Apache berücksichtigt. Die Datei braucht die Rechte 644 und den Domain-Benutzer als Eigentümer:
Beispiel für das Anlegen einer .htaccess-Datei und ihrer Rechte.
vi /home/eurovps/public_html/.htaccess
#++++Sample_contents++++#
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
#++++Sample_contents++++#
Esc + :wq
chmod 644 /home/eurovps/public_html/.htaccess
chown eurovps.eurovps /home/eurovps/public_html/.htaccess
Hinweise: Aktivieren Sie zur Fehlersuche ausführliche Logs (LogLevel debug). Prüfen Sie syslog und dmesg auf Hinweise zu beendeten Prozessen, und prüfen Sie den freien Arbeitsspeicher und den freien Festplattenplatz auf dem Server.
Aus den FAQ von EuroVPS.
Mehr in «Anleitungen»Ihr nächster Infrastrukturpartner
Haben Sie noch
eine Frage?
Sagen Sie uns, was Sie erreichen möchten. Ein Ingenieur liest es und antwortet.
+357 222 32280
Beginnen wir mit Ihrer Umgebung.
Ein wenig Kontext hilft uns, das richtige Gespräch zu beginnen.
