I would restart Apache2 but there comes an Error
$ sudo service apache2 start
Starting web server apache2
Action 'start' failed.
The Apache error log may have more information.
But all error logs in "/var/log/apache2/" are empty.
Edit: The Files are at "/var/log/apache2" and there are several entries from previous Problems but this Task doesn't create any new etry ...
Where is the Problem?
It was a error in the SSL Certificate and the path to the "error.log" are changed in the vHost configuration.
If you don't need SSL (i don't because i'm running a local system) simply disable all vHost HTTPS/SSL entrys in the configuration by command line for line out.
Try to disable SElinux or configuration virtualhost for SElinux
to configuration with SElinux https://muchbits.com/apache-selinux-vhosts.html
to disable SElinux https://linuxize.com/post/how-to-disable-selinux-on-centos-7/
I ran into this exact issue today. I had copied the entire /etc/httpd from RHEL 6 and put it onto a CentOS 6 system, and ensured all RPMs were installed.
Anytime apache would be started, it would silently fail. It took an strace
to find the culprit: I was using CustomLog to call a program that was not installed on the target system. Once I installed the expected program, Apache HTTP Server started right up.
I also just ran in to a similar problem, that is service apache2 reload
fails but prints no useful information. This is because the script in /etc/init.d/apache
(on Debian, at least) eats the output of the apache2ctl configtest
command it runs to sanitize the Apache config.
An easy solution to get a more meaningful explanation for the failure is to run apache2ctl configtest
again yourself, which will print the (hopefully useful) error messages to the console.
in the apache virtualhost you have to define the path to the error log file. when apache2 start for the first time it will create it automatically.
for example ErrorLog "/var/www/www.localhost.com/log-apache2/error.log" in the apache virtualhost..
On Apache on Linux there might be a problem that the configuration cannot be checked because of a problem with environment variables not being set. This is a false positive which only occurs when running apache2 -S
from commandline (See previous answer from @simhumileco). For instance Config variable ${APACHE_RUN_DIR} is not defined
.
In order to fix this run source /etc/apache2/envvars
from the commandline and then run `apache2 -S' to get to the real (possible) problems.
root@fileserver:~# apache2 -S
[Thu Apr 30 10:42:06.822719 2020] [core:warn] [pid 24624] AH00111: Config variable ${APACHE_RUN_DIR} is not defined
apache2: Syntax error on line 80 of /etc/apache2/apache2.conf: DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot
root@fileserver:~# source /etc/apache2/envvars
root@fileserver:/root# apache2 -S
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
<----snip---->
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex ldap-cache: using_defaults
Mutex default: dir="/var/run/apache2/" mechanism=default
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33
root@fileserver:/root#
If we have no entries in log files then we can try to debug apache2 using this command:
$ apache2 -S
or
$ apache2 -e debug
Possible output:
[Fri Apr 05 04:04:59.682880 2019] [core:warn] [pid 11086] AH00111: Config variable ${APACHE_RUN_DIR} is not defined
apache2: Syntax error on line 80 of /etc/apache2/apache2.conf: DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot
I ran into this problem on the Raspberry Pi. After trying everything but a reinstall, on a whim, I deleted /var/run/apache2/apache2.pid. I restarted Apache and everything worked. Not sure how to explain that.
Syntax errors in the config file seem to cause problems. I found what the problem was by going to the directory and excuting this from the command line.
httpd -e info
This gave me the error
Syntax error on line 156 of D:/.../Apache Software Foundation/Apache2.2/conf/httpd.conf:
Invalid command 'PHPIniDir', perhaps misspelled or defined by a module not included in the server configuration
You have following ways to make it work:
Delete /var/run/apache2/apache2.pid then check if its working
You can disable SELinux and then check if it works. You can disable SELinux permanantly or temporarily by using https://linux4one.com/how-to-disable-selinux-on-centos-7/ tutorial
On XAMPP use
D:\xampp\apache\bin>httpd -t -D DUMP_VHOSTS
This will yield errors in your configuration of the virtual hosts
Source: Stackoverflow.com