# Kuidas lubada CGI-skripte Apache'is

CGI-skriptid on praktiline lahendus Apache veebiserveri koormuse vähendamiseks. Vajalikud Apache’i seadistused saab kiiresti paika panna ning kataloogile ja CGI-failidele õiguste andmine on lihtne.

## Millised on Apache’i CGI-skriptide nõuded?

Et kasutada **CGI-** liidest **(Common Gateway Interface)** skriptide edastamiseks Apache veebiserverile, on vaja järgmist seadistust:

- pilveserver või virtuaalne eraserver (VPS)
- Linuxi serveridistributsioon, näiteks CentOS 8 või Ubuntu 22.04
- Apache veebiserver, mis on installitud ja töötab

Note Tavalises Linuxi paigalduses on Apache juba eelinstallitud. Kui teie server on loodud minimaalse paigaldusvariandiga, peate enne jätkamist Apache’i paigaldama ja seadistama. Lugege meie vastavast artiklist, kuidas [Apache’i WordPressi jaoks paigaldada ja seadistada](https://www.ionos.com/et-ee/digitalguide/server/seadistused/kuidas-apachei-wordpressi-jaoks-installida-ja-seadistada/).

## Kuidas lubada CGI-skripte Apache’i seadistustes

Apachega Linuxi serveris CGI-skriptide käivitamiseks tuleb seadistada kaks asja:

- Apache tuleb seadistada nii, et veebiserver saaks käivitada CGI-skripte.
- Skript tuleb üles laadida õigesse asukohta ja sellele tuleb anda õiged õigused.

### Apache’i seaded CGI-skriptide jaoks CentOS-is

Ava Apache’i konfiguratsioonifail `httpd.conf` redigeerimiseks:

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

Leia lõik, kus on kirjas:

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

Asenda rida `Options None` järgmise kahe reaga:

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

Esimene rida käsib Apache’il käivitada serverisse ü `/var/www/cgi-bin directory` laaditud CGI-faile. Teine rida käsib Apache’il käsitleda kõiki faile, mille laiendiks on .cgi, .pl (Perl-skript) või .py (Python-skript), CGI-skriptidena.

See lõik on nüüd järgmine:

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

Salvesta fail ja sulge see. Käivita nüüd Apache uuesti, et muudatused jõustuksid:

```bash
sudo systemctl restart httpd
```

### Apache’i seaded CGI-skriptide jaoks Ubuntu süsteemis

Ubuntu-süsteemides, nagu Ubuntu 22.04, on Apache vaikimisi seadistatud nii, et see lubab CGI-skriptide käivitamist määratud kataloogis `/usr/lib/cgi-bin`. Apache’i seadeid pole vaja muuta. Enne CGI-skriptide käivitamist **tuleb** aga **Apache’i CGI-moodul aktiveerida**. Selleks tuleb luua sümboliline link (symlink):

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

Seejärel taaskäivita Apache, et muudatused jõustuksid:

```bash
sudo systemctl restart apache2
```

## Kuidas laadida üles CGI-skripti ja määrata õigused

CGI-skripti toimimise kontrollimiseks Apache-serveris soovitame alustada **testskriptiga**. Looge fail `test.cgi` serveri selleks ettenähtud cgi-bin-kataloogi ja avage testskript redigeerimiseks:

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

Lisa sellesse faili järgmine sisu:

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

Salvesta fail ja sulge see. Järgmises etapis anna failile**vajalikud täitmisõigused**:

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

Note `chmod 755` parameetri abil saab skripti omanik lugeda, muuta ja käivitada. Rühmal ja teistel kasutajatel on skriptile lugemisõigus ning võimalus seda käivitada.

Vaata skripti veebibrauseris, kasutades selleks kas domeeninime või IP-aadressi:

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

Kui seadistamine õnnestus, kuvatakse sõnum „Hello world!”.

## Kuidas lahendada CGI-skriptide vigu

**404-viga**: 404-viga tähendab, et URL-i ei leitud. Kontrolli, kas **skript on lisatud õigesse kataloogi**.

- **CentOS:** CGI vaikimisi kataloog on `var/www/cgi-bin/`
- **Ubuntu:** vaikimisi CGI-kataloog on `/usr/lib/cgi-bin`

**Veateade 500**: Kui Apache’i CGI-skriptide kasutamisel ilmub veateade 500, on selle põhjuseks tavaliselt skripti puudulikud õigused. Kontrollige, kas skriptil on täitmisõigused (chmod 755).


This is a markdown version of: [https://www.ionos.com/et-ee/digitalguide/server/seadistused/cgi-skriptide-lubamine-apacheis/](https://www.ionos.com/et-ee/digitalguide/server/seadistused/cgi-skriptide-lubamine-apacheis/) for AI/LLM consumption.