Bir önceki yazımda Pardus Linux üzerinde LPT kontrolünün nasıl yapılacağını anlatmıştım. Şimdi bu işi bir adım daha ileri götürerek paralel port kontrolünü PHP ile web sayfası üzerinden nasıl yapabileceğimize bakacağız.
İlk olarak apache ve php kurulumunu yapmalıyız. Sisteminizde apache ve mod_php kurulu değilse root’a geçtikten sonra aşağıdaki pisi komutu ile kurulumu kolayca gerçekleştirebilirsiniz.
pisi it apache mod_php -y
Bir önceki uygulamada komut satırını kullanarak derlediğimiz lptout programına parametre gönderiyorduk. Şimdi ise aynı komutu PHP içerisinden çalıştıracağız. PHP içinde sistem komutu çalıştırmak için shell_exec ve exec gibi komutlar var.
Bir önceki yazımda olduğu gibi, LPT’nin data gurubunun tüm pin’lerini +5v’a çekmek için PHP sayfasına yazılması gereken kod şöyle;
1 2 3 4 5 |
<?php shell_exec('sudo /home/tankado/lptout 0x378 255'); ?> |
Yukarıdaki PHP kodu /home/tankado dizini altındaki lptout programına 2 adet parametre göndererek çalıştırılmasını sağlıyor.
Yalnız ufak bir sıkıntımız var. Hatırlarsanız programı derlemek ve çalıştırmak için root yetkilerine sahip olmamız gerekiyordu. (Not: C kodundaki outb komutu doğrudan donanıma erişen bir komut olduğu için root yetkisine ihtiyaç duyuyor)
Biliyoruz ki bir PHP sayfası yetkilerini kendini tetikleyen apache kullanıcısından alır. (apache: Apache web sunucusunun yetkilerini belirleyen Pardus Linux hesabının adıdır) Dolayısıyla apache kullanıcısına root yetkilerine ihtiyaç duyan lptout’u çalıştırabilmesi için yetki vermek gerekiyor. Bu işi sudo aracını yapılandırarak yapacağız. Sudo aracının yapılandırma dosyası /etc/sudoers dosyasıdır. Bir metin editörü ile (vi, vim, nano, pico) bu dosyayı açarak (root yetkisi gerektirir) aşağıdaki satırı eklemek yeterli olacaktır.
apache ALL=NOPASSWD:/home/tankado/lptout
Eğer Pardus 2013 Kurumsal kullanıyorsanız apache yerine www-data kullanıcısını yetkilendirmelisiniz.
Yukarıdaki komut ile apache kullanıcsının lptout programını root yetkileri ile çalıştırabilmesine izin verdik.
Dilerseniz yukarıdaki PHP programını kolayca parametreli hale de getirebiliriz. Böylece tarayıcımızı kullanarak LPT portlarını istediğimiz gibi yönetebileceğiz. Hem de dünyanın her yerinden, her türlü web aygıttından. Aşağıdaki örneği inceleyin.
1 2 3 4 5 |
<php shell_exec('sudo /home/tankado/lptout '.$_GET['port_address'].' '.$_GET['value']); ?> |
Aşağıdaki gibi bir URL oluşturarak LPT’nin data gurubundaki tüm bitleri 1 yapıyoruz.
http://localhost/lpt_out.php?port_address=0x378&value=255
Bu yazıda bahsettiğim uygulamaya ait bir video kaydettim. Detaylı anlatım için aşağıdan izleyebilirsiniz. Umarım faydalı olur. Kolay gelsin.