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
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, 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:
sudo nano /etc/httpd/conf/httpd.confbashAtrodiet sadaļu, kurā teikts:
#
# "/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>textAizstājiet Options None rindu ar šīm divām rindām:
Options +ExecCGI
AddHandler cgi-script .cgi .pl .pytextPirmajā 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:
#
# "/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>textSaglabājiet failu un aizveriet to. Tagad pārstartējiet Apache, lai izmaiņas stātos spēkā:
sudo systemctl restart httpdbashApache 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):
sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/bashTad pārstartējiet Apache, lai izmaiņas stātos spēkā:
sudo systemctl restart apache2bashKā 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:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<h1>Hello world</h1>";textSaglabājiet failu un aizveriet to. Nākamajā solī piešķiriet failamnepiecieš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
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:
http://example.com/cgi-bin/test.cgi
http://192.168.0.1/cgi-bin/test.cgitextJa 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).