Apache startet nicht mehr richtig

koepie

New Member
Ich habe ein Root Server von Server4you.

Seit dem ich ein update mit dem Plesk Updater gemacht habe, kann
ich den Apache Server nicht mehr über Plesk neustarten bzw wenn ich den Gesamten neu Server starte, wird der Apache Server nicht gestartet.

Wenn ich Versuche in Plesk den Server zu starten bekomme ich diese Fehlermeldung:

Code:
0: /usr/local/psa/admin/plib/common_func.php3:156
    psaerror(string 'Unable to make action: Unable to manage service by websrvmng: websrvmng: Service /etc/init.d/apache2 failed to start')
1: /usr/local/psa/admin/htdocs/server/restart_services.php:28

Und wenn ich versuche ihn über die Konsole zu starten diese Fehlermeldung:
Code:
Starting httpd2 (prefork) (98)Address already in use: make_sock: could not bind to address [::]:443
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:443
no listening sockets available, shutting down
Unable to open logs
startproc:  exit status of parent of /usr/sbin/httpd2-prefork: 1
                                                                     failed
Ich kann den Server nur mit diesem Befahl starten:
apache2ctl start

Wie behebe ich den Fehler?
 
irgendwo ist schon ein Prozess an den https Port gebunden, drum kann der Apache sich nicht mehr an den anbinden.

mit fuser -n tcp 443 bekommst du die PID raus.
 
dann blockiert der Apache sich selber, und versucht sic hzwei mal an den selben Port zu binden, was natürlich nicht klappen kann.
Ohne die Server Config kann man da nicht wirklich was sagen. Dürfte aber ein Konfigurationsproblem sein.

Lass vielleicht erst mal ein grep nach 443 über alle Files im Config Dir laufen.
 
Das kommt dabei raus...

Code:
:/etc/apache2 # grep -lir 443 /etc/apache2
/etc/apache2/conf.d/zz010_psa_httpd.conf
/etc/apache2/listen.conf
/etc/apache2/vhosts.d/vhost-ssl.template
/etc/apache2/extra/httpd-ssl.conf
 
Ausgerechnet den Teil, der relevant ist, hast du leider weg gelassen.

In welchen Files der Wert vorkommt, ist eher irrelevant. Wichtiger wäre aber, was genau dort im unmittelbaren Kontext der Fundstellen steht.
 
HUGE PROBLEM solved

nachdem klar ist worin das Problem besteht, ist die Lösung ganz leicht: Es gibt da gar nix, was Port 443 vor dem Start von Apache benutzt! Also kann weder "netstat" noch "ps -aux" noch "fuser" irgendwas anzeigen.

Also warum sagt er (Apache) dann "its already in use"? Stimmt doch gar nicht?

Die Antwort ist, er (Apache) versucht es selber mehrmals während er (Apache) startet!

Nn ist es rech leicht, das zu verhindern: Einfach am Ende der Datei "/etc/apache2/listen.conf" den Eintrag "listen 443" auskommentieren.

Hat bei mir jedenfalls schon gereicht, wurde offenbar beim Update hinzugefügt.

Notfalls mal nach "443" im gesamten Verzeichnis "/etc/apache2/" greppen, vielleicht gibts noch irgendeine vhost.conf oder so, die noch ein "Listen 443" enthält.

--------------------------------------------------------
Und nun für unsere Freunde im nichtsozialistischen Ausland:
it was quite easy after the issue was recognized: there is nothing using port 443! thus no "netstat" or "ps -aux" or "fuser" will show you no nothing not at all.

so why does it (apache) say its already in use when it's not?

answer: it (apache) itself is trying to use it twice!

from there its easy to solve the issue: just go to /etc/apache2/listen.conf and comment out the line "listen 443". good place to look for this line is the end of the file.

worked for me.

maybe you need to grep for "443" in /etc/apache2 to make sure there is no vhost.conf or the like which tells apache to listen 443 again and again...
 
Code:
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports. See also the <VirtualHost> directive.
#
# http://httpd.apache.org/docs-2.2/mod/mpm_common.html#listen
#
# Change this to Listen on specific IP addresses as shown below to 
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
#
# When we also provide SSL we have to listen to the 
# standard HTTP port (see above) and to the HTTPS port
#
# Note: Configurations that use IPv6 but not IPv4-mapped addresses need two
#       Listen directives: "Listen [::]:443" and "Listen 0.0.0.0:443"
#
#Listen 12.34.56.78:80
#Listen 80
#Listen 443

Listen 80


<IfDefine SSL>
    <IfDefine !NOSSL>
	<IfModule mod_ssl.c>

	    Listen 443

	</IfModule>
    </IfDefine>
</IfDefine>


# Use name-based virtual hosting
# 
# - on a specified address / port:
#
#NameVirtualHost 12.34.56.78:80
#
# - name-based virtual hosting:
#
#NameVirtualHost *:80
#
# - on all addresses and ports. This is your best bet when you are on
#   dynamically assigned IP addresses:
#
#NameVirtualHost *

Listen 443

so sieht meine listen.conf aus

ich habe sie einfach so umgewandelt...

Code:
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports. See also the <VirtualHost> directive.
#
# http://httpd.apache.org/docs-2.2/mod/mpm_common.html#listen
#
# Change this to Listen on specific IP addresses as shown below to 
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
#
# When we also provide SSL we have to listen to the 
# standard HTTP port (see above) and to the HTTPS port
#
# Note: Configurations that use IPv6 but not IPv4-mapped addresses need two
#       Listen directives: "Listen [::]:443" and "Listen 0.0.0.0:443"
#
#Listen 12.34.56.78:80
#Listen 80
#Listen 443

Listen 80


<IfDefine SSL>
    <IfDefine !NOSSL>
	<IfModule mod_ssl.c>

	    Listen 443

	</IfModule>
    </IfDefine>
</IfDefine>


# Use name-based virtual hosting
# 
# - on a specified address / port:
#
#NameVirtualHost 12.34.56.78:80
#
# - name-based virtual hosting:
#
#NameVirtualHost *:80
#
# - on all addresses and ports. This is your best bet when you are on
#   dynamically assigned IP addresses:
#
#NameVirtualHost *

#Listen 443

Oder funktioniert die verschlüsslung jetz nicht mehr?
 
Back
Top