Hi DO Community, I’ve migrated files and database from an old droplet into a new LAMP 1-click install and while the site resolves and loads basic HTML pages I’m getting both a 500 Internal Server Error trying to access PHP pages and HTTP 500 errors depending on the pages I’m trying to access.
The site is available at clients.nevilleco.com and clicking on ‘Client Services’ on the left hand menu will give you the 500 internal server error. Clicking through to Newsroom -> Press REleases gives a HTTP 500 error.
I’ve gone through a number of similar posts in the community here which address permissions. I’ve run these chown commands to set permissions
Set Apache as the owner for all the files chown www-data:www-data -R *
Set directory permissions find . -type d -exec chmod 755 {} \;
Set file permissions find:
-type f -exec chmod 644 {} \;
I’ve also set php.ini to error_reporting = on
Here is my apache error log output when I ran tail -50 /var/log/apache2/error.log
:
[Wed Jun 17 06:25:03.589620 2020] [mpm_prefork:notice] [pid 867] AH00163: Apache/2.4.29 (Ubuntu) OpenSSL/1.1.1 configured -- resuming normal operations
[Wed Jun 17 06:25:03.589683 2020] [core:notice] [pid 867] AH00094: Command line: '/usr/sbin/apache2'
[Wed Jun 17 12:11:06.203456 2020] [php7:error] [pid 20892] [client 195.54.160.135:37812] script '/var/www/html/index.php' not found or unable to stat
[Wed Jun 17 14:11:58.364751 2020] [mpm_prefork:notice] [pid 867] AH00169: caught SIGTERM, shutting down
[Wed Jun 17 14:11:58.467941 2020] [mpm_prefork:notice] [pid 399] AH00163: Apache/2.4.29 (Ubuntu) OpenSSL/1.1.1 configured -- resuming normal operations
[Wed Jun 17 14:11:58.468016 2020] [core:notice] [pid 399] AH00094: Command line: '/usr/sbin/apache2'```
When I look at my access.log I can see both the 500 Internal server and the 500 hTTP errors being logged as shown in the following lines.
```87.204.52.195 - - [17/Jun/2020:14:53:15 +0000] "GET /clients/check.php HTTP/1.1" 500 1520 "http://clients.nevilleco.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:77.0) Gecko/20100101 Firefox/77.0"
68.142.59.19 - - [17/Jun/2020:15:01:43 +0000] "GET /press_releases.php HTTP/1.1" 500 185 "http://clients.nevilleco.com/newsroom.htm" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
The access log looks like it’s an HTTP 500 error regardless, but in the browser they are shown as distinct (internal server error logged in console).
My virtual hosts mod file at /etc/apache2/sites-available/mydomain.com-le-ssl.conf
looks like this…
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin dev@unionstmedia.com
ServerName clients.nevilleco.com
ServerAlias www.clients.nevilleco.com
DocumentRoot /var/www/html/www.nevilleco.com
<Directory /var/www/html/www.nevilleco.com/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<IfModule mod_dir.c>
DirectoryIndex index.php index.pl index.cgi index.html index.xhtml index.htm
</IfModule>
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/clients.nevilleco.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/clients.nevilleco.com/privkey.pem
</VirtualHost>
</IfModule>
<IfModule mod_ssl.c>
<VirtualHost *:80>
ServerAdmin dev@unionstmedia.com
ServerName clients.nevilleco.com
ServerAlias www.clients.nevilleco.com
DocumentRoot /var/www/html/www.nevilleco.com
<Directory /var/www/html/www.nevilleco.com/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<IfModule mod_dir.c>
DirectoryIndex index.php index.pl index.cgi index.html index.xhtml index.htm
</IfModule>
RewriteEngine on
# Some rewrite rules in this file were disabled on your HTTPS site,
# because they have the potential to create redirection loops.
# RewriteCond %{SERVER_NAME} =clients.nevilleco.com [OR]
# RewriteCond %{SERVER_NAME} =www.clients.nevilleco.com
# RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
</IfModule>
Any help would be super appreciated.
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!
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.
Enter your email to get $200 in credit for your first 60 days with DigitalOcean.
New accounts only. By submitting your email you agree to our Privacy Policy.
Hi there,
The error logs you provided, along with your Apache and virtual host configuration, give some clues about what might be going wrong. Here’s how you can troubleshoot the 500 Internal Server Error:
1. PHP Configuration:
The PHP error log shows a message regarding a script not being found or unable to stat. Make sure the PHP files you’re trying to access are in the correct directory:
/var/www/html/www.nevilleco.com
is the correct path, and all your PHP files are stored there.2. Apache Configuration:
Your virtual host file looks generally correct, but there are some areas you could investigate further:
Directory Permissions: Verify that Apache has read and execute permissions for the directories containing your PHP files. The permissions you’ve set look appropriate, but it could be helpful to double-check.
Apache Error Log: The error log is your friend in these situations. Since you’ve already looked at the last 50 lines, you might want to investigate further back in time, especially around the timestamps of the errors.
3. .htaccess File:
If you have an
.htaccess
file in your web root, it might be causing issues with URL rewriting or other directives. Check the file for any anomalies or misconfigurations.4. PHP Error Reporting:
Ensure PHP error reporting is enabled and configured properly. You mentioned setting
error_reporting = on
inphp.ini
, but you also need to set the appropriate error reporting level. Consider using:Don’t forget to restart Apache after modifying
php.ini
:5. Check for PHP Dependencies:
Make sure all the required PHP extensions and dependencies are installed. If your application relies on specific extensions, they must be enabled in your PHP configuration.
6. Apache Rewrite Rules:
In your virtual host configuration, the rewrite rules are commented out. If your application expects certain rewrite rules, this might be causing issues. Evaluate whether these rules should be enabled.
Best,
Bobby