Zum Inhalt springen
EuroVPSEuroVPS

So beheben Sie häufige Apache-Probleme

EuroVPS FAQ

Aktualisiert am 4 Min. Lesezeit

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
Ein EuroVPS-Ingenieur trägt einen Server-Knoten durch das Rechenzentrum
Ein Gespräch mit den Menschen, die sich um Ihre Infrastruktur kümmern werden.

Beginnen wir mit Ihrer Umgebung.

Ein wenig Kontext hilft uns, das richtige Gespräch zu beginnen.

Wir verwenden Ihre Angaben, um Ihre Anfrage zu beantworten. Datenschutzerklärung