Kuinka ottaa CGI-skriptit käyttöön Apache-palvelimessa
CGI- skriptit ovat kätevä tapa keventää Apache-verkkopalvelimen kuormitusta. Tarvittavat Apache-asetukset voidaan määrittää nopeasti, ja hakemiston sekä CGI-tiedostojen käyttöoikeuksien myöntäminen on helppoa.
Mitkä ovat CGI-skriptien vaatimukset Apache-palvelimella?
Jotta voit käyttää Common Gateway Interface (CGI) -rajapintaa skriptien lähettämiseen Apache-verkkopalvelimellesi, tarvitset seuraavan kokoonpanon:
- pilvipalvelin tai virtuaalinen yksityispalvelin (VPS)
- Linux-palvelinjakelu, kuten CentOS 8 tai Ubuntu 22.04
- asennettu ja käynnissä oleva Apache-verkkopalvelin
Apache on valmiiksi asennettu tavallisessa Linux-asennuksessa. Jos palvelimesi on luotu ”Minimal”-asennusvaihtoehdolla, sinun on asennettava ja määritettävä Apache ennen kuin jatkat. Lue ohjeet Apachen asentamisesta ja määrittämisestä WordPressiä varten aiheeseen liittyvästä artikkelistamme.
Kuinka ottaa CGI-skriptit käyttöön Apache-asetuksissa
Jotta CGI-skriptejä voidaan suorittaa Linux-palvelimella, jossa on Apache, on määritettävä kaksi asiaa:
- Apache on määritettävä siten, että verkkopalvelin voi suorittaa CGI-skriptejä.
- Skripti on ladattava oikeaan sijaintiin ja sille on annettava oikeat käyttöoikeudet.
Apache-asetukset CGI-skripteille CentOS-käyttöjärjestelmässä
Avaa Apache-määritystiedosto httpd.conf muokkausta varten:
sudo nano /etc/httpd/conf/httpd.confbashEtsi kohta, jossa lukee:
#
# "/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>textKorvaa rivi Options None seuraavilla kahdella rivillä:
Options +ExecCGI
AddHandler cgi-script .cgi .pl .pytextEnsimmäinen rivi ohjeistaa Apachea suorittamaan CGI-tiedostot, jotka on ladattu palvel /var/www/cgi-bin directoryelle. Toinen rivi ohjeistaa Apachea pitämään kaikkia tiedostoja, joiden tiedostotunniste on .cgi, .pl (Perl-skripti) tai .py (Python-skripti), CGI-skripteinä.
Kohdan teksti kuuluu nyt seuraavasti:
#
# "/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>textTallenna tiedosto ja sulje se. Käynnistä nyt Apache uudelleen, jotta muutokset tulevat voimaan:
sudo systemctl restart httpdbashApachen asetukset CGI-skripteille Ubuntussa
Ubuntu-järjestelmissä, kuten Ubuntu 22.04:ssä, Apache on oletusarvoisesti määritetty sallimaan CGI-skriptien suorittaminen määritetyssä hakemist /usr/lib/cgi-bin. Sinun ei tarvitse muuttaa Apache-asetuksia. Apache-CGI-moduuli on kuitenkin otettava käyttöön, ennen kuin CGI-skriptejä voidaan suorittaa. Tätä varten sinun on luotava symlinkki (symbolinen linkki):
sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/bashKäynnistä sitten Apache uudelleen, jotta muutokset tulevat voimaan:
sudo systemctl restart apache2bashCGI-skriptin lataaminen ja käyttöoikeuksien määrittäminen
Varmistaaksesi CGI-skriptin toimivuuden Apache-palvelimellasi, suosittelemme aloittamaan testiskriptillä. Luo tiedosto test.cgi palvelimen cgi-bin-kansioon ja avaa testiskripti muokattavaksi:
- CentOS:
sudo nano /var/www/cgi-bin/test.cgi - Ubuntu:
sudo nano /usr/lib/cgi-bin/test.cgi
Lisää seuraava sisältö tähän tiedostoon:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<h1>Hello world</h1>";textTallenna tiedosto ja sulje se. Anna tiedostolle seuraavassa vaiheessatarvittavat suoritusoikeudet:
- CentOS:
sudo chmod 755 /var/www/cgi-bin/test.cgi - Ubuntu:
sudo chmod 755 /usr/lib/cgi-bin/test.cgi
Näiden chmod 755 parametrin avulla omistaja voi lukea, muokata ja suorittaa skriptin. Ryhmällä ja muilla käyttäjillä on lukuoikeudet sekä mahdollisuus suorittaa skripti.
Voit tarkastella skriptiä selaimessa joko verkkotunnuksen tai IP-osoitteen avulla:
http://example.com/cgi-bin/test.cgi
http://192.168.0.1/cgi-bin/test.cgitextJos asennus onnistui, ruudulle ilmestyy viesti ”Hello world!”.
CGI-skriptien virheiden vianmääritys
404-virhe: 404-virhe tarkoittaa, että URL-osoitetta ei löydy. Tarkista, että skripti on lisätty oikeaan kansioon.
- CentOS: Oletusarvoinen CGI-hakemisto on
var/www/cgi-bin/ - Ubuntu: Oletusarvoinen CGI-hakemisto on
/usr/lib/cgi-bin
Palvelimen 500-virhe: Kun virhe 500 ilmenee Apachen CGI-skripteissä, se johtuu yleensä siitä, että skriptillä ei ole oikeita käyttöoikeuksia. Tarkista, että skriptillä on suoritusoikeudet (chmod 755).