uygulanan etiketler: linux
pengeunpedi pengeunpedi pengeunpedi
  penguenyuvasi   pengulog   arşiv   bulut   rss

apache mpm_prefork module

Friday, May 1, 2009 9:16:58 PM tarihinde Fırat KÜÇÜK tarafından gönderildi.

PHP ile program yazanlar apache sunucusuna ve Apache'ye ait mpm_prefork modülüne kulak aşinalıkları vardır. Gerçi modül diyoruz ama an itibari ile Ubuntu'da prefork modülünü yüklediğimizde /usr/sbin içindeki ana çalıştırılabilir dosya olan apache2'nin değiştiğini gördüm. Windows'ta bu yapıyı test etmedim. Windows'ta çalışma kipleri arasında geçiş nasıl sağlanıyor bir malumatım yok.

Sunucu taraflı dil olarak PHP ve sunucu olarak Apache kullanıyorsanız. PHP dilinin getirmiş olduğu çeşitli sunucu taraflı kısıtlamaların bulunduğunu söylemeliyim. Tabi bu PHP geliştiricilerini üzmesin. PHP oldukça sade ve hızlı bir dil. Büyük destekçileri olduğunu biliyorum. :)

Konunun evveliyatına deyinirsek; Daha önceki teknoloji olan CGI (Common Gateway Interface)'da benzer bir metod ile işlem yapıyordu. CGI ile yazılan uygulamaları hep harika ve daha zevkli bulmuşumdur. :) Şahsi kanaatim bir web programcısı diğer dillere geçmeden öncelikle CGI ile program yazmalıdır. Bu web uygulamalarının çalışma mantığı hakkında olabildiğince fikir sahibi olmamımızı sağlar.

Uç birim/Konsol uygulamaları ya da diğer bir değişle siyah ekranlarımız için yazdığımız uygulamaların çalışma mekaniği aynıdır. Konsol uygulamaları Standart Çıktı (Standart Output) ve Standart Girdi (Standart Input) ile etkileşirler. Ekrana yazacağımız şeyleri standart çıktıya aktarırız. Ekrandan okunan şeyler ise standart girdiden okunur. Sistemde küresel bir değişken varsa bunlar da çevresel değişkenler sayesinde elde edilir.

<?php echo(readline("Yazı: ")); ?>

Yukarıdaki örnek standart girdiden okuyup, standart çıktıya yazan bir PHP programıdır. Uzun lafın kısası CGI bu tarz uygulamalar için bir arabirim sunar. Web sunucu ile girdi ve çıktı aygıtları arasında. Siz HTTP üst bilgi başlıkları (Header) dahil olmak üzere tüm sisteme hakim olursunuz.

Apache üzerinde PHP CGI kipinde çalışabildiği gibi, mod_php üzerinde de çalışabilmekte: PHP'i CGI olarak çalıştırmak istersek:

.htaccess dosyasına;

Allow from       All
Options          ExecCGI
AddHandler       cgi-script .php

test.php dosyasına:

#!/usr/bin/php
<?php
echo("Content-type: text/plain\n\n");
echo("merhaba");
?>

Dosya CLI interpreter tarafından işleneceğinden çalıştırma yetkilerine sahip olması gereklidir. Çocuk süreç alt bir süreç daha oluşturup yorumlayıcıyı çağırır.

root     15016  0.0  0.3  33908  3124 ?        Rs   May01   0:00 /usr/sbin/apache2 -k start
www-data 15021  0.0  0.1  34528  1784 ?        S    May01   0:00  \_ /usr/sbin/apache2 -k start
www-data 27404  0.5  0.4  31164  4596 ?        R    May01   0:00  |   \_ /usr/bin/php /var/www/test.php

PHP gerek mod_php ile çalışsın gerekse mod_cgi ile temeldeki Apache çalışma sistematiği mpm_prefork modülü üzerine olacaktır. Bu her talep için ayrı bir çocuk sürecin hizmet etmesi manasına gelir. Fakat mod_php ile çalışırken ek bir çocuk süreç daha olmayacağından ve çıktı/girdi aygıtlarını kullanmayacağından uygulamanın daha hızlı çalışacağını söyleyebiliriz.

inceleme, linux, phpkaynak | yorumlar [1]


great expectations: expect

Saturday, July 7, 2007 4:52:00 AM tarihinde Fırat KÜÇÜK tarafından gönderildi.

GUI scriptin yani KGA tabanlı betik programlama bir çok konu da derde deva. Örneğin uzak bir sunucuya SSH ile bağlanıyor bir dizi işlem yapıp çıkıyorsunuz. Yada bir anonim ftp'ye bağlanıp bir çok işlem yapıp geri dönüyorsunuz. Bu işleri otomatik hale getirmek expect ile olabildiğince kolay.

