# 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

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](https://www.ionos.com/nb-no/digitalguide/server/konfigurasjon/slik-installerer-og-konfigurerer-du-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:

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

Finn avsnittet som lyder:

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

Erstatt linje `Options None` med følgende to linjer:

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

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:

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

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

```bash
sudo systemctl restart httpd
```

### 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):

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

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

```bash
sudo systemctl restart apache2
```

## 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:

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

Lagre og lukk filen. I neste trinn må du gi filen de**nø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:

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

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).


This is a markdown version of: [https://www.ionos.com/nb-no/digitalguide/server/konfigurasjon/aktiver-cgi-skript-paa-apache/](https://www.ionos.com/nb-no/digitalguide/server/konfigurasjon/aktiver-cgi-skript-paa-apache/) for AI/LLM consumption.