WebSunucunuza CGI/PERL Nasıl Tanıtılır?


Burada anlatılanları uygulayabilmeniz için öncelikle bilgisayarınızda Apache, Personel Web Server, Xitami gibi websunuculardan biri çalışıyor olması gerekir.

Windows işletim sisteminde kurulu websunucuda Cgi/Perl programlarını çalıştırabilmek için http://www.activestate.com/ adresinden indirebileceğiniz ActivePerl programını bilgisayarınıza kurmanız gerekir. ActivePerl programını kurma işlemi sırasında kurulacağı klasörü c:\usr olarak değiştirirseniz ileride karşılaşılabilecek ufak tefek sorunlar kurtulmuş olursunuz. Bu sorunlar ; programların ilk satırını değiştirmek zorunda kalabilirsiniz, bu değişiklik windows için ayrı internette çalıştıracağınız dosya için ayrı olur ve her dosyanın ilk satırını tekrar değiştirmek zorunda kalabilirsiniz.

(Şunu da belirtmek uygun olur diye düşünüyorum : Windows işletim sisteminde Perl/Cgi programlarının mecburi olması gereken ilk satırları olmasa da veya yanlış yazılsa da çalışır. Bu şimdiye kadar denediğimiz tüm programlar için geçerli olmuştur. Yani program Websunucunuzda hata verirse bunun kaynağı ilk satırda olan hata değildir!)

ActivePerl programını yüklediğinizde program bilgisayara sadece *.pl dosyalarını tanıması için ayar yapar. *.cgi uzantılı dosyaları da çalıştırmak istiyorsanız bilgisayarın kayıt dosyasına ekleme yapmanız gerekir. Bu ekleme işlemi şu şekilde gerçekleşir :

>>Başlat >>Çalıştır
Burada Çalıştır`a regedit yazın ve enter`a tıklayın. Bu işlem ile bilgisayarın kayıt dosyası açılır. Açılan kayıt dosyasında ulaşmanız gereken bölüm:
>>HKEY_LOCAL_MACHINE >>SYSTEM >>CurrentControlSet >>Services >>W3SVC >>Parameters >>Script Map

Bu bölüme kadar geldikten sonra sağ kısımda görülen bölümde ".cgi" görülüyor mu? Eğer görülüyorsa .cgi yazan kısmın yanında Perl.exe dosyasının tam yolu olmalı.
Eğer .cgi yoksa mouse(fare)a sağ tıklayın. Yeni >> Dize Değeri ekleyin. Yeni oluşan dize değerine bir ad verin ve üzerine gelip iki kere tıklayın. Açılan pencerede Değer adı olarak dize değerine verdiğiniz ad yer alır.

 Hemen altında Değer Verisi yazan kısma c:\usr\bin\perl.exe %s%s yazın. Bu kısım ActivePerl programını kurduğunuz klasör içinde yer alan perl.exe yorumlayıcısının tam yolunu göstermektedir. Biz c:\usr dizinine kurduğumuzu kabul ettik.
Kayıt dosyasında yapılan bu değişiklikten sonra websunucuda perl/exe programlarını denememenizi öneririz. Bu, bilgisayarda oluşabilecek hataya sebep olabilir. Bu yüzden kayıt dosyasında yapılan değişiklikten sonra bilgisayarı kapayıp tekrar açmanız önerilir.

Program yazma işlemine başlayalım:

Program yazarken her programlama dilinde olduğu gibi kurallar vardır. Bu kurallardan bahsetmeden önce size bir öneri sunmak istiyoruz:

Eğer bir program yazmaya karar verdiyseniz önce onun nasıl bir program olacağına karar veriniz.
Daha sonra programın çalışma biçimini (eğer şu olursa şu olur olmazsa bu olur ... gibi) bir kağıt üzerine çıkarınız.. Kısaca programın algoritmasını çıkarınız. Bu işlem size program yazarken çok kolaylık sağlayacak ve zaman , beyin kullanımları açısından kazançlı çıkmanıza neden olacaktır.
*   Perl programlarının ilk satırı genelde #!/usr/bin/perl ile başlamalıdır. Bu satır "perl.exe" yorumlayıcısının serverdaki yerini belirtir. İstisnalar olup da perl yorumlayıcısının yeri farklı ise o zaman #!/usr/bin/perl satırı değişmelidir. Bu konuda kesin bilgiyi server admininden öğrenebileceğiniz gibi "whereis perl" unix komutuyla da öğrenebilirsiniz.
*   Perl, büyük - küçük harf ayırımı yapar.
*   # ile başlayan satırlar yorumlanmazlar. Onlar sadece açıklama olarak program içinde bulunurlar. ( İstisnalar vardır. Programın ilk satırı # ile başladığı halde bu satır mutlaka programların başında olmalıdır. )
*   Döngüler ve şartlı ifadelerin olmadığı yapıların sonunda noktalı virgül (;) kullanılır.
*   Ekrana yazı yazma komutu "print"tir. Bu komut cgi ve perl için geçerli olup, cgi programlarında "print" komutundan önce web sayfası ürettiğinden mutlaka
     print "Content-type:text/html\n\n";
satırı kullanılmalıdır. Bu satır web gezginine gelen verinin türünü belirtir.
*   Yazılan programları çalıştırmadan önce chmod ayarı yapılmalıdır.

Ekrana çıktı veren ilk PERL programı

#!/usr/bin/perl
print "internetdergisi\n";

Ekrana çıktı veren ilk CGI programı (html komutları kullanmadan)

#!/usr/bin/perl
print "Content-type:text/html\n\n";
print "internetdergisi\n";

Ekrana çıktı veren ilk CGI programı (html komutları kullanarak)

#!/usr/bin/perl
print "Content-type:text/html\n\n";
print "<html><head><title>test</title></head>\n";
print "<body>internetdergisi/body></html>\n";

Program yazarken özel bir karakter(",',@,%,$,/,&,# gibi) kullanılması gerekiyorsa \ işareti özel karakterden önce kullanılmalıdır.
Örnek olarak:
#!/usr/bin/perl
print "Content-type:text/html\n\n";
print "<html><head><title>test</title></head>\n";
print "<body><font face=\"Verdana\" size=\"1\">internetdergisi<br>\$değişken </font></body></html>\n";

Eğer html bölümü uzun olacaksa ve çok fazla özel karakter kullanılacaksa yukarıda belirtildiği gibi özel karakterlerden önce \ işareti koymak ve her satır için print komutunu yazmak zorluk çıkaracaktır. Hatalar artacaktır. O zaman burada şöyle bir komut sistemi kullanmak daha doğru olacaktır:

print <<HTMLKODLARI;
html kodları burada olacak ve \ işaretini kullanmaya gerek kalmayacaktır.
HTMLKODLARI
;

Örnek olarak:
#!/usr/bin/perl
print "Content-type:text/html\n\n";
print <<HTMLBOLUMU;
<html><head><title>test</title></head>
<body>
<font face="Verdana" size="2" color="#FFF00F">

Yorumlar

Popüler Yayınlar