1. Make sure that your Apache2 service is up and running.
user@~$sudo service apache2 status
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Active: active (running) since Fri 2016-01-29 14:05:16 EST; 14s ago
Docs: man:systemd-sysv-generator(8)
Process: 31573 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 17063 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS)
Process: 30948 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
...
If this isn't the output, read carefully the error.
2. Check your systemctl status, this will give you a lot of information.
user@~$sudo systemctl status apache2.service
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2016-01-29 13:48:57 EST; 18s ago
Docs: man:systemd-sysv-generator(8)
Process: 31573 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 17063 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS)
Process: 30467 ExecStart=/etc/init.d/apache2 start (code=exited, status=1/FAILURE)
3. Run the apache config test. It is always a good idea to run configtest everytime you make changes to the apache2 config file so that you won't accidentally stop apache2 service user@~$ sudo apache2ctl configtest 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 Syntax OK4. Restart the apache service
user@~$ sudo service apache2 stop && sudo service apache2 start
References:
[1]http://www.techrepublic.com/article/troubleshoot-apache-problems-with-these-tips/
[2]https://www.digitalocean.com/community/tutorials/how-to-troubleshoot-common-site-issues-on-a-linux-server
[3]https://www.linode.com/docs/troubleshooting/troubleshooting-common-apache-issues

