# Kaip įjungti CGI skriptus „Apache“

CGI skriptai yra praktiškas sprendimas, padedantis sumažinti Apache žiniatinklio serverio apkrovą. Reikiamus Apache nustatymus galima greitai sukonfigūruoti, o leidimų suteikimo procesas katalogui ir CGI failams yra nesudėtingas.

## Kokie reikalavimai keliami CGI skriptams „Apache“ aplinkoje?

Norėdami naudoti **bendrąją vartų sąsają (CGI)** skriptams siųsti į savo „Apache“ žiniatinklio serverį, turite atlikti šiuos nustatymus:

- debesų serveris arba virtualus privatus serveris (VPS)
- Linux serverio distribucija, pvz., CentOS 8 arba Ubuntu 22.04
- įdiegtas ir veikiantis „Apache“ žiniatinklio serveris

Note Standartinėje „Linux“ instaliacijoje „Apache“ jau yra įdiegta. Jei jūsų serveris buvo sukurtas pasirinkus minimalaus diegimo parinktį, prieš tęsdami turėsite įdiegti ir sukonfigūruoti „Apache“. Kaip [įdiegti ir sukonfigūruoti „Apache“ „WordPress“ sistemai](https://www.ionos.com/lt-lt/digitalguide/serveris/konfiguracija/kaip-idiegti-ir-sukonfiguruoti-apache-wordpress-sistemai/), sužinosite mūsų straipsnyje šia tema.

## Kaip įjungti CGI skriptus „Apache“ konfigūracijose

Norint vykdyti CGI skriptus Linux serveryje su Apache, reikia atlikti du nustatymus:

- „Apache“ reikia sukonfigūruoti taip, kad žiniatinklio serveris galėtų vykdyti CGI scenarijus.
- Skriptas turi būti įkeltas į tinkamą vietą ir jam turi būti suteikti tinkami leidimai.

### „Apache“ nustatymai CGI scenarijams „CentOS“ sistemoje

Atidarykite „Apache“ konfigūracijos failą `httpd.conf` redaguoti:

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

Raskite skyrių, kuriame rašoma:

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

`Options None` eilutę pakeiskite šiomis dviem eilutėmis:

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

Pirmoji eilutė nurodo „Apache“ vykdyti CGI failus, įkeltus į `/var/www/cgi-bin directory`. Antroji eilutė nurodo „Apache“, kad bet kuris failas, kurio plėtinys yra .cgi, .pl (Perl scenarijus) arba .py (Python scenarijus), laikomas CGI scenarijumi.

Šis skyrius dabar skamba taip:

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

Išsaugokite failą ir uždarykite jį. Dabar paleiskite „Apache“ iš naujo, kad pakeitimai įsigaliotų:

```bash
sudo systemctl restart httpd
```

### „Apache“ nustatymai CGI scenarijams „Ubuntu“ sistemoje

„Ubuntu“ sistemose, pavyzdžiui, „Ubuntu 22.04“, „Apache“ pagal numatytuosius nustatymus yra sukonfigūruotas taip, kad CGI scenarijai būtų vykdomi nurodytame kataloge `/usr/lib/cgi-bin` “. Jums nereikia keisti jokių „Apache“ nustatymų. Tačiau, norint vykdyti CGI scenarijus, **reikia įjungti „Apache“ CGI modulį**. Tam reikės sukurti simbolinę nuorodą (symlink):

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

Tada paleiskite „Apache“ iš naujo, kad pakeitimai įsigaliotų:

```bash
sudo systemctl restart apache2
```

## Kaip įkelti CGI scenarijų ir nustatyti teises

Norėdami patikrinti CGI skripto veikimą savo „Apache“ serveryje, rekomenduojame pradėti nuo **bandomojo skripto**. Sukurkite failą `test.cgi` serveryje esančiame kataloge „cgi-bin“ ir atidarykite bandomąjį skriptą redaguoti:

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

Į šį failą įtraukite šį turinį:

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

Išsaugokite failą ir uždarykite jį. Kitu žingsniu suteikite failui**reikiamas vykdymo teises**:

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

Note Naudodamas `chmod 755` parametrų, savininkas gali skaityti, redaguoti ir vykdyti scenarijų. Grupės nariai ir kiti vartotojai turi skaitymo teises bei galimybę vykdyti scenarijų.

Peržiūrėkite scenarijų naršyklėje, naudodami domeno vardą arba IP adresą:

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

Jei nustatymas pavyko, ekrane pasirodys pranešimas „Hello world!“.

## Kaip išspręsti CGI scenarijų klaidas

**404 klaida**: 404 klaida reiškia, kad URL nerastas. Patikrinkite, ar **scenarijus įkeltas į tinkamą katalogą**.

- **CentOS:** Numatytasis CGI katalogas yra `var/www/cgi-bin/`
- **Ubuntu:** numatytasis CGI katalogas yra `/usr/lib/cgi-bin`

**Serverio 500 klaida**: Kai naudojant CGI skriptus „Apache“ serveryje pasirodo 500 klaida, dažniausiai tai atsitinka dėl to, kad skriptui suteikti netinkami leidimai. Patikrinkite, ar skriptui suteikti vykdymo leidimai (chmod 755).


This is a markdown version of: [https://www.ionos.com/lt-lt/digitalguide/serveris/konfiguracija/ijunkite-cgi-skriptus-apache/](https://www.ionos.com/lt-lt/digitalguide/serveris/konfiguracija/ijunkite-cgi-skriptus-apache/) for AI/LLM consumption.