# Sådan aktiveres CGI-scripts i Apache

CGI- scripts er en praktisk løsning til at aflaste Apache-webserveren. De nødvendige Apache-indstillinger kan hurtigt konfigureres, og det er nemt at tildele tilladelser til mappen og CGI-filerne.

## Hvilke krav stilles der til CGI-scripts på Apache?

For at kunne bruge **Common Gateway Interface (CGI)** til at sende scripts til din Apache-webserver skal du have følgende konfiguration:

- en cloud-server eller en virtuel privat server (VPS)
- en Linux-serverdistribution såsom CentOS 8 eller Ubuntu 22.04
- en Apache-webserver, der er installeret og kører

Note I en standardinstallation af Linux er Apache allerede installeret. Hvis din server er oprettet med installationsindstillingen »Minimal«, skal du installere og konfigurere Apache, før du fortsætter. Læs mere om, hvordan du [installerer og konfigurerer Apache til WordPress](https://www.ionos.com/da-dk/digitalguide/server/konfiguration/saadan-installeres-og-konfigureres-apache-til-wordpress/), i vores artikel om emnet.

## Sådan aktiveres CGI-scripts i Apache-konfigurationerne

Der er to ting, der skal konfigureres for at kunne køre CGI-scripts på en Linux-server med Apache:

- Apache skal konfigureres, så webserveren kan køre CGI-scripts.
- Scriptet skal uploades til den korrekte placering og tildeles de korrekte rettigheder.

### Apache-indstillinger for CGI-scripts på CentOS

Åbn Apache-konfigurationsfilen `httpd.conf` for at redigere den:

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

Find det afsnit, hvor der står:

```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>
```

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

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

Den første linje instruerer Apache om at køre CGI-filer, der uploades til port `/var/www/cgi-bin directory`. Den anden linje angiver, at alle filer, der ender på .cgi, .pl (Perl-script) eller .py (Python-script), betragtes som CGI-scripts.

Afsnittet lyder nu således:

```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>
```

Gem filen og luk den. Genstart nu Apache, så ændringerne træder i kraft:

```bash
sudo systemctl restart httpd
```

### Apache-indstillinger for CGI-scripts på Ubuntu

På Ubuntu-systemer som f.eks. Ubuntu 22.04 er Apache som standard konfigureret til at tillade kørsel af CGI-scripts i det angivne `/usr/lib/cgi-bin`. Du behøver ikke at ændre nogen Apache-indstillinger. **Apache CGI-modulet skal** dog **aktiveres**, før CGI-scripts kan køres. For at gøre dette skal du oprette et symlink (et symbolsk link):

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

Genstart derefter Apache, så ændringerne træder i kraft:

```bash
sudo systemctl restart apache2
```

## Sådan uploades et CGI-script og indstilles rettigheder

For at kontrollere, at CGI-scripts fungerer korrekt på din Apache-server, anbefaler vi, at du starter med et **testscript**. Opret filen `test.cgi` i serverens cgi-bin-mappe, og åbn testscriptet for at redigere det:

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

Indsæt følgende indhold i denne fil:

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

Gem filen, og luk den. I det næste trin skal du give filen de**nødvendige kørselsrettigheder**:

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

Note Ved hjælp af de `chmod 755` parametre kan ejeren læse, redigere og køre scriptet. Gruppen og andre brugere har læseadgang og mulighed for at køre scriptet.

Se scriptet i en browser ved at bruge enten domænenavnet eller IP-adressen:

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

Hvis opsætningen lykkedes, vises meddelelsen »Hello world!«.

## Sådan løser du fejl i CGI-scripts

**404-fejl**: En 404-fejl betyder, at URL’en ikke kan findes. Kontroller, at **scriptet er blevet placeret i det rigtige bibliotek**.

- **CentOS:** Standardmappen for CGI er `var/www/cgi-bin/`
- **Ubuntu:** Standardmappen for CGI er `/usr/lib/cgi-bin`

**Server 500-fejl**: Når fejl 500 opstår i forbindelse med CGI-scripts på Apache, skyldes det som regel, at scriptet ikke har de rette rettigheder. Kontroller, at scriptet har rettigheder til at køre (chmod 755).


This is a markdown version of: [https://www.ionos.com/da-dk/digitalguide/server/konfiguration/aktiver-cgi-scripts-i-apache/](https://www.ionos.com/da-dk/digitalguide/server/konfiguration/aktiver-cgi-scripts-i-apache/) for AI/LLM consumption.