Kaip įjungti CGI skriptus „Apache“
CGI skriptai yra praktiškas sprendimas, padedantis sumažinti Apache žiniatinklio serverio apkrovą. Reikiamus Apache nustatymus galima greitai sukonfigūruoti, o leidimų suteikimo procesas katalogui ir CGI failams yra nesudėtingas.
Kokie reikalavimai keliami CGI skriptams „Apache“ aplinkoje?
Norėdami naudoti bendrąją vartų sąsają (CGI) skriptams siųsti į savo „Apache“ žiniatinklio serverį, turite atlikti šiuos nustatymus:
- debesų serveris arba virtualus privatus serveris (VPS)
- Linux serverio distribucija, pvz., CentOS 8 arba Ubuntu 22.04
- įdiegtas ir veikiantis „Apache“ žiniatinklio serveris
Standartinėje „Linux“ instaliacijoje „Apache“ jau yra įdiegta. Jei jūsų serveris buvo sukurtas pasirinkus minimalaus diegimo parinktį, prieš tęsdami turėsite įdiegti ir sukonfigūruoti „Apache“. Kaip įdiegti ir sukonfigūruoti „Apache“ „WordPress“ sistemai, sužinosite mūsų straipsnyje šia tema.
Kaip įjungti CGI skriptus „Apache“ konfigūracijose
Norint vykdyti CGI skriptus Linux serveryje su Apache, reikia atlikti du nustatymus:
- „Apache“ reikia sukonfigūruoti taip, kad žiniatinklio serveris galėtų vykdyti CGI scenarijus.
- Skriptas turi būti įkeltas į tinkamą vietą ir jam turi būti suteikti tinkami leidimai.
„Apache“ nustatymai CGI scenarijams „CentOS“ sistemoje
Atidarykite „Apache“ konfigūracijos failą httpd.conf redaguoti:
sudo nano /etc/httpd/conf/httpd.confbashRaskite skyrių, kuriame rašoma:
#
# "/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>textOptions None eilutę pakeiskite šiomis dviem eilutėmis:
Options +ExecCGI
AddHandler cgi-script .cgi .pl .pytextPirmoji eilutė nurodo „Apache“ vykdyti CGI failus, įkeltus į /var/www/cgi-bin directory. Antroji eilutė nurodo „Apache“, kad bet kuris failas, kurio plėtinys yra .cgi, .pl (Perl scenarijus) arba .py (Python scenarijus), laikomas CGI scenarijumi.
Šis skyrius dabar skamba taip:
#
# "/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>textIšsaugokite failą ir uždarykite jį. Dabar paleiskite „Apache“ iš naujo, kad pakeitimai įsigaliotų:
sudo systemctl restart httpdbash„Apache“ nustatymai CGI scenarijams „Ubuntu“ sistemoje
„Ubuntu“ sistemose, pavyzdžiui, „Ubuntu 22.04“, „Apache“ pagal numatytuosius nustatymus yra sukonfigūruotas taip, kad CGI scenarijai būtų vykdomi nurodytame kataloge /usr/lib/cgi-bin “. Jums nereikia keisti jokių „Apache“ nustatymų. Tačiau, norint vykdyti CGI scenarijus, reikia įjungti „Apache“ CGI modulį. Tam reikės sukurti simbolinę nuorodą (symlink):
sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/bashTada paleiskite „Apache“ iš naujo, kad pakeitimai įsigaliotų:
sudo systemctl restart apache2bashKaip įkelti CGI scenarijų ir nustatyti teises
Norėdami patikrinti CGI skripto veikimą savo „Apache“ serveryje, rekomenduojame pradėti nuo bandomojo skripto. Sukurkite failą test.cgi serveryje esančiame kataloge „cgi-bin“ ir atidarykite bandomąjį skriptą redaguoti:
- CentOS:
sudo nano /var/www/cgi-bin/test.cgi - Ubuntu:
sudo nano /usr/lib/cgi-bin/test.cgi
Į šį failą įtraukite šį turinį:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<h1>Hello world</h1>";textIšsaugokite failą ir uždarykite jį. Kitu žingsniu suteikite failuireikiamas vykdymo teises:
- CentOS:
sudo chmod 755 /var/www/cgi-bin/test.cgi - Ubuntu:
sudo chmod 755 /usr/lib/cgi-bin/test.cgi
Naudodamas chmod 755 parametrų, savininkas gali skaityti, redaguoti ir vykdyti scenarijų. Grupės nariai ir kiti vartotojai turi skaitymo teises bei galimybę vykdyti scenarijų.
Peržiūrėkite scenarijų naršyklėje, naudodami domeno vardą arba IP adresą:
http://example.com/cgi-bin/test.cgi
http://192.168.0.1/cgi-bin/test.cgitextJei nustatymas pavyko, ekrane pasirodys pranešimas „Hello world!“.
Kaip išspręsti CGI scenarijų klaidas
404 klaida: 404 klaida reiškia, kad URL nerastas. Patikrinkite, ar scenarijus įkeltas į tinkamą katalogą.
- CentOS: Numatytasis CGI katalogas yra
var/www/cgi-bin/ - Ubuntu: numatytasis CGI katalogas yra
/usr/lib/cgi-bin
Serverio 500 klaida: Kai naudojant CGI skriptus „Apache“ serveryje pasirodo 500 klaida, dažniausiai tai atsitinka dėl to, kad skriptui suteikti netinkami leidimai. Patikrinkite, ar skriptui suteikti vykdymo leidimai (chmod 755).