# Kā aktivizēt CGI skriptus Apache

CGI skripti ir praktisks risinājums, lai samazinātu Apache tīmekļa servera slodzi. Nepieciešamās Apache konfigurācijas var ātri iestatīt, un atļauju piešķiršanas process direktorijam un CGI failiem ir vienkāršs.

## Kādas ir prasības CGI skriptiem Apache vidē?

Lai izmantotu **kopējo vārtejas interfeisu (CGI)** skriptu nosūtīšanai uz Apache tīmekļa serveri, ir nepieciešama šāda konfigurācija:

- mākoņpakalpojumu serveris vai virtuālais privātais serveris (VPS)
- Linux servera distribūcija, piemēram, CentOS 8 vai Ubuntu 22.04
- uzstādīts un darbojošs Apache tīmekļa serveris

Note Standarta Linux instalācijā Apache jau ir iepriekš instalēts. Ja jūsu serveris tika izveidots, izmantojot instalācijas opciju „Minimal“, pirms turpināt, jums būs jāinstalē un jākonfigurē Apache. Uzziniet, kā [instalēt un konfigurēt Apache WordPress vajadzībām](https://www.ionos.com/lv-lv/digitalguide/serveris/konfiguracija/ka-instalet-un-konfiguret-apache-wordpress-vajadzibam/), lasot mūsu saistīto rakstu.

## Kā iespējot CGI skriptus Apache konfigurācijās

Lai Linux serverī ar Apache varētu palaist CGI skriptus, ir jāveic divas darbības:

- Apache ir jākonfigurē tā, lai tīmekļa serveris varētu izpildīt CGI skriptus.
- Skripts ir jāaugšupielādē pareizajā vietā un tam ir jāpiešķir pareizās atļaujas.

### Apache iestatījumi CGI skriptiem CentOS vidē

Atveriet Apache konfigurācijas failu `httpd.conf`, lai to rediģētu:

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

Atrodiet sadaļu, kurā teikts:

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

Aizstājiet `Options None` rindu ar šīm divām rindām:

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

Pirmajā rindā Apache tiek norādīts izpildīt CGI failus, kas augšupielādēti uz `/var/www/cgi-bin directory`. Otrajā rindā Apache tiek norādīts, ka jebkurš fails ar paplašinājumu .cgi, .pl (Perl skripts) vai .py (Python skripts) tiek uzskatīts par CGI skriptu.

Tagad šajā sadaļā ir rakstīts:

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

Saglabājiet failu un aizveriet to. Tagad pārstartējiet Apache, lai izmaiņas stātos spēkā:

```bash
sudo systemctl restart httpd
```

### Apache iestatījumi CGI skriptiem Ubuntu vidē

Ubuntu sistēmās, piemēram, Ubuntu 22.04, Apache pēc noklusējuma ir konfigurēts tā, lai atļautu CGI skriptu izpildi norādītajā `/usr/lib/cgi-bin` direktorijā. Jums nav jāmaina nekādas Apache konfigurācijas. Tomēr, lai varētu izpildīt CGI skriptus, **ir jāaktivizē Apache CGI modulis**. Lai to izdarītu, jums būs jāizveido simboliska saite (symlink):

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

Tad pārstartējiet Apache, lai izmaiņas stātos spēkā:

```bash
sudo systemctl restart apache2
```

## Kā augšupielādēt CGI skriptu un iestatīt piekļuves tiesības

Lai pārbaudītu CGI skripta darbību jūsu Apache serverī, iesakām sākt ar **testa skriptu**. Izveidojiet failu `test.cgi` servera norādītajā cgi-bin mapē un atveriet testa skriptu rediģēšanai:

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

Pievienojiet šim failam šādu saturu:

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

Saglabājiet failu un aizveriet to. Nākamajā solī piešķiriet failam**nepieciešamās izpildes tiesības**:

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

Note Izmantojot `chmod 755` parametrus, skriptu var lasīt, rediģēt un izpildīt tā īpašnieks. Grupai un pārējiem lietotājiem ir lasīšanas tiesības un iespēja izpildīt skriptu.

Skatīt skriptu pārlūkprogrammā, izmantojot domēna vārdu vai IP adresi:

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

Ja uzstādīšana ir izdevusies, parādīsies ziņojums „Hello world!”.

## Kā novērst CGI skriptu kļūdas

**404 kļūda**: 404 kļūda nozīmē, ka URL nav atrodams. Pārbaudiet, vai **skripts ir pievienots pareizajā direktorijā**.

- **CentOS:** Noklusējuma CGI katalogs ir `var/www/cgi-bin/`
- **Ubuntu:** Noklusējuma CGI katalogs ir `/usr/lib/cgi-bin`

**Servera 500 kļūda**: ja Apache vidē saistībā ar CGI skriptiem parādās 500. kļūda, tas parasti notiek tādēļ, ka skriptam nav pareizās atļaujas. Pārbaudiet, vai skriptam ir izpildes atļaujas (chmod 755).


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