Question

How to Troubleshoot Common Apache Issues on Linux Server?

I have been seeing this question quite a lot recently, so I decided to put together a few steps on what to do in case that your website is not loading.

If you are using Nginx, you could follow the steps here:

https://www.digitalocean.com/community/questions/how-to-troubleshoot-common-nginx-issues-on-linux-server?answer=56476


Submit an answer

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Accepted Answer

I would recommend following these steps in case that you are having any problems with your Apache server and you are unsure about what the problem is:

  • Check if Apache is running:
systemctl status apache2

If Apache is running you should see something like this:

● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-11-19 09:37:46 UTC; 2 days ago
     Docs: https://httpd.apache.org/docs/2.4/

If Apache is not running then the output would look like this:

● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Fri 2019-11-22 08:41:01 UTC; 39s ago
     Docs: https://httpd.apache.org/docs/2.4/
  • If Apache is not running you could start it with:
systemctl start apache2

Then check the status agian and make sure that Apache remains running.

  • If Apache did not start after a reboot, you could enable it so that it starts after the next reboot:
systemctl enable apache2
  • Check your Apache config syntax:
apachectl -t

If you get an error, you would need to fix that problem and then you could restart Apache:

systemctl restart apache2
  • If you get Syntax OK when running apachectl -t then your configuration is correct, so I would recommend checking your error logs:
tail -f /var/log/apache2/error.log

With the -f argument, you would see the output of the log in real team, so you could visit your website via your browser, and you would be able to see the errors populating the log if there are any. To stop that, just press CTRL+C.

  • Check the permissions of the files and folders in your document root:

Find the user that your Apache service is running as:

ps auxf | grep apache

If you are using Ubuntu, the user should be www-data, so you would need to make sure that your files and folders are owned by that user, so Apache could read and write to those files:

chown -R www-data:www-data /var/www/yourdomain.com

Note: be careful with the above command as it could mess up the ownership of all of your files if you don’t specify the path correctly.

  • Check if Apache is binding to the default ports:
netstat -plant | grep '80\|443'
  • Check if ufw allows TCP connections on port 80 and 443:
ufw status

If this is the case, you can follow the steps from this article here on how to configure your ufw:

https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-18-04

That is pretty much it, with all of the above information you should be able to narrow down the problem.

For more information I would suggest checking out this article here:

https://www.digitalocean.com/community/tutorials/how-to-troubleshoot-common-site-issues-on-a-linux-server

Hope that this helps! Regards, Bobby

Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in Q&A, subscribe to topics of interest, and get courses and tools that will help you grow as a developer and scale your project or business.

Thanks everything is resolved now. But how do I configure phpmyadmin to nginx and be able to open it on my domain as https://laravelapps/phpmyadmin.

Thanks

Thanks. I had initially done this. I am not using Nginx but Apache2. So far I have setup Apache2 and I am seeing this:

https://i.stack.imgur.com/ev9jf.png

  1. However, I have it to point to my application in

/var/www/html/laraapp

  1. Also, I want to use https://laraapp.net instead of the ipaddress

How do I achieve these two things with Apache2 on DigitalOcean?

Thanks

  1. How do I disable Apache and start Nginx or Disable Nginx and start Apache.

  2. Also, which one is preferable for Laravel and Mysql Project Deployment. And also to be used as https.

  3. I think I mix up the initial configuration with both apache and Nginx. How do I now focus on Apache?

NB: I disabled PHP7.2 and enabled PHP7.3, but when I restarted apache and run php -v I am still seeing PHP7.2

I have a deadline to deliver it today.

Thanks