Mehmet Solmaz

Everything has a begginning has an end.

Skip to: Content | Sidebar | Footer



Her şeyin bir başlangıcı ve bir sonu vardır.

CentOS üzerine MySQL Virtual Host Tabanlı LightSpeed Kurulumu

9 Mart 2011 15:48 | Bilgisayar ve Teknoloji, İnternet Programcılığı, Linux | Mehmet Solmaz

 

Lighttpd / Light Speed

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.

Lighttpd - Light Speed Kurulum Sonrası Test Sayfası

Lighttpd - Light Speed Kurulum Sonrası Test Sayfası

 

Ş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;

Light Speed - Lighttpd  PHP/FastCGI

Light Speed - Lighttpd PHP/FastCGI

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;

 

Lighttpd MySQL Virtual Host ile Tanımlanan bir Host

Lighttpd MySQL Virtual Host ile Tanımlanan bir Host

 

 

Gördüğünüz gibi oldukça basit bir operasyon. Umarım işinize yaramıştır.

Yorum Yap