# Πώς να ενεργοποιήσετε τα σενάρια CGI στον Apache

Τα σενάριαCGI αποτελούν μια πρακτική λύση για τη μείωση του φόρτου εργασίας του διακομιστή ιστού Apache. Οι απαραίτητες ρυθμίσεις του Apache μπορούν να πραγματοποιηθούν γρήγορα, ενώ η διαδικασία χορήγησης δικαιωμάτων πρόσβασης στον κατάλογο και στα αρχεία CGI είναι απλή.

## Ποιες είναι οι απαιτήσεις για τα σενάρια CGI στον Apache;

Για να χρησιμοποιήσετε το **Common Gateway Interface (CGI)** για την αποστολή σεναρίων στον διακομιστή ιστού Apache, απαιτείται η ακόλουθη ρύθμιση:

- ένας διακομιστής cloud ή ένας εικονικός ιδιωτικός διακομιστής (VPS)
- μια διανομή διακομιστή Linux, όπως το CentOS 8 ή το Ubuntu 22.04
- ένας διακομιστής ιστού Apache που είναι εγκατεστημένος και λειτουργεί

Note Σε μια τυπική εγκατάσταση Linux, ο Apache είναι ήδη εγκατεστημένος. Εάν ο διακομιστής σας δημιουργήθηκε με την επιλογή «Ελάχιστη εγκατάσταση», θα πρέπει να εγκαταστήσετε και να διαμορφώσετε τον Apache πριν συνεχίσετε. Μάθετε πώς να [εγκαταστήσετε και να διαμορφώσετε τον Apache για το WordPress](https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/pos-na-egkatastisete-kai-na-rythmisete-ton-apache-gia-to-wordpress/) στο σχετικό άρθρο μας.

## Πώς να ενεργοποιήσετε τα σενάρια CGI στις ρυθμίσεις του Apache

Για να εκτελέσετε σενάρια CGI σε έναν διακομιστή Linux με Apache, πρέπει να ρυθμίσετε δύο πράγματα:

- Ο Apache πρέπει να ρυθμιστεί έτσι ώστε ο διακομιστής ιστού να μπορεί να εκτελεί σενάρια CGI.
- Το σενάριο πρέπει να μεταφορτωθεί στη σωστή θέση και να του δοθούν τα σωστά δικαιώματα.

### Ρυθμίσεις Apache για σενάρια CGI στο CentOS

Ανοίξτε το αρχείο ρυθμίσεων του Apache `httpd.conf` για επεξεργασία:

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

Βρείτε την παράγραφο που λέει:

```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` με τις ακόλουθες δύο γραμμές:

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

Η πρώτη γραμμή δίνει εντολή στον Apache να εκτελεί αρχεία CGI που έχουν μεταφορτωθεί στον `/var/www/cgi-bin directory`. Η δεύτερη γραμμή δίνει εντολή στον Apache να θεωρεί ως σενάριο CGI κάθε αρχείο με κατάληξη .cgi, .pl (σενάριο Perl) ή .py (σενάριο Python).

Το τμήμα έχει πλέον ως εξής:

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

Αποθηκεύστε το αρχείο και κλείστε το. Τώρα επανεκκινήστε τον Apache για να εφαρμοστούν οι αλλαγές:

```bash
sudo systemctl restart httpd
```

### Ρυθμίσεις Apache για σενάρια CGI στο Ubuntu

Σε συστήματα Ubuntu, όπως το Ubuntu 22.04, ο Apache είναι ρυθμισμένος εξ αρχής ώστε να επιτρέπει την εκτέλεση σεναρίων CGI στον καθορισμένο κατάλογο `/usr/lib/cgi-bin`. Δεν χρειάζεται να αλλάξετε καμία ρύθμιση του Apache. Ωστόσο, **η ενότητα CGI του Apache πρέπει να ενεργοποιηθεί** για να είναι δυνατή η εκτέλεση σεναρίων CGI. Για να το κάνετε αυτό, θα πρέπει να δημιουργήσετε έναν συμβολικό σύνδεσμο (symlink):

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

Στη συνέχεια, επανεκκινήστε τον Apache ώστε να εφαρμοστούν οι αλλαγές:

```bash
sudo systemctl restart apache2
```

## Πώς να ανεβάσετε ένα σενάριο CGI και να ορίσετε δικαιώματα πρόσβασης

Για να ελέγξετε τη λειτουργικότητα του σενάριου CGI στον διακομιστή Apache σας, σας συνιστούμε να ξεκινήσετε με ένα **δοκιμαστικό σενάριο**. Δημιουργήστε το αρχείο `test.cgi` στον καθορισμένο κατάλογο cgi-bin του διακομιστή και ανοίξτε το δοκιμαστικό σενάριο για επεξεργασία:

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

Προσθέστε το παρακάτω περιεχόμενο σε αυτό το αρχείο:

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

Αποθηκεύστε το αρχείο και κλείστε το. Στο επόμενο βήμα, παραχωρήστε στο αρχείο τα**απαραίτητα δικαιώματα εκτέλεσης**:

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

Note Χρησιμοποιώντας τις `chmod 755` παραμέτρους, ο ιδιοκτήτης μπορεί να διαβάσει, να επεξεργαστεί και να εκτελέσει το σενάριο. Η ομάδα και οι άλλοι χρήστες έχουν δικαίωμα ανάγνωσης και τη δυνατότητα να εκτελέσουν το σενάριο.

Δείτε το σενάριο σε ένα πρόγραμμα περιήγησης, χρησιμοποιώντας είτε το όνομα τομέα είτε τη διεύθυνση IP:

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

Εάν η εγκατάσταση ολοκληρώθηκε με επιτυχία, θα εμφανιστεί το μήνυμα «Hello world!».

## Πώς να επιλύσετε σφάλματα σε σενάρια CGI

**Σφάλμα 404**: Το σφάλμα 404 σημαίνει ότι η διεύθυνση URL δεν βρέθηκε. Βεβαιωθείτε ότι το **σενάριο έχει προστεθεί στον σωστό κατάλογο**.

- **CentOS:** Ο προεπιλεγμένος κατάλογος CGI είναι `var/www/cgi-bin/`
- **Ubuntu:** Ο προεπιλεγμένος κατάλογος CGI είναι `/usr/lib/cgi-bin`

**Σφάλμα 500 διακομιστή**: Όταν εμφανίζεται το σφάλμα 500 σε σχέση με σενάρια CGI στον Apache, αυτό οφείλεται συνήθως στο γεγονός ότι το σενάριο δεν διαθέτει τα σωστά δικαιώματα. Βεβαιωθείτε ότι το σενάριο έχει δικαιώματα εκτέλεσης (chmod 755).


This is a markdown version of: [https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/energopoiisi-senarion-cgi-ston-apache/](https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/energopoiisi-senarion-cgi-ston-apache/) for AI/LLM consumption.