Many times Apache gives 500 Internal Server Error due to various reasons. In the article, we will look at what is 500 internal server error, why do you get this error message and how to fix 500 Internal Server Error in Apache localhost, CPanel other systems like Ubuntu, CentOS, Windows.
What is 500 Internal Server Error in Apache
Apache gives 500 Internal Server Error when there is a server-side error that prevents Apache from processing a request and returning a proper response. This can be due to various reasons such as faulty code, inadequate file permissions, missing files referenced in code, etc. There are multiple ways to fix 500 internal server error in Apache.
Bonus Read : How to Install mod_deflate in Apache
How to Fix 500 Internal Server Error in Apache
Here are the steps to fix 500 internal server error in Apache on localhost, CPanel, PHP, Ubuntu, and other systems.
1. Hard Refresh the Page
The simplest way to fix 500 internal server error in Apache is to simply refresh the page. Sometimes you may be requesting a page when the server is being restarted. In such cases, you will get 500 internal error.
Sometimes, the server may be overloaded with requests and doesn’t have resources to process your request.
In both these cases, you can do a hard refresh to force the browser to connect to server and download the latest website content. You can do this by pressing
- Windows: Ctrl + F5
- Mac: Apple + R or Cmd + R
- Linux: F5
Bonus Read : How to Fix 504 Gateway Timeout Error in Apache
2. Examine Server Logs
Many times, you get 500 internal server error only for one page or a few pages but not all pages on your website. So it is important to check your server log to find the requests causing this issue.
Every server log records the requested URL along with the returned response. Among the most recent requests, look for the ones that have returned 500 response code.
This will tell which script is causing the issue. Once you have identified the script, open your browser and request this page again to confirm that it is indeed raising the error in server log.
3. Examine your script
Next, check if your script is working properly.
Is your script in the right place? Have you named it correctly? Is your URL mapping/routing referencing the right script?
If your script refers any file, then are the file paths correct? If they refer any function/program, have you referenced them correctly ?
Bonus Read : How to Fix 502 Bad Gateway Error in Apache
4. Check File/Folder Permissions
Did you modify any file/folder permission recently? Did you create a new file/folder in your code?
If so then you might be seeing 500 internal server error due to wrong file/folder permissions. Typically, files should have 644 user permission while folders should have 755 permission. You can use FileZilla (Windows) or CHMOD (Linux) to change file permissions.
Look at the permissions of other files/folders in your code and update the permission for your file/folder accordingly.
Bonus Read : How to Increase Request Timeout in Apache
5. Check .htaccess file
If you have set up URL rewrites or URL redirection, then you may have used .htaccess file. Make sure you have setup mod_rewrite correctly.
Also use a third-party tool to check URL rewrite syntax, and ensure they are correct.
Bonus Read : How to Enable mod_rewrite in Apache
6. Increase Script Timeout
If your Apache server depends on another external script/function to process a request and it times out, then Apache will return 500 Internal Server error.
So increase the timeout values of those external scripts so that they maintain the connection and return a proper response.
Hopefully, the above tips will help you fix 500 internal server error in Apache.