Τα σενάρια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 στο σχετικό άρθρο μας.

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

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

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

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

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

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

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

#
# "/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>
text

Αντικαταστήστε τη γραμμή Options None με τις ακόλουθες δύο γραμμές:

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

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

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

#
# "/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>
text

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

sudo systemctl restart httpd
bash

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

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

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

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

sudo systemctl restart apache2
bash

Πώς να ανεβάσετε ένα σενάριο 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

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

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

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

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

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

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

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

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

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

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

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

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

Go to Main Menu