# Kuinka ottaa CGI-skriptit käyttöön Apache-palvelimessa

CGI- skriptit ovat kätevä tapa keventää Apache-verkkopalvelimen kuormitusta. Tarvittavat Apache-asetukset voidaan määrittää nopeasti, ja hakemiston sekä CGI-tiedostojen käyttöoikeuksien myöntäminen on helppoa.

## Mitkä ovat CGI-skriptien vaatimukset Apache-palvelimella?

Jotta voit käyttää **Common Gateway Interface (CGI)** -rajapintaa skriptien lähettämiseen Apache-verkkopalvelimellesi, tarvitset seuraavan kokoonpanon:

- pilvipalvelin tai virtuaalinen yksityispalvelin (VPS)
- Linux-palvelinjakelu, kuten CentOS 8 tai Ubuntu 22.04
- asennettu ja käynnissä oleva Apache-verkkopalvelin

Huomio Apache on valmiiksi asennettu tavallisessa Linux-asennuksessa. Jos palvelimesi on luotu ”Minimal”-asennusvaihtoehdolla, sinun on asennettava ja määritettävä Apache ennen kuin jatkat. Lue ohjeet [Apachen asentamisesta ja määrittämisestä WordPressiä varten](https://www.ionos.com/fi-fi/digitalguide/palvelin/asetukset/apachen-asentaminen-ja-maeaerittaeminen-wordpressiae-varten/) aiheeseen liittyvästä artikkelistamme.

## Kuinka ottaa CGI-skriptit käyttöön Apache-asetuksissa

Jotta CGI-skriptejä voidaan suorittaa Linux-palvelimella, jossa on Apache, on määritettävä kaksi asiaa:

- Apache on määritettävä siten, että verkkopalvelin voi suorittaa CGI-skriptejä.
- Skripti on ladattava oikeaan sijaintiin ja sille on annettava oikeat käyttöoikeudet.

### Apache-asetukset CGI-skripteille CentOS-käyttöjärjestelmässä

Avaa Apache-määritystiedosto `httpd.conf` muokkausta varten:

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

Etsi kohta, jossa lukee:

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

Korvaa rivi `Options None` seuraavilla kahdella rivillä:

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

Ensimmäinen rivi ohjeistaa Apachea suorittamaan CGI-tiedostot, jotka on ladattu palvel `/var/www/cgi-bin directory`elle. Toinen rivi ohjeistaa Apachea pitämään kaikkia tiedostoja, joiden tiedostotunniste on .cgi, .pl (Perl-skripti) tai .py (Python-skripti), CGI-skripteinä.

Kohdan teksti kuuluu nyt seuraavasti:

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

Tallenna tiedosto ja sulje se. Käynnistä nyt Apache uudelleen, jotta muutokset tulevat voimaan:

```bash
sudo systemctl restart httpd
```

### Apachen asetukset CGI-skripteille Ubuntussa

Ubuntu-järjestelmissä, kuten Ubuntu 22.04:ssä, Apache on oletusarvoisesti määritetty sallimaan CGI-skriptien suorittaminen määritetyssä hakemist `/usr/lib/cgi-bin`. Sinun ei tarvitse muuttaa Apache-asetuksia. **Apache-CGI-moduuli on** kuitenkin **otettava käyttöön**, ennen kuin CGI-skriptejä voidaan suorittaa. Tätä varten sinun on luotava symlinkki (symbolinen linkki):

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

Käynnistä sitten Apache uudelleen, jotta muutokset tulevat voimaan:

```bash
sudo systemctl restart apache2
```

## CGI-skriptin lataaminen ja käyttöoikeuksien määrittäminen

Varmistaaksesi CGI-skriptin toimivuuden Apache-palvelimellasi, suosittelemme aloittamaan **testiskriptillä**. Luo tiedosto `test.cgi` palvelimen cgi-bin-kansioon ja avaa testiskripti muokattavaksi:

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

Lisää seuraava sisältö tähän tiedostoon:

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

Tallenna tiedosto ja sulje se. Anna tiedostolle seuraavassa vaiheessa**tarvittavat suoritusoikeudet**:

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

Huomio Näiden `chmod 755` parametrin avulla omistaja voi lukea, muokata ja suorittaa skriptin. Ryhmällä ja muilla käyttäjillä on lukuoikeudet sekä mahdollisuus suorittaa skripti.

Voit tarkastella skriptiä selaimessa joko verkkotunnuksen tai IP-osoitteen avulla:

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

Jos asennus onnistui, ruudulle ilmestyy viesti ”Hello world!”.

## CGI-skriptien virheiden vianmääritys

**404-virhe**: 404-virhe tarkoittaa, että URL-osoitetta ei löydy. Tarkista, että **skripti on lisätty oikeaan kansioon**.

- **CentOS:** Oletusarvoinen CGI-hakemisto on `var/www/cgi-bin/`
- **Ubuntu:** Oletusarvoinen CGI-hakemisto on `/usr/lib/cgi-bin`

**Palvelimen 500-virhe**: Kun virhe 500 ilmenee Apachen CGI-skripteissä, se johtuu yleensä siitä, että skriptillä ei ole oikeita käyttöoikeuksia. Tarkista, että skriptillä on suoritusoikeudet (chmod 755).


This is a markdown version of: [https://www.ionos.com/fi-fi/digitalguide/palvelin/asetukset/ota-cgi-skriptit-kaeyttoeoen-apache-palvelimessa/](https://www.ionos.com/fi-fi/digitalguide/palvelin/asetukset/ota-cgi-skriptit-kaeyttoeoen-apache-palvelimessa/) for AI/LLM consumption.