# Hoe CGI-scripts inschakelen op Apache

CGI- scripts zijn een praktische oplossing om de belasting van de Apache-webserver te verlichten. De benodigde Apache-configuraties kunnen snel worden ingesteld en het proces voor het verlenen van rechten voor de map en de CGI-bestanden is eenvoudig.

## Wat zijn de vereisten voor CGI-scripts op Apache?

Om de **Common Gateway Interface (CGI)** te kunnen gebruiken om scripts naar uw Apache-webserver te verzenden, hebt u de volgende configuratie nodig:

- een cloudserver of virtuele privéserver (VPS)
- een Linux-serverdistributie zoals CentOS 8 of Ubuntu 22.04
- een Apache-webserver die is geïnstalleerd en actief is

Opmerking Bij een standaard Linux-installatie is Apache al geïnstalleerd. Als uw server is aangemaakt met de optie Minimale installatie, moet u Apache installeren en configureren voordat u verdergaat. Lees in ons gerelateerde artikel hoe u [Apache voor WordPress installeert en configureert](https://www.ionos.com/nl-be/digitalguide/server/configuratie/hoe-apache-voor-wordpress-te-installeren-en-configureren/).

## Hoe CGI-scripts in de Apache-configuraties inschakelen

Er moeten twee dingen worden ingesteld om CGI-scripts op een Linux-server met Apache te kunnen uitvoeren:

- Apache moet worden geconfigureerd zodat de webserver CGI-scripts kan uitvoeren.
- Het script moet naar de juiste locatie worden geüpload en de juiste machtigingen krijgen.

### Apache-instellingen voor CGI-scripts op CentOS

Open het Apache-configuratiebestand `httpd.conf` om het te bewerken:

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

Zoek het gedeelte met de tekst:

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

Vervang regel `Options None` door de volgende twee regels:

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

De eerste regel vertelt Apache om CGI-bestanden uit te voeren die zijn geüpload naar de `/var/www/cgi-bin directory`. De tweede regel vertelt Apache dat elk bestand dat eindigt op .cgi, .pl (Perl-script) of .py (Python-script) wordt beschouwd als een CGI-script.

De sectie luidt nu als volgt:

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

Sla het bestand op en sluit het af. Start Apache nu opnieuw op zodat de wijzigingen van kracht worden:

```bash
sudo systemctl restart httpd
```

### Apache-instellingen voor CGI-scripts op Ubuntu

Op Ubuntu-systemen zoals Ubuntu 22.04 is Apache standaard geconfigureerd om de uitvoering van CGI-scripts in de aangewezen `/usr/lib/cgi-bin` toe te staan. U hoeft geen Apache-configuraties te wijzigen. **De Apache CGI-module moet** echter **worden ingeschakeld** voordat CGI-scripts kunnen worden uitgevoerd. Hiervoor moet u een symlink (symbolische link) maken:

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

Start Apache vervolgens opnieuw op zodat de wijzigingen van kracht worden:

```bash
sudo systemctl restart apache2
```

## Hoe u een CGI-script uploadt en machtigingen instelt

Om de functionaliteit van het CGI-script op uw Apache-server te controleren, raden we u aan te beginnen met een **testscript**. Maak het bestand `test.cgi` aan in de daarvoor bestemde cgi-bin van de server en open het testscript om het te bewerken:

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

Voeg de volgende inhoud toe aan dit bestand:

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

Sla het bestand op en sluit het af. Geef het bestand in de volgende stap de**nodige uitvoerrechten**:

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

Opmerking Met behulp van de `chmod 755` parameters kan het script door de eigenaar worden gelezen, bewerkt en uitgevoerd. Voor de groep en andere gebruikers is er leesrechten en de mogelijkheid om het script uit te voeren.

Bekijk het script in een browser, met behulp van de domeinnaam of het IP-adres:

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

Als de installatie succesvol was, verschijnt het bericht ‘Hallo wereld!’.

## Problemen met CGI-scriptfouten oplossen

**404-fout**: Een 404-fout betekent dat de URL niet kan worden gevonden. Controleer of het **script aan de juiste map is toegevoegd**.

- **CentOS:** De standaard CGI-map is `var/www/cgi-bin/`
- **Ubuntu:** De standaard CGI-map is `/usr/lib/cgi-bin`

**Server 500-fout**: Wanneer fout 500 verschijnt in verband met CGI-scripts op Apache, is dit meestal te wijten aan het feit dat het script niet over de juiste machtigingen beschikt. Controleer of het script uitvoeringsrechten (chmod 755) heeft.


This is a markdown version of: [https://www.ionos.com/nl-be/digitalguide/server/configuratie/cgi-scripts-inschakelen-op-apache/](https://www.ionos.com/nl-be/digitalguide/server/configuratie/cgi-scripts-inschakelen-op-apache/) for AI/LLM consumption.