#!/usr/bin/expect -f

spawn ftp $argv
expect "Name"
send "anonymous\r"
expect "Password:"
send "anonymous\r"
expect "ftp> "
send "ls\n"
interact

Bu programı aftp.exp olarak kaydedip çalıştırılabilir dosya yetkisi verelim.

pismikrop@minik:~/Desktop$ ./aftp.exp ftp.linux.org.tr
spawn ftp ftp.linux.org.tr
Connected to ftp.linux.org.tr.
220 ftp.linux.org.tr
Name (ftp.linux.org.tr:pismikrop): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x    5 1005     1006         1024 May 26 20:56 pub
226 Directory send OK.
ftp>

Şahsen SSH ile uzaktaki sistem yedeklerini almak için key-agent kullanmaktan çok daha akıllıca bir durum. Bir expect betiği ile SSH'a bağlanıp, istediğiniz dizinleri yedek alabilirsiniz. Daha sonra ssh'dan çıkıp sftp kanalı ile kendi sisteminize aktarabilirsiniz.

Böyle bir periodik işlem için Cron kullanmanıza da gerek yok. "fork" ile bir alt process oluşturup. sleep ile alt süreci istediğiniz kadar bekletebilirsiniz. Böylelikle tek bir program çalıştırarak günlük işlemlerinizi halletmiş olursunuz.

Bu kadar da değil:

set send_human {.1 .3 1 .05 2}
send -h "Çok açım yemeğe gidelim mi?\n"

Bu ifade yazışmalarınızda; karşınızda biri klavye kullanıyormuş havası vermeye yarar. expect komutu ile karşıdaki kişiden gelen yanıta göre sohbeti dallandırabilirsiniz.

Expect'in tcl ve python modülü de bulunmakta.

atölye, bash, inceleme, linuxkaynak | yorumlar [0]


ben de burdayım

Wednesday, March 21, 2007 9:58:00 AM tarihinde Fırat KÜÇÜK tarafından gönderildi.

Macintosh'un "hello i am a pc and i am a mac" ile başlıyan reklamlarını biliyorsunuzdur heralde. Bilmiyorsanız [[http://www.youtube.com/results?search_query=apple+mac+pc+commercial&search=Search|youtube]]'dan hemen izleyin derim. E novell de boş durmamış. Bu reklamlara linux'u da eklemiş :)

eğlencelik, linux, mac, windowskaynak | yorumlar [0]


penguen

Monday, February 26, 2007 7:03:00 AM tarihinde Fırat KÜÇÜK tarafından gönderildi.

Penguen Güvenlidir.

Penguen diğer işletim sistemlerine karşı asil duruşunu kaybetmez.

Penguen kültürlüdür.

Penguen teknolojinin yanındadır. (Görüldüğü üzere yanında)

Penguen Galatasaraylıdır.

Bana penguen alarak beni böyle işler yapmaya sevkeden sevgili kardeşim Boğaç'a sonsuz teşekkürler. :)

eğlencelik, linuxkaynak | yorumlar [4]


solaris bana çok yakışıyor :)

Monday, December 25, 2006 12:40:00 AM tarihinde Fırat KÜÇÜK tarafından gönderildi.

Bugün gnu/solaris nexenta'nın vmware player'da çalışan sürümünü indirdim. Monolithic kernel, Ubuntu depoları... itiraf edeyim ki; Linux'tan pek farkı yok. Asıl merak ettiğin Sun Java Desktop. Bakalım bir gün onu da inceleyebilecek miyim? Bu arada devlet baba bize bir tablet pc hediye etti. Allah devlete millete zeval vermesin. :) Tabi ona da linux kurup izlenimlerimi yakında aktarıcam buradan. Fakat konumuz Solaris olduğuna göre biraz daha değineyim.

Solaris ilk çıktığı zaman BSD türevi bir işletim sistemiydi. Daha sonraları o da büyüdü, gelişti ve her akıllı yazılım gibi kaynak kodlarını açtı. Mark shuttleworth ilk afrikalı uzay turisti (Bizim Turist Ömerimiz var o ayrı.) ve ubuntu'nun babası nihayet bu işe de el attı ve evrensel işletim sistemi Debian'ın çoktan yapması gereken şeyi yaptı; Gnu/Solaris. Tabi bunu RMS okusaydı. O tüy yumağı sakallarının altından pis pis sırıtırdı. RMS'i takip edenler bilirler her fırsatta Gnu/Linux demekten bıkmaz. Belki de doğrusu da odur. Fakat RMS'in yeni zevki Gnu/Solaris demek. E ne dielim yakında Gnu/Hurd'ü de görürüz inşallah.

inceleme, linux, solariskaynak | yorumlar [0]




<<  1  2  3  >  >>  


pengulog

her hakkı erkektir © 2008 e-posta