CGI Permission Denied Troubleshooting
Resolve "Permission denied" errors when executing CGI scripts on Apache.
1. Verify and Correct Ownership
sudo chown -R www-data:www-data /path/to/cgi-bin
sudo chmod -R 755 /path/to/cgi-bin
sudo chmod 755 /path/to/cgi-bin/script.cgi
2. Check Immutable Attribute
lsattr /path/to/cgi-bin/
If files have the i attribute, remove it:
sudo chattr -i /path/to/cgi-bin/script.cgi
3. Apache Configuration
Ensure virtual host uses correct user/group:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /path/to/public_html
SuexecUserGroup www-data www-data
<Directory "/path/to/cgi-bin">
Options +ExecCGI
AllowOverride All
Require all granted
AddHandler cgi-script .cgi .pl
</Directory>
</VirtualHost>
4. Disable suexec Temporarily
Comment out SuexecUserGroup to test if it's causing issues.
5. Check Logs
sudo tail -f /var/log/apache2/error.log
sudo cat /var/log/apache2/suexec.log
6. Filesystem Check
sudo touch /forcefsck
sudo reboot