ERROR: APACHE2.SERVICE FAILED WITH RESULT ‘EXIT-CODE’.
This blog is a quick fix for running apache service via your terminal. There could be several reasons for apache server to be dysfunctional. The error trace is something like this:
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Fri 2022-01-07 17:36:35 +0545; 2min 10s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 212815 ExecStart=/usr/sbin/apachectl start (code=exited, status=139) systemd[1]: Starting The Apache HTTP Server... apachectl[212833]: AH00558: apache2: Could not reliably determine the s> apachectl[212815]: Segmentation fault (core dumped) apachectl[212815]: Action 'start' failed. apachectl[212815]: The Apache error log may have more information. systemd[1]: apache2.service: Control process exited, code=exited, statu> systemd[1]: apache2.service: Failed with result 'exit-code systemd[1]: Failed to start The Apache HTTP Server.
CAUSE: Conflict with Multiple PHP Versions
The reason for Apache server now working on my workstation was due to the version conflict in PHP. MIstakenly I enabled both apache2 modules of PHP while trying to switch from PHP7.3 to PHP8.0. You can see which modules are enabled by running this command in your teminal:
ls -l mods-*/*php* root root 867 19 12:24 mods-available/php5.6.conf root root 102 19 12:24 mods-available/php5.6.load root root 855 19 12:10 mods-available/php7.3.conf root root 102 19 12:10 mods-available/php7.3.load root root 855 31 2020 mods-available/php7.4.conf root root 102 31 2020 mods-available/php7.4.load root root 855 21 03:07 mods-available/php8.0.conf root root 101 21 03:07 mods-available/php8.0.load root root 29 7 17:20 mods-enabled/php7.3.conf -> ../mods-available/php7.3.conf root root 29 7 17:20 mods-enabled/php7.3.load -> ../mods-available/php7.3.load root root 29 7 17:36 mods-enabled/php8.0.conf -> ../mods-available/php8.0.conf root root 29 7 17:36 mods-enabled/php8.0.load -> ../mods-available/php8.0.load
You can see the modules for php7.3 and php8.0 both are enabled. Due to this conflict systemctl command couldn’t restart apache2 service
SOLUTION: Disable one of the PHP Module
The solution is quite straight forward. Among the two php modules, disable one and keep only one php running. In your terminal disable php module by running following command:
sudo s2dismod php8.0 # And restart apache2 sudo systemctl restart apache2
Now if you check which modules are enabled you will see the output like shown below:
s -l mods-*/*php* root root 867 19 12:24 mods-available/php5.6.conf root root 102 19 12:24 mods-available/php5.6.load root root 855 19 12:10 mods-available/php7.3.conf root root 102 19 12:10 mods-available/php7.3.load root root 855 31 2020 mods-available/php7.4.conf root root 102 31 2020 mods-available/php7.4.load root root 855 21 03:07 mods-available/php8.0.conf root root 101 21 03:07 mods-available/php8.0.load root root 29 7 17:20 mods-enabled/php7.3.conf -> ../mods-available/php7.3.conf root root 29 7 17:20 mods-enabled/php7.3.load -> ../mods-available/php7.3.load
Your APache server should be now up and running.