Hur man aktiverar CGI-skript på Apache
CGI-skript är en praktisk lösning för att minska belastningen på Apache-webbservern. De nödvändiga Apache-konfigurationerna kan ställas in snabbt och processen för att bevilja behörigheter för katalogen och CGI-filerna är enkel.
Vilka är kraven för CGI-skript på Apache?
För att kunna använda Common Gateway Interface (CGI) för att skicka skript till din Apache-webbserver behöver du följande inställningar:
- en molnserver eller virtuell privat server (VPS)
- en Linux-serverdistribution som CentOS 8 eller Ubuntu 22.04
- en Apache-webbserver som är installerad och igång
En standardinstallation av Linux levereras med Apache redan installerat. Om din server skapades med alternativet Minimal installation måste du installera och konfigurera Apache innan du fortsätter. Lär dig hur du installerar och konfigurerar Apache för WordPress i vår relaterade artikel.
Hur man aktiverar CGI-skript i Apache-konfigurationerna
Två saker måste konfigureras för att kunna köra CGI-skript på en Linux-server med Apache:
- Apache måste konfigureras så att webbservern kan köra CGI-skript.
- Skriptet måste laddas upp till rätt plats och ges rätt behörigheter.
Apache-inställningar för CGI-skript på CentOS
Öppna Apache-konfigurationsfilen httpd.conf för redigering:
sudo nano /etc/httpd/conf/httpd.confbashHitta avsnittet som lyder:
#
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>textErsätt rad Options None med följande två rader:
Options +ExecCGI
AddHandler cgi-script .cgi .pl .pytextDen första raden talar om för Apache att köra CGI-filer som laddas upp till /var/www/cgi-bin directory. Den andra raden talar om för Apache att alla filer som slutar på .cgi, .pl (Perl-skript) eller .py (Python-skript) ska ses som CGI-skript.
Avsnittet lyder nu:
#
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/var/www/cgi-bin">
AllowOverride None
Options +ExecCGI
AddHandler cgi-script .cgi .pl
Require all granted
</Directory>textSpara och stäng filen. Starta nu om Apache så att ändringarna träder i kraft:
sudo systemctl restart httpdbashApache-inställningar för CGI-skript på Ubuntu
På Ubuntu-system som Ubuntu 22.04 är Apache som standard konfigurerat för att tillåta körning av CGI-skript i den angivna katalogen /usr/lib/cgi-bin. Du behöver inte ändra några Apache-konfigurationer. Apache CGI-modulen måste dock aktiveras innan CGI-skript kan köras. För att göra detta måste du skapa en symlänk (symbolisk länk):
sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/bashStarta sedan om Apache så att ändringarna träder i kraft:
sudo systemctl restart apache2bashHur man laddar upp CGI-skript och ställer in behörigheter
För att verifiera CGI-skriptets funktionalitet på din Apache-server rekommenderar vi att du börjar med ett testskript. Skapa filen test.cgi i serverns angivna cgi-bin och öppna testskriptet för redigering:
- CentOS:
sudo nano /var/www/cgi-bin/test.cgi - Ubuntu:
sudo nano /usr/lib/cgi-bin/test.cgi
Lägg till följande innehåll i den här filen:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<h1>Hello world</h1>";textSpara och stäng filen. I nästa steg ger du filennödvändiga körbehörigheter:
- CentOS:
sudo chmod 755 /var/www/cgi-bin/test.cgi - Ubuntu:
sudo chmod 755 /usr/lib/cgi-bin/test.cgi
Genom att använda de chmod 755 parametrarna kan ägaren läsa, redigera och köra skriptet. Gruppen och andra användare har läsbehörighet och möjlighet att köra skriptet.
Visa skriptet i en webbläsare med hjälp av domännamnet eller IP-adressen:
http://example.com/cgi-bin/test.cgi
http://192.168.0.1/cgi-bin/test.cgitextOm installationen lyckades visas meddelandet ”Hello world!”.
Hur man felsöker CGI-skriptfel
404-fel: Ett 404-fel betyder att URL-adressen inte kan hittas. Kontrollera att skriptet har lagts till i rätt katalog.
- CentOS: Standardkatalogen för CGI är
var/www/cgi-bin/ - Ubuntu: Standardkatalogen för CGI är
/usr/lib/cgi-bin
Server 500-fel: När fel 500 visas i samband med CGI-skript på Apache beror det vanligtvis på att skriptet inte har rätt behörigheter. Kontrollera att skriptet har behörighet att köras (chmod 755).

