Πώς να ενεργοποιήσετε τα σενάρια CGI στον Apache
Τα σενάριαCGI αποτελούν μια πρακτική λύση για τη μείωση του φόρτου εργασίας του διακομιστή ιστού Apache. Οι απαραίτητες ρυθμίσεις του Apache μπορούν να πραγματοποιηθούν γρήγορα, ενώ η διαδικασία χορήγησης δικαιωμάτων πρόσβασης στον κατάλογο και στα αρχεία CGI είναι απλή.
Ποιες είναι οι απαιτήσεις για τα σενάρια CGI στον Apache;
Για να χρησιμοποιήσετε το Common Gateway Interface (CGI) για την αποστολή σεναρίων στον διακομιστή ιστού Apache, απαιτείται η ακόλουθη ρύθμιση:
- ένας διακομιστής cloud ή ένας εικονικός ιδιωτικός διακομιστής (VPS)
- μια διανομή διακομιστή Linux, όπως το CentOS 8 ή το Ubuntu 22.04
- ένας διακομιστής ιστού Apache που είναι εγκατεστημένος και λειτουργεί
Σε μια τυπική εγκατάσταση Linux, ο Apache είναι ήδη εγκατεστημένος. Εάν ο διακομιστής σας δημιουργήθηκε με την επιλογή «Ελάχιστη εγκατάσταση», θα πρέπει να εγκαταστήσετε και να διαμορφώσετε τον Apache πριν συνεχίσετε. Μάθετε πώς να εγκαταστήσετε και να διαμορφώσετε τον Apache για το WordPress στο σχετικό άρθρο μας.
Πώς να ενεργοποιήσετε τα σενάρια CGI στις ρυθμίσεις του Apache
Για να εκτελέσετε σενάρια CGI σε έναν διακομιστή Linux με Apache, πρέπει να ρυθμίσετε δύο πράγματα:
- Ο Apache πρέπει να ρυθμιστεί έτσι ώστε ο διακομιστής ιστού να μπορεί να εκτελεί σενάρια CGI.
- Το σενάριο πρέπει να μεταφορτωθεί στη σωστή θέση και να του δοθούν τα σωστά δικαιώματα.
Ρυθμίσεις Apache για σενάρια CGI στο CentOS
Ανοίξτε το αρχείο ρυθμίσεων του Apache httpd.conf για επεξεργασία:
sudo nano /etc/httpd/conf/httpd.confbashΒρείτε την παράγραφο που λέει:
#
# "/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 .pytextΗ πρώτη γραμμή δίνει εντολή στον 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 httpdbashΡυθμίσεις 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 apache2bashΠώς να ανεβάσετε ένα σενάριο 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
Χρησιμοποιώντας τις chmod 755 παραμέτρους, ο ιδιοκτήτης μπορεί να διαβάσει, να επεξεργαστεί και να εκτελέσει το σενάριο. Η ομάδα και οι άλλοι χρήστες έχουν δικαίωμα ανάγνωσης και τη δυνατότητα να εκτελέσουν το σενάριο.
Δείτε το σενάριο σε ένα πρόγραμμα περιήγησης, χρησιμοποιώντας είτε το όνομα τομέα είτε τη διεύθυνση IP:
http://example.com/cgi-bin/test.cgi
http://192.168.0.1/cgi-bin/test.cgitextΕάν η εγκατάσταση ολοκληρώθηκε με επιτυχία, θα εμφανιστεί το μήνυμα «Hello world!».
Πώς να επιλύσετε σφάλματα σε σενάρια CGI
Σφάλμα 404: Το σφάλμα 404 σημαίνει ότι η διεύθυνση URL δεν βρέθηκε. Βεβαιωθείτε ότι το σενάριο έχει προστεθεί στον σωστό κατάλογο.
- CentOS: Ο προεπιλεγμένος κατάλογος CGI είναι
var/www/cgi-bin/ - Ubuntu: Ο προεπιλεγμένος κατάλογος CGI είναι
/usr/lib/cgi-bin
Σφάλμα 500 διακομιστή: Όταν εμφανίζεται το σφάλμα 500 σε σχέση με σενάρια CGI στον Apache, αυτό οφείλεται συνήθως στο γεγονός ότι το σενάριο δεν διαθέτει τα σωστά δικαιώματα. Βεβαιωθείτε ότι το σενάριο έχει δικαιώματα εκτέλεσης (chmod 755).