CentOS üzerine MySQL Virtual Host Tabanlı LightSpeed Kurulumu

Lighttpd / Light Speed
Adı gibi kendisi de hafif olan bu web sunucusu dünyanın pek çok servis sağlayıcısı tarafından tercih edilmeye başlandı. Hatta YouTube gibi büyük ölçekli siteler de web sunucusu olarak bu yazılımı kullanmaya başladılar. DOS ve DDOS saldırılarına karşı çok iyi derecede optimize edilebilir olması ve kaynakları çok fazla tüketmemesi ile tanınan bu sunucunun MySQL Virtual Host destekli kurulumunu anlatacağım.
MySQL Virtual Host Nedir?
MySQL Virtual Host, Light Speed içerisinde yer alan bir eklentidir. Bu eklenti ile Virtual Host (Sanal Konak) tanımlarınızı veritabanında yer alacak küçük bir tablo içerisine gireceğiniz bir kayıt ile hızlıca ekleyebilirsiniz.
Kurulum
Öncelikle Light Speed sunucumuz, MySQL ve PHP destekli olarak kurulacak. Sisteminizde MySQL sunucusunun daha önce kurulmuş olduğunu varsayıyorum. Burada yine kullanacağımız yum ve ayar dosyalarındaki bir kaç parametre değişikliği. Başlayalım;
yum instal lighttpd lighttpd-fastcgi php-cli php-mysql php-gd php-imap php-ldap php-odbc php-xml php-xmlrpc
yum ile lighttpd, php-fastcgi, php-mysql ve ihtiyaç duyacağımız diğer php kütüphaneleri de ekleyerek kurulumu gerçekleştirdik. Şimdi ayarlamalara geçelim. İlk önce /etc/php.ini içerisine cgi.fix_pathinfo = 1 gibi küçük bir değer gireceğiz. Bunun için vi veya diğer bir metin editörü kullanabilirsiniz;
vi /etc/php.ini
ve dosyanın en sonuna değeri girelim :
cgi.fix_pathinfo = 1
sonra da kaydedip çıkalım. Lighttpd ve PHP basitçe kuruldu. Light Speed’in giriş dizini, varsayılan olarak /srv/www/lighttpd şeklindedir. Şimdi buraya bir index.html dosyası oluşturalım. Bunun için echo komutu bize yeterli gelir;
echo ‘Test sayfamız’ > /srv/www/lighttpd/index.html
Dosyamızı da oluşturduktan sonra; lighttpd restart ederek ve chkconfig ile başlangıçta çalışmasını sağlayarak yolumuza devam edelim;
service lighttpd restart
chkconfig –levels 235 lighttpd
Sunucunuzun hangi ip ile çalıştığını siz daha iyi bilirsiniz, benim makinemde 192.168.1.101 olarak tanımlanmış durumda. Adres satırına 192.168.1.101 yazdığımız zaman (siz kendi makinenizin ip adresinizi yazın) lighttpd çalışıyor olarak göreceksiniz.
Şimdi Light Speed ayar dosyası içerisinden fastcgi modülünü etkinleştireceğiz. İşlem yapacağımız dosya /etc/lighttpd/conf.d/fastcgi.conf konumunda, vi yardımı ile açalım;
vi /etc/lighttpd/conf.d/fastcgi.conf
ve içerisindeki satırları şu şekilde düzenleyelim;
fastcgi.server = ( “.php” =>
( “localhost” =>
(
“socket” => “/var/run/lighttpd/php-fastcgi.socket”,
“bin-path” => “/usr/bin/php-cgi”,
)
)
)
Bu işlemleri yaptıktan sonra, /var/run/lighttpd dizini yoksa oluşturalım ve lighttpd grup ve kullanıcısına bir izin yazalım;
mkdir -p /var/run/lighttpd
chown -R lighttpd:lighttpd /var/run/lighttpd
chmod 755 /var/run/lighttpd
İşlemimiz ilk adımda tamam, daha önce zaten php.ini içerisine gerekli değişikliği yapmıştık. Şimdi bir index.php dosyası oluşturup yine /srw/www/lighttpd içerisine yerleştirelim ve bir restart daha yapalım;
echo ‘<? phpinfo(); ?>’ > /srv/www/lighttpd/index.php
service lighttpd restart
Şimdi tekrar adres satırımıza gidip index.php dosyamızı çağıralım;
Gördüğümüz gibi PHP/FastCGI ve Light Speed/Lighttpd kurulumumuz tamamlanmış bulunuyor. PhpInfo sayfasını inceleyerek php ile ilgili eksikliklerinizi tamamlayabileceğinizi düşünüyorum. Gerçi kurulumumuz neredeyse PHP ile ihtiyaç duyacağımız standart kütüphanelerin hepsini kapsıyordu fakat yine de kişisel tercihleriniz farklı yönlerde olabilir. PHP-GD ve PHP-MYSQL en temel iki kütüphane PHPInfo sayfanızda yer alıyorsa şu ana kadar sorunsuz ilerlemişiz demektir.
Lighttpd MySQL Tabanlı Virtual Host Kullanılması (MySQL-based vhosting)
Siz dilerseniz standart virtual host kullanabilirsiniz, yok eğer siz de benim gibi mysql tabanlı virtual host tanımlaması yapmak istiyorsanız aşağıdaki yönergeleri takip edebilirsiniz. Öncelikle MySQL sunucumuza root ile login oluyoruz, sonra Lighttpd sunucumuzun kullanacağı bir veritabanı oluşturup, yine bu veritabanına yetkilendireceğimiz bir kullanıcı tanımlıyoruz;
mysql -u root -p
Enter password:
mysql> CREATE DATABASE lighttpd;
mysql> CREATE USER ‘lighttpd’@’localhost’ IDENTIFIED BY ‘LighttpdVeritabaniSifremiz’;
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON lighttpd.* TO ‘lighttpd’@’localhost’;
mysql> FLUSH PRIVILEGES;
mysql> USE lighttpd;
mysql>CREATE TABLE IF NOT EXISTS domains (
domain varchar(64) NOT NULL PRIMARY KEY,
docroot varchar(128) NOT NULL,
config text
);
Veritabanımızı, tablomuzu oluşturduk, kullanıcımızı ekleyip yetkisini de verdikten sonra şimdi sırada Lighttpd yapılandırması var. Öncelikle /etc/lighttpd/lighttpd.conf dosyamızın sonuna aşağıdaki satırları ekliyoruz;
###MYSQL VHOSTS#
include “conf.d/mysql_vhost.conf”
Daha sonra ise /etc/lighttpd/conf.d/mysql_vhost.conf dosyasını vi yardımıyla açıp, içerisindeki ayarları güncelliyoruz, # ile commented satır varsa uncomment yapıyoruz (yani başlarındaki (#) diyez işaretini siliyoruz);
server.modules += ( “mod_mysql_vhost” )
mysql-vhost.sock = “/var/lib/mysql/mysql.sock”
mysql-vhost.hostname = “localhost”
mysql-vhost.port = 3306
mysql-vhost.db = “lighttpd”
mysql-vhost.user = “lighttpd”
mysql-vhost.pass = “LighttpdVeritabaniSifremiz”
mysql-vhost.sql = “SELECT docroot FROM domains WHERE domain=’?'”
Dosyamızı kaydedip çıkıyoruz ve lighttpd restart ediyoruz;
service lighttpd restart
İlk olarak veritabanımıza yeniden bağlanıp, oluşturduğumuz tabloya bir satır değer girerek virtual host tanımlaması yapıyoruz;
mysql -u root -p
Enter password:
mysql> USE lighttpd;
mysql> INSERT INTO domains VALUES (‘domain.adi’,'/srv/www/lighttpd/vhosts/domainadi’);
domain.adi isminde bir domain ekleyip docroot olarak da /srv/www/lighttpd/vhosts/domainadi dizinini belirttik. Buraya echo ile bir index.html koyalım;
echo ‘domain.adi web sayfası’ > /srv/www/lighttpd/vhosts/domainadi/index.html
Artık domain.adi virtual hostumuz hazır. domain.adi dosyasının /etc/hosts veya windows kullanıyorsanız, c:\Windows\System32\drivers\etc\hosts içerisinde sunucunuzun ip adresine tanımlandığına emin olduktan sonra, tarayıcımızın adres satırına http://domain.adi yazarak virtual hostumuzun sayfasına erişelim;
Gördüğünüz gibi oldukça basit bir operasyon. Umarım işinize yaramıştır.
Mehmet Solmaz

