Slik aktiverer du CGI-skript på Apache
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
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.confbashFinn 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>textErstatt linje Options None med følgende to linjer:
Options +ExecCGI
AddHandler cgi-script .cgi .pl .pytextDen 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>textLagre og lukk filen. Start nå Apache på nytt for at endringene skal tre i kraft:
sudo systemctl restart httpdbashApache-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/bashStart deretter Apache på nytt for at endringene skal tre i kraft:
sudo systemctl restart apache2bashSlik 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>";textLagre 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
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.cgitextHvis 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).