İçeriğe geç

Apache2 üzerinde Bash Script çalıştırmak

Apache HTTP Sunucusu Linux, UNIX, Windows ve birçok diğer platformlar için bir web sunucusu yazılımıdır. Ancak, Apache kullanan web sunucularının çoğunluğu Linux / Unix benzeri bir işletim sistemi kullanıyor . Apache, C programlama dilinde yazılmıştır . Apache, statik içerik (resimler, javascript’ler) ve php , perl , python tarafından oluşturulan dinamik Web sayfalarını sunmak için kullanılır . Birçok açık kaynak web uygulaması, Apache’nin sağladığı ortamı ve özellikleri beklemek üzere tasarlanmıştır.

Apache üzerinden basit bash scriptler çalıştırarak  sunucu kontrolünü daha etkin sağlayabilirsiniz. Bunun için belli başlı ayarlar var. Gelin hep birlikte bu ayarlara göz atalım.

1. Apache conf dosyalarının düzenlenmesi

/etc/apache2/sites-available/default 

Kısmından </Directory> kısımlarının arasında kalan yetkilendirme ayarlarını düzenleyin.


ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory “/usr/lib/cgi-bin”>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

/var/www/html altında bir site yayınlıyorsanız  <Directory “/işaret/edilen/yol”> bu kısmı aynı bırakıp soft link ile cgi-bin  html dizininin altına alailirsiniz.

ln -s /usr/lib/cgi-bin  /var/www/html/

Daha sonra aşağıdaki  komutu uygulayarak çalıştırılabilir hale getiriyoruz.

sudo a2enmod cgi
sudo service apache2 restart

2. CGI hakkında ve Deneme

CGI (Ortak Ağ Geçidi Arabirimi), bir web sunucusunun genellikle CGI programları veya CGI komut dosyaları olarak adlandırılan harici içerik oluşturucu programlarla etkileşime girmesinin bir yolunu tanımlar. En çok tanıdığınız programlama dilini kullanarak web sitenize dinamik içerik koymak için basit bir yoldur. 

cgi mimarisi

Şimdi bir betik hazırlayacağız. Ve bu betik /usr/lib/cgi-bin/ dizinin altında bulunacak.


#!/bin/bash
echo "Content-type: text/html"
echo ""
echo '<html>'
echo '<head>'
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'
echo '<title>Hello World</title>'
echo '</head>'echo '<body>'
echo 'Merhaba'
echo '</body>'
echo '</html>'
exit 0
nano ile düzenlenmiş betik örneği

bu  betiğimizi kayedediyoruz ve çalıştırılabilmesi için yetkilerini veriyoruz.


sudo chmod 751 merhaba.sh

sudo chown www-data:www-data merhaba.sh

Şimdi tarayıcıdan yolunu göstererek betiğimizi test ediyoruz. Bu site için hazırladığımız örnek  https://deney.site/cgi-bin/merhaba.sh


Bu site için hazırlamış olduğum sistem durumu hakkında bilgi veren betiğe buradan ulaşabiliriz.

NOT: Bash betikleme CGI tipik olarak, tam gelişmiş profesyonel yüksek trafik web sitelerinden ziyade basit sistem raporlaması için kullanılır.

Tarih:Linux