CentOS 5 Lighttpd - Php Kurulumu
Server kurulumları sırasında yoğun olarak insanlar apache ve php ikilisini tercih etmektedir. Ancak son zamanlarda Alexa , Youtube gibi büyük siteler lighttpd'ye geçiş yapmaya başladılar. lighttpd'nin perfonmans olarak çok daha iyi sonuç vermesi daha az memory kullanması , jail chroot imkanına sahip olması (ki sadece bu bile güvenlik açısından tercih edilmesine sebep olan bir özellik) benimde lighttpd yi test etmek istememe yol açtı. Bu karar sonrasında yaptığım ilk şey Floren ile birlikte gerekli incelemeleri başlatmak ve testlere başlamaktı. Ilk olarak testleri düzgün şekilde yapabilmek için ubuntu'dan vazgeçerek kendi bilgisayarıma CentOs 5 kurdum. CentOs 5 i tercih etmemdeki sebep en yeni sürümü olması ve server da kullanacağımız tüm Rpm'leri Floren ile birlikte kendimizin oluşturacak olmasıydı. Makaleyi kendi serverınıza uygulamak istiyorsanız her adımı sırasıyla takip etmenizi ve aşağıdakiler haricinde RPM kullanmamanızı şiddetle tavsiye ederim. Çünkü tüm RPM'ler özel olarak hazırlanmış ve maksimum perfonmans için optimize edilmişlerdir.
Ilk olarak home klasörümüzde redhat isimli bir klasör oluşturuyoruz.
Daha sonra /usr/src/redhat/ altındaki tüm dosyaları yeni oluşturduğumuz klasörün altına kopyalıyoruz. -R kodu alt dizinleride kopyalamak içindir
Daha sonra kurulumda gerekli olabilecek tüm gerekli yazılımları yüklüyoruz.
Daha sonra var olan tüm RPM leri kullanabilmeniz için gerekli olan Key'i import edeceksiniz. Bu key olmadan RPM'leri malesef kullanamazsınız.
Kurulum sıramızı şu şekilde uygulayacaz.
1. Php
2. memcached
3. Lighttpd
4. xCache
5. Mysql
Php Kurulumu :
Php kurulumu için sırasıyla aşağıdaki RPM'leri import ediniz.
Memcached Kurulumu :
Rpm'leri sırasıyla import ediniz.
Daha sonra memcached'i aşağıdaki kodları sırasıyla uygulayıp aktif hale getiriniz.
Lighttpd kurulumu için gerekli olan iki dependencies in ilkini rpm lerden ikincisini yum kullanarak yüklüyoruz.
Lighttpd Kurulumu :
Rpm leri sırasıyla import ediyoruz.
lighttpd için özel olarak optimize ettiğimiz lighttpd ini dosyasını php.d klasörüne , lighttpd.conf dosyasını lighttpd klasörüne kopyalıyoruz.
Daha sonra dosya izinlerini değiştirip chown komutu ile log dosyasının sahibini değiştiriyoruz.
En son lighttpd'yi aktif hale getiriyoruz.
xCache Kurulumu :
Yine özel oluşturduğumuz xCache rpmlerinden birisini import ediyoruz.
Daha sonra içeriği aşağıdaki gibi olucak bir php dosyası oluşturuyoruz ve server'a koyuyoruz
Bu dosyası browserınızdan açtıktan sonra çıkacak olan c635c3dad4d8f8c123319ff45d8a0996 gibi değeri /etc/php.d/xcache.ini dosyasındaki şifre kısmına yazıyoruz. Kullanıcı isminide değiştirmeyi unutmayın. Bunlar xCache panelinize login olmanızı sağlayacaktır.
Dosyayı save ettikten sonra aşağıdaki komut ile lighttpd'yi restart ediyoruz.
Daha sonra domain.com/xcache/ adresinden xcache kontrol panelinize giriş yapabilirsiniz.
MySql Kurulumu :
Mysql kurulumu sırasında dikkat etmeniz gereken ilk olgu yine aşağıdaki sıralarla kurmak olacaktır. Dikkat edin arada yum ile kurmanız gereken ayrı bir gereklilik daha var.
Kurulum tamamlandıktan sonra mysql i aşağdaki kodla çalıştırıyoruz.
Mysql'e login olmak için aşağıdaki komutu kullanıyoruz.
Şimdi mysql serverımızı biraz güvenli hale getiricez. Normal olarak mysql ilk kurulum ile birlikte birden fazla kullanıcı ekler. Ilk olarak root kullanıcısı için yeni bir şifre oluşturmak için aşağıdaki kodu giriyorsunuz.
Daha sonra kurulum sırasında oluşmuş iki kullanıcıyı kaldırıyoruz
En son olarak root haricinde bir kullanıcı kalıp kalmadığını kontrol etmek için ilk satırdaki kodu giriyoruz.
Eğer aşağıdaki gibi bir cevap alırsak
Bu kodu uygulayarak son kullanıcıyıda kaldırıcaz.
Bir sonraki adımımız lighttpd nin kendine has özelliği olan güvenliği hazırlamak. Ilk önce aşağıdaki komutları girerek (root ile) gerekli klasörleri oluşturuyoruz.
Daha sonra aşağıdaki kodu giricez
Almamız gereken yanıt şu olucak
En son olarak jail chroot için gerekli olan bir script oluşturucaz
Aşağıdaki kodu l2chroot.txt isimli bir dosya oluşturarak içine yapıştırın ve kolay erişebileceğiniz bir dosyaya kaydedin.
Dosyayı kaydettikten sonra sırasıyla aşağıdaki kodları giriyoruz
Ilk olarak home klasörümüzde redhat isimli bir klasör oluşturuyoruz.
Code:
$ mkdir -p /home/drazil/redhat
Code:
$ cp -R /usr/src/redhat/* /home/drazil/redhat
Code:
# yum -y install \ autoconf automake \ gcc gcc-c++ \ bzip2 bzip2-devel \ gd glib2 glib2-devel \ ImageMagick \ libaio libaio-devel \ libtool \ openldap openldap-devel \ openssl openssl-devel \ pcre pcre-devel
Code:
yum install gmp*
Code:
rpm --import /home/drazil/redhat/RPM-GPG-KEY-TECK
1. Php
2. memcached
3. Lighttpd
4. xCache
5. Mysql
Php Kurulumu :
Php kurulumu için sırasıyla aşağıdaki RPM'leri import ediniz.
Code:
rpm -Uvh /home/drazil/redhat/RPMS/i386/php-common-5.1.6-1.el5.i386.rpm rpm -Uvh /home/drazil/redhat/RPMS/i386/php-cli-5.1.6-1.el5.i386.rpm rpm -Uvh /home/drazil/redhat/RPMS/i386/php-5.1.6-1.el5.i386.rpm rpm -Uvh /home/drazil/redhat/RPMS/i386/php-devel-5.1.6-1.el5.i386.rpm rpm -Uvh /home/drazil/redhat/RPMS/i386/php-pdo-5.1.6-1.el5.i386.rpm rpm -Uvh /home/drazil/redhat/RPMS/i386/php-mysql-5.1.6-1.el5.i386.rpm
Rpm'leri sırasıyla import ediniz.
Code:
rpm -Uvh /home/drazil/redhat/RPMS/i386/memcached-1.2.2-1.el5.i386.rpm rpm -Uvh /home/drazil/redhat/RPMS/i386/pecl-memcache-2.1.2-1.el5.i386.rpm
Code:
chkconfig memcached on service memcached start
Code:
rpm -Uvh /home/drazil/redhat/RPMS/i386/lua-5.1.2-1.el5.i386.rpm rpm -Uvh /home/drazil/redhat/RPMS/i386/lua-devel-5.1.2-1.el5.i386.rpm
Code:
yum install gamin-devel gdbm-devel
Rpm leri sırasıyla import ediyoruz.
Code:
rpm -Uvh /home/drazil/redhat/RPMS/i386/lighttpd-1.4.15-1.el5.i386.rpm rpm -Uvh /home/drazil/redhat/RPMS/i386/lighttpd-fastcgi-1.4.15-1.el5.i386.rpm
Code:
cp /home/drazil/redhat/lighttpd.ini /etc/php.d cp /home/drazil/redhat/lighttpd.conf /etc/lighttpd
Code:
chmod 0644 /etc/php.d/lighttpd.ini chmod 0644 /etc/lighttpd/lighttpd.conf chown lighttpd:root /var/log/lighttpd
Code:
chkconfig lighttpd on service lighttpd start
Code:
chcon -R -t public_content_t /var/www chcon -R -t samba_share_t /var/www
Yine özel oluşturduğumuz xCache rpmlerinden birisini import ediyoruz.
Code:
rpm -Uvh /home/drazil/redhat/RPMS/i386/xcache-1.2.0-1.el5.i386.rpm from
Code:
echo md5('şifreniz');
Dosyayı save ettikten sonra aşağıdaki komut ile lighttpd'yi restart ediyoruz.
Code:
service lighttpd restart
MySql Kurulumu :
Mysql kurulumu sırasında dikkat etmeniz gereken ilk olgu yine aşağıdaki sıralarla kurmak olacaktır. Dikkat edin arada yum ile kurmanız gereken ayrı bir gereklilik daha var.
Code:
rpm -Uvh /home/drazil/redhat/RPMS/i386/mysql-5.0.22-1.el5.i386.rpm yum install perl-DBD-MySQL rpm -Uvh /home/drazil/redhat/RPMS/i386/mysql-server-5.0.22-1.el5.i386.rpm
Code:
service mysqld start
Code:
mysql -u root
Code:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yenişifre');
Code:
DELETE FROM mysql.user WHERE User = ''; FLUSH PRIVILEGES; DELETE FROM mysql.user WHERE Host = ''; FLUSH PRIVILEGES;
Code:
SELECT User, Host FROM mysql.user;
Code:
+------+--------------------+ | User | Host | +------+--------------------+ | root | drazil-desktop.lan | | root | localhost | +------+--------------------+ 2 rows in set (0.00 sec)
Code:
DELETE FROM mysql.user WHERE Host = 'drazil-desktop.lan'; FLUSH PRIVILEGES;
Code:
# mkdir -p /webroot/tmp # mkdir -p /webroot/etc # mkdir -p /webroot/var/log/lighttpd # chown lighttpd:lighttpd /webroot/var/log/lighttpd # chmod 0640 /webroot/var/log/lighttpd # mkdir -p /webroot/home/lighttpd # chown lighttpd:lighttpd /webroot/home/lighttpd # chmod 0750 /webroot/home/lighttpd
Code:
ls -dl /webroot/home/lighttpd
Code:
drwxr-x--- 2 lighttpd lighttpd 4096 Jun 12 22:01 /webroot/home/lighttpd
Aşağıdaki kodu l2chroot.txt isimli bir dosya oluşturarak içine yapıştırın ve kolay erişebileceğiniz bir dosyaya kaydedin.
Code:
#!/bin/bash
BASE=$2
[ ! $BASE ] && mkdir -p $BASE || :
echo "Copying files to $BASE ..."
FILES="$(ldd $1 | awk '{ print $3 }' |egrep -v ^'\(')"
for i in $FILES
do
DIRECTORY="$(dirname $i)"
[ ! -d $BASE$DIRECTORY ] && mkdir -p $BASE$DIRECTORY || :
/bin/cp $i $BASE$DIRECTORY
done
LDDIR="$(ldd $1 | grep 'ld-linux' | awk '{ print $1}')"
LDSUBDIR="$(dirname $LDDIR)"
if [ ! -f $BASE$LDDIR ]; then
echo "Copying $LDDIR $BASE$LDSUBDIR ..."
/bin/cp $LDDIR $BASE$LDSUBDIR
else
:
fi
Code:
# mv /home/drazil/tmp/l2chroot.txt /bin/l2chroot # chmod +x /bin/l2chroot
Toplam Trackbacks 0
Trackbacks
Lizard King ait Blog Başlıkları
- Kaliteli Spor Basını (20-06-2008)
- Ayyaş'a Bir Ödül Daha (04-06-2008)
- Bosphorus (28-05-2008)
- Küçük Emrah Ruhu (13-05-2008)
- Lakers - Jazz (05-05-2008)










