Μετάβαση στο περιεχόμενο
EuroVPSEuroVPS
Περιοχή πελατών

Πώς να αντιμετωπίσετε συνηθισμένα προβλήματα του Apache

Συχνές ερωτήσεις EuroVPS

Ενημερώθηκε 4 λεπτά ανάγνωσης

Ο Apache είναι ένας σταθερός, ευρέως διαδεδομένος web server. Τα περισσότερα προβλήματα προέρχονται από τις ρυθμίσεις, από συγκρούσεις θυρών ή από τη συνύπαρξη με άλλες υπηρεσίες στον ίδιο host.

Έλεγχος των logs του Apache

Ξεκινήστε από το error log. Συνηθισμένες θέσεις:

Οι συνηθισμένες θέσεις του error log του Apache είναι οι παρακάτω, για γρήγορη αναφορά.

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

Συνηθισμένα προβλήματα του Apache

Συγκρούσεις θυρών

Ελέγξτε ότι τίποτα άλλο δεν ακούει στις θύρες 80 και 443:

[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   -    

Όπως βλέπετε, ο Nginx χρησιμοποιεί ήδη τη θύρα 80 στη δημόσια διεπαφή και ο Apache δεν θα ξεκινήσει. Τερματίστε τον Nginx και ξεκινήστε ξανά τον Apache.

Άλλες διεργασίες του Apache που έχουν κολλήσει και κρατούν τις θύρες.

Μπορεί να δείτε σφάλματα παρόμοια με αυτά της σύγκρουσης θυρών, με αιτία διεργασίες του Apache που ξεκίνησαν και δεν τερματίστηκαν και κρατούν τις θύρες. Με τις παρακάτω εντολές ελέγχετε αν υπάρχουν τέτοιες διεργασίες στον server.

[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

Τερματίστε όλες τις διεργασίες του Apache που βρήκατε, με την εντολή kill όπως παρακάτω.

[root@server ~]# kill -9   18666  18663   18667  18668 18670 18671 18672 18673 18674 18675 18676 18677 

Συντακτικά λάθη στο αρχείο httpd.conf

Ένα συντακτικό λάθος στο httpd.conf εμποδίζει τον Apache να ξεκινήσει. Το σφάλμα αναφέρει τη γραμμή:

Syntax error on line 218 of  /etc/httpd/conf/httpd.conf

Ελέγξτε τη σύνταξη πριν από την επανεκκίνηση:

[root@server ~]# apachectl -t
Syntax OK
[root@server ~]# httpd -t
Syntax OK

Σε Debian και Ubuntu ο έλεγχος σύνταξης γίνεται ως εξής.

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.

Αντίστοιχα, με τον διακόπτη -S εμφανίζετε όλα τα virtual hosts με τα βασικά τους στοιχεία, όπως τις ρυθμισμένες θύρες και τη γραμμή ορισμού τους στις ρυθμίσεις.

[root@server ~]# httpd -S
VirtualHost configuration:
127.0.0.1:7080         is a NameVirtualHost

Ο Apache δεν ξεκινά αν το αρχείο .htaccess δεν έχει δημιουργηθεί σωστά.

Για να λαμβάνονται υπόψη τα αρχεία .htaccess, τα virtual hosts του Apache πρέπει να έχουν τους κατάλληλους ορισμούς. Αν λείπουν αυτές οι οδηγίες, το αρχείο .htaccess δεν λαμβάνεται υπόψη και οι ορισμοί του δεν φορτώνονται. Παρακάτω ένας ενδεικτικός ορισμός.

</VirtualHost>
<Directory /home/eurovps/public_html>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Μετά από αυτό, ένα αρχείο .htaccess που δημιουργείται στο /home/eurovps/public_html/ θα λαμβάνεται υπόψη από τον Apache. Το αρχείο χρειάζεται δικαιώματα 644 και ιδιοκτήτη τον χρήστη του domain:

Παράδειγμα δημιουργίας αρχείου .htaccess και δικαιωμάτων.

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

Συμβουλές: δοκιμάστε να ενεργοποιήσετε αναλυτικά logs για αποσφαλμάτωση (LogLevel debug). Ελέγξτε το syslog και το dmesg για ενδείξεις τερματισμού διεργασιών, και ελέγξτε την ελεύθερη μνήμη και τον ελεύθερο χώρο δίσκου στον server.

Από τις συχνές ερωτήσεις της EuroVPS.

Περισσότερα στην κατηγορία «Οδηγοί»

Ο επόμενος συνεργάτης σας στην υποδομή

Έχετε ακόμη
μια ερώτηση;

Πείτε μας τι προσπαθείτε να κάνετε. Ένας μηχανικός θα το διαβάσει και θα απαντήσει.

+357 222 32280
Μηχανικός της EuroVPS μεταφέρει έναν κόμβο server στον χώρο του datacenter
Μια συζήτηση με τους ανθρώπους που θα φροντίζουν την υποδομή σας.

Ας ξεκινήσουμε από την υποδομή σας.

Λίγο πλαίσιο μάς βοηθά να ξεκινήσουμε τη σωστή συζήτηση.

Θα χρησιμοποιήσουμε τα στοιχεία σας για να απαντήσουμε στο αίτημά σας. Πολιτική απορρήτου