/ Run bash on the web
WARNING: Running bash scripts via CGI can be dangerous and should only be done in isolated environments.
// Apache Setup
Enable the required Apache modules:
# Enable mod_cgid in the Apache config
echo "LoadModule cgid_module modules/mod_cgid.so" >> /etc/httpd/conf/httpd.conf
# Add CGI configuration
echo "ScriptAlias /cgi-bin/ \"/srv/http/cgi-bin/\"" >> /etc/httpd/conf/httpd.conf
echo "<Directory \"/srv/http/cgi-bin\">" >> /etc/httpd/conf/httpd.conf
echo " AllowOverride None" >> /etc/httpd/conf/httpd.conf
echo " Options +ExecCGI" >> /etc/httpd/conf/httpd.conf
echo " Require all granted" >> /etc/httpd/conf/httpd.conf
echo "</Directory>" >> /etc/httpd/conf/httpd.conf
# Restart Apache
systemctl restart httpd
// Directory Setup
Create a CGI-bin folder for the scripts:
mkdir -p /srv/http/cgi-bin
chown http:http /srv/http/cgi-bin
chmod 755 /srv/http/cgi-bin
// Basic Script Template
Use this header for your CGI scripts:
#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "<meta charset='utf-8'>"
// Making Scripts Executable
# Make the script executable
chmod +x /srv/http/cgi-bin/myscript.sh
# Test the script works
/srv/http/cgi-bin/myscript.sh