# Kako omogočiti CGI-skripte v Apacheju

CGI-skripti so praktična rešitev za zmanjšanje obremenitve spletnega strežnika Apache. Potrebne nastavitve Apacheja je mogoče hitro konfigurirati, postopek dodeljevanja dovoljenj za imenik in CGI-datoteke pa je preprost.

## Kakšne so zahteve za CGI-skripte v strežniku Apache?

Če želite uporabiti vmesnik **CGI (Common Gateway Interface)** za pošiljanje skriptov na svoj spletni strežnik Apache, potrebujete naslednjo konfiguracijo:

- strežnik v oblaku ali virtualni zasebni strežnik (VPS)
- distribucija strežnika Linux, kot sta CentOS 8 ali Ubuntu 22.04
- spletni strežnik Apache, ki je nameščen in deluje

Note V standardni namestitvi sistema Linux je Apache že vgrajen. Če ste strežnik ustvarili z možnostjo minimalne namestitve, boste morali Apache namestiti in nastaviti, preden nadaljujete. V našem povezanem članku si preberite, kako [namestiti in nastaviti Apache za WordPress](https://www.ionos.com/sl-si/digitalguide/streznik/nastavitve/apache-fuer-wordpress-installieren-und-konfigurieren/).

## Kako omogočiti CGI-skripte v nastavitvah Apacheja

Za zagon skriptov CGI na strežniku Linux z Apachejem je treba nastaviti dve stvari:

- Apache je treba nastaviti tako, da lahko spletni strežnik izvaja CGI-skripte.
- Skript je treba naložiti na pravo mesto in mu dodeliti prava dovoljenja.

### Nastavitve Apacheja za skripte CGI v sistemu CentOS

Odpri konfiguracijsko datoteko Apache `httpd.conf` za urejanje:

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

Poiščite odstavek, ki se glasi:

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

Zamenjajte vrstico `Options None` z naslednjima dvema vrsticama:

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

Prva vrstica Apacheju naroča, naj izvaja CGI-datoteke, ki so naložene na `/var/www/cgi-bin directory`. Druga vrstica Apacheju naroča, naj vsako datoteko z končnico .cgi, .pl (Perl-skript) ali .py (Python-skript) obravnava kot CGI-skript.

Odstavek se zdaj glasi:

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

Shranite datoteko in jo zaprite. Zdaj ponovno zaženite Apache, da se spremembe začnejo uporabljati:

```bash
sudo systemctl restart httpd
```

### Nastavitve Apacheja za skripte CGI v sistemu Ubuntu

V sistemih Ubuntu, kot je Ubuntu 22.04, je Apache privzeto nastavljen tako, da omogoča izvajanje skriptov CGI v določenem imeniku `/usr/lib/cgi-bin`. Nastavitev Apacheja vam ni treba spreminjati. Vendar pa **je treba** pred izvajanjem skriptov CGI **omogočiti modul Apache CGI**. Za to morate ustvariti simbolično povezavo (symlink):

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

Nato ponovno zaženite Apache, da se spremembe začnejo uporabljati:

```bash
sudo systemctl restart apache2
```

## Kako naložiti skript CGI in nastaviti dovoljenja

Da bi preverili delovanje skripta CGI na vašem strežniku Apache, priporočamo, da začnete s **preskusnim skriptom**. Ustvarite datoteko `test.cgi` v namenski mapi cgi-bin na strežniku in odprite preskusni skript za urejanje:

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

V to datoteko vnesite naslednjo vsebino:

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

Shranite datoteko in jo zaprite. V naslednjem koraku datoteki dodelite**potrebna izvedbena dovoljenja**:

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

Note Z uporabo `chmod 755` parametrov lahko skript bere, ureja in izvaja lastnik. Skupina in drugi uporabniki imajo pravico do branja ter možnost izvajanja skripta.

Skript si oglejte v brskalniku, in sicer z vnosom domenskega imena ali IP-naslova:

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

Če je namestitev uspela, se bo prikazalo sporočilo »Hello world!«.

## Kako odpraviti napake v skriptih CGI

**Napaka 404**: Napaka 404 pomeni, da URL-ja ni mogoče najti. Preverite, ali **je bil skript dodan v pravi imenik**.

- **CentOS:** Privzeti imenik CGI je `var/www/cgi-bin/`
- **Ubuntu:** Privzeti imenik CGI je `/usr/lib/cgi-bin`

**Napaka strežnika 500**: Kadar se pri CGI-skriptih v strežniku Apache pojavi napaka 500, je to ponavadi posledica tega, da skript nima ustreznih dovoljenj. Preverite, ali ima skript dovoljenja za izvajanje (chmod 755).


This is a markdown version of: [https://www.ionos.com/sl-si/digitalguide/streznik/nastavitve/omogoci-cgi-skripte-v-apacheju/](https://www.ionos.com/sl-si/digitalguide/streznik/nastavitve/omogoci-cgi-skripte-v-apacheju/) for AI/LLM consumption.