CGI-skript er en praktisk løsning for å avlaste Apache-webserveren. De nødvendige Apache-konfigurasjonene kan settes opp raskt, og prosessen med å gi tilgang til katalogen og CGI-filene er enkel.

Hva er kravene til CGI-skript på Apache?

For å kunne bruke Common Gateway Interface (CGI) til å sende skript til Apache-webserveren din, må du ha følgende konfigurasjon:

  • en skyserver eller en virtuell privat server (VPS)
  • en Linux-serverdistribusjon som CentOS 8 eller Ubuntu 22.04
  • en Apache-webserver som er installert og i drift
Note

I en standard Linux-installasjon er Apache allerede installert. Hvis serveren din ble opprettet med installasjonsalternativet «Minimal», må du installere og konfigurere Apache før du fortsetter. Les hvordan du installerer og konfigurerer Apache for WordPress i vår relaterte artikkel.

Slik aktiverer du CGI-skript i Apache-konfigurasjonene

Det er to ting som må konfigureres for å kunne kjøre CGI-skript på en Linux-server med Apache:

  • Apache må konfigureres slik at webserveren kan kjøre CGI-skript.
  • Skriptet må lastes opp til riktig sted og gis riktige tillatelser.

Apache-innstillinger for CGI-skript på CentOS

Åpne Apache-konfigurasjonsfilen httpd.conf for redigering:

sudo nano /etc/httpd/conf/httpd.conf
bash

Finn 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>
text

Erstatt linje Options None med følgende to linjer:

Options +ExecCGI
AddHandler cgi-script .cgi .pl .py
text

Den første linjen angir at Apache skal kjøre CGI-filer som lastes opp til /var/www/cgi-bin directory. Den andre linjen angir at alle filer som slutter på .cgi, .pl (Perl-skript) eller .py (Python-skript) skal betraktes som CGI-skript.

Avsnittet lyder nå slik:

#
# "/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>
text

Lagre og lukk filen. Start nå Apache på nytt for at endringene skal tre i kraft:

sudo systemctl restart httpd
bash

Apache-innstillinger for CGI-skript på Ubuntu

På Ubuntu-systemer som Ubuntu 22.04 er Apache som standard konfigurert til å tillate kjøring av CGI-skript i den angitte katalogen /usr/lib/cgi-bin ». Du trenger ikke å endre noen Apache-konfigurasjoner. Apache CGI-modulen må imidlertid aktiveres før CGI-skript kan kjøres. For å gjøre dette må du opprette en symlink (symbolsk lenke):

sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/
bash

Start deretter Apache på nytt for at endringene skal tre i kraft:

sudo systemctl restart apache2
bash

Slik laster du opp et CGI-skript og angir tilgangstillatelser

For å sjekke at CGI-skriptet fungerer på Apache-serveren din, anbefaler vi at du starter med et testskript. Opprett filen test.cgi i serverens cgi-bin-mappe og åpne testskriptet for redigering:

  • CentOS: sudo nano /var/www/cgi-bin/test.cgi
  • Ubuntu: sudo nano /usr/lib/cgi-bin/test.cgi

Legg til følgende innhold i denne filen:

#!/usr/bin/perl
print "Content-type: text/html\n\n"; 
print "<h1>Hello world</h1>";
text

Lagre og lukk filen. I neste trinn må du gi filen denødvendige kjøringsrettighetene:

  • CentOS: sudo chmod 755 /var/www/cgi-bin/test.cgi
  • Ubuntu: sudo chmod 755 /usr/lib/cgi-bin/test.cgi
Note

Ved hjelp av de chmod 755 parameterne kan skriptet leses, redigeres og kjøres av eieren. For gruppen og andre brukere er det lesetilgang og mulighet til å kjøre skriptet.

Vis skriptet i en nettleser ved å bruke enten domenenavnet eller IP-adressen:

http://example.com/cgi-bin/test.cgi
http://192.168.0.1/cgi-bin/test.cgi
text

Hvis installasjonen lyktes, vises meldingen «Hello world!».

Slik feilsøker du feil i CGI-skript

404-feil: En 404-feil betyr at nettadressen ikke kan finnes. Sjekk at skriptet er lagt til i riktig katalog.

  • CentOS: Standard CGI-katalogen er var/www/cgi-bin/
  • Ubuntu: Standard CGI-katalogen er /usr/lib/cgi-bin

Server 500-feil: Når feil 500 oppstår i forbindelse med CGI-skript på Apache, skyldes det vanligvis at skriptet ikke har riktige tilgangsrettigheter. Kontroller at skriptet har kjøringsrettigheter (chmod 755).

Go to Main Menu