2

My Apache won't reload after doing some changes, in this case after adding a new VHOST via Webmin. It's not the first time it happens, last time I resolved reinstalling Apache, indeed not a satisfactory way to solve the problem.

In Webmin I get this error

Failed to start apache :
 :
Starting apache2 (via systemctl): apache2.service.

So I try to reload Apache manually vis ssh

This is what happens

root@myvps:/# /etc/init.d/apache2 reload
Reloading apache2 configuration (via systemctl): apache2.serviceJob for apache2.service failed. See 'systemctl status apache2.service' and 'journalctl -xn' for details. failed!

So this is the journalctl -xn response

Jan 04 08:55:51 myvps systemd[1]: Reload failed for LSB: Apache2 web server.
-- Subject: Unit apache2.service has finished reloading its configuration
-- Defined-By: systemd
-- Support: lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit apache2.service has finished reloading its configuration
--
-- The result is failed.
Jan 04 08:56:01 myvps CRON[3403]: pam_unix(cron:session): session opened for user root by (uid=0)
Jan 04 08:56:01 myvps CRON[3404]: (root) CMD (cd / && run-parts --report /etc/cron.hourly)
Jan 04 08:56:01 myvps CRON[3403]: pam_unix(cron:session): session closed for user root
Jan 04 08:56:02 myvps systemd[1]: Reloading LSB: Apache2 web server.
-- Subject: Unit apache2.service has begun with reloading its configuration
-- Defined-By: systemd
-- Support: freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit apache2.service has begun with reloading its configuration
Jan 04 08:56:02 myvps systemd[1]: Failed to reset devices.list on /system.slice/apache2.service: No such file or directory
Jan 04 08:56:03 myvps apache2[3420]: Reloading web server: apache2 failed!
Jan 04 08:56:03 myvps apache2[3420]: Apache2 is not running ... (warning).
Jan 04 08:56:03 myvps systemd[1]: apache2.service: control process exited, code=exited status=1
Jan 04 08:56:03 myvps systemd[1]: Reload failed for LSB: Apache2 web server.
-- Subject: Unit apache2.service has finished reloading its configuration
-- Defined-By: systemd
--
-- Unit apache2.service has finished reloading its configuration
--
-- The result is failed.

and this is the systemctl status apache2.service one

Jan 04 09:23:43 myvps apache2[3819]: Action 'start' failed.
Jan 04 09:23:43 myvps apache2[3819]: The Apache error log may have more information.
Jan 04 09:23:43 myvps apache2[3819]: .
Jan 04 09:23:43 myvps systemd[1]: Started LSB: Apache2 web server.
-- Subject: Unit apache2.service has finished start-up
-- Defined-By: systemd
-- Support: lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit apache2.service has finished starting up.
--
-- The start-up result is done.
Jan 04 09:24:03 myvps systemd[1]: Reloading LSB: Apache2 web server.
-- Subject: Unit apache2.service has begun with reloading its configuration
-- Defined-By: systemd
--
-- Unit apache2.service has begun with reloading its configuration
Jan 04 09:24:03 myvps systemd[1]: Failed to reset devices.list on /system.slice/apache2.service: No such file or directory
Jan 04 09:24:03 myvps apache2[3868]: Reloading web server: apache2 failed!
Jan 04 09:24:03 myvps apache2[3868]: Apache2 is not running ... (warning).
Jan 04 09:24:03 myvps systemd[1]: apache2.service: control process exited, code=exited status=1
Jan 04 09:24:03 myvps systemd[1]: Reload failed for LSB: Apache2 web server.
-- Subject: Unit apache2.service has finished reloading its configuration
-- Defined-By: systemd
--
-- Unit apache2.service has finished reloading its configuration
--
-- The result is failed.

These are the caracteristics of the VPS

  • Debian Linux 8
  • Apache 2.4.10
  • Webmin 1.780
  • Kernel and CPU Linux 2.6.32-042stab108.8 on x86_64
  • BIND 9.9.5

some others details from the Apache error log:

[Mon Jan 04 05:16:05.615503 2016] [mpm_event:notice] [pid 367:tid 140186227066752] AH00489: Apache/2.4.10 (Debian) OpenSSL/1.0.1k configured -- resuming normal operations
[Mon Jan 04 05:16:05.615527 2016] [core:notice] [pid 367:tid 140186227066752] AH00094: Command line: '/usr/sbin/apache2'
[Mon Jan 04 06:22:05.208150 2016] [core:error] [pid 428:tid 140185949918976] [client clientIP:clientPort] AH00135: Invalid method in request quit
[Mon Jan 04 08:34:33.316012 2016] [mpm_event:notice] [pid 367:tid 140186227066752] AH00493: SIGUSR1 received.  Doing graceful restart
(98)Address already in use: AH00072: make_sock: could not bind to address vhostIp:vhostPort
[Mon Jan 04 08:34:33.343511 2016] [mpm_event:alert] [pid 367:tid 140186227066752] no listening sockets available, shutting down
[Mon Jan 04 08:34:33.343518 2016] [:emerg] [pid 367:tid 140186227066752] AH00019: Unable to open logs, exiting

my apache2.conf http://pastebin.com/xcedmPi0

my VirtualHost configurations files 000-default.conf http://pastebin.com/QYgMtTaK

webmin.conf pastebin.com/wFAe1uyS

Anybody could help?

Thanks.

antzio
  • 23
  • 1
  • 1
  • 5

2 Answers2

3

It looks like from the error log, you have either misconfigured your virtualhost or duplicate Listen 80 entries in your apache config files.

(98)Address already in use: AH00072: make_sock: could not bind to address vhostIp:vhostPort

In your default virtualhost config file, try changing <VirtualHost *> to <VirtualHost *:80> and restart apache. For a name based virtual host you don't need to specify ip address.

Also check your /etc/apache2/ports.conf file for possible duplicate entry for port declaration.

Update from OP: Problem was solved by deleting a line in the ports.conf <IfModule ssl_module> Listen 443 Listen vpsIp:5673 (line added by Webmin during the failed vhost creation)

Diamond
  • 8,791
  • 3
  • 22
  • 37
  • Added the apache2.conf link to the explanation of the problem.I'll look for what you suggest, thanks – antzio Jan 04 '16 at 16:06
  • It seems that you are declaring the virtual host into a *.conf file within sites-enabled so we'd need that vhost configuration to be able to further assist. – Mugurel Jan 04 '16 at 16:10
  • @ant0nio, you have posted the apache.conf twice, post the virtual hosts configs too. – Diamond Jan 04 '16 at 23:36
  • @ant0nio, if you have masked the `vhostIp:vhostPort`part in posted log, you should unmask it, then it will be clear which entry/vhost file is causing the issue. Is it 80 or 443? From your config, as I have mentioned already, change ` to `` add a ServerName entry and also check your `ports.conf` file. – Diamond Jan 05 '16 at 08:01
  • @bangal you are right, it was the 80 port. It seems I have just resolved the problem thanks to your suggestion. The problem was caused by an entry into the port.conf. A line with vpsIp:5673 into tag. Deleting that all works back. – antzio Jan 05 '16 at 13:28
  • @ant0nio, you are welcome. I have updated my answer, you can accept it as an answer. – Diamond Jan 05 '16 at 13:32
  • @bangal should I edit the answer? What is the correct form to close the Question? This is what I would write: **Problem solved deleting a line into the ports.conf** ` Listen 443 Listen vpsIp:5673 (line added by Webmin during the failed vhost creation) ` – antzio Jan 05 '16 at 13:35
  • You have been quicker than me. Thank you @bangal ;) – antzio Jan 05 '16 at 13:36
  • @bangal : I am having the same problem with systemd, can you please check this question : http://serverfault.com/questions/797626/debian-systemd-fails-to-start-apache-process . Thank you. – We are Borg Aug 18 '16 at 10:53
0

Webmin tends to generate incorrect Apache vHost configs from my experience. The config file would show something like

VirtualHost 127.0.0.1:80

or whatever your IP address is. However, you want

VirtualHost *:80

with an asterisk instead of an IP.

This problem has been in Webmin for a while, and I'm not sure why they haven't fixed it. It's better to write the configs by hand, or use an alternate WebCP, like Ajenti.

Felix Jen
  • 403
  • 4
  • 17
  • In my webmin.conf I only have the https Vhost: and in the default-000.conf I only have one Vhost: I have tryed to add the 80 port specification here but nothing changed – antzio Jan 04 '16 at 16:20
  • Did Webmin add the new VHost into default-000.conf? Because that's a bit of bad practice. Also, it appears that the virtual host config you posted does not contain a `ServerName` declaration which could also be part of the problem. Please refer to [here](https://httpd.apache.org/docs/2.2/vhosts/examples.html) for how a name-based VHost set up should look. – Felix Jen Jan 05 '16 at 04:01
  • No, Webmin added info only into the webmin.conf. As you suggested I have just added the ServerName specification to both vhost config files. Thank you for your help – antzio Jan 05 '16 at 13:14