Ana Sayfa » *nix » Lighttpd, Mysql, Php, Eaccelerator ile OpenAds Ad Server kurulumu.

Lighttpd, Mysql, Php, Eaccelerator ile OpenAds Ad Server kurulumu.


BerbatKötüİdare EderGüzelHarika (Henüz Puan Verilmedi. Oy kullanarak siz de katkı yapabilirsiniz.)
Loading...

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYbo6ke2' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349

, Ad Server diye tabir edilen bir reklam serverı yazılımıdır. Bu yazılım ile, sitenizde yayınladığınız reklam bannerlarını yönetebilir, bannerlerin ne sıkılıkla, hangi tarihler arası gösterileceği vs. gibi konularda gelişmiş bir yönetim sağlayabilirsiniz.

'in yayınlanmış olan son sürümünden önceki Phpads olarak anılan 2.0 sürümünü kurarak, yüksek hit alan bir kaç site üzerindeki performansını inceleme şansım olmuştu. Php ile kodlanmış olan bu yazılım, Apache ve üzerinde çalışıyor ve performansı gerçekten oldukça iyi.

Bu entryde de FreeBSD üzerinde yapmış olduğum son sürümü olan 2.4 kurulumunun notlarını paylaşacağım.

Daha önce Apache üzerine kurduğum ve tecrübe ettiğim için, Apache'ye alternatif olduğu söylenen isimli bir başka web server üzerine OpenAds kurdum. Ancak henüz performans değerlendirmesi yapamadım. Performans değerlendirmesinden sonra bu entry'i editleyeceğim.

BİLEŞENLER

KURULUM VE YAPILANDIRMA

Önce lighty ile başlıyoruz.

Lighttpd'i, bir çok yönden Apache'den daha performanslı olduğu iddia edilen bir web server yazılımı. FastCGI ile PHP çalıştırarak, epey performans elde edildiği söyleniyor. Wikipedia ve Youtube da Lighttpd kullanmaktaymış.

Kurulumu porttan yaptım ve kurulum seçeneklerinde Mysql'i enable ettim.

# cd /usr/ports/www/lighttpd
# make install clean

Kurulumdan sonra, lighttpd'nin açılışta otomatik olarak çalışması için, rc.conf'a ilgili enable satırını giriyoruz.

 # echo lighttpd_enable="YES" >> /etc/rc.conf

Daha sonra, lighttpd.conf üzerinde gerekli düzenlemeleri yapıyoruz.

NOT: Bu adımdaki işlemler, sisteminizde php'nin kurulu olduğunu varsaymaktadır. Eğer değilse, bir sonraki adımda anlatıldığı şekilde php kurulumu yapın ve sonra bu noktadan devam edin

/usr/local/etc/ altında bulunan öntanımlı olarak, lighttpd.conf.sample ismi ile gelen conf dosyasının adını, lighttpd.conf olarak değiştiriyoruz.

# cd /usr/local/etc
# cp lighttpd.conf.sample lighttpd.conf

lighttpd.conf dosyasını favori editorumuz ile açıp; server.modules kısmında bulunan “mod_fastcgi” isimli modülün başındaki # işaretini kaldırarak modülü devreye alıyoruz ediyoruz. Sonra aynı dosya içine aşağıdaki satırları giriyoruz.

fastcgi.server = ( ".php" => ((
"bin-path" => "/usr/local/bin/php-cgi",
"socket" => "/tmp/php.socket",
"max-procs" => 1,
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "16",
"PHP_FCGI_MAX_REQUESTS" => "10000"
)
)))

Not: php-cgi pathinin tam olarak neresi olduğunu öğrenebilmek için, aşağıda anlatıldığı üzere php kurulumunu yaptıktan sonra
where is komutunu kullanabilirsiniz. FreeBSD'de default olarak “/usr/local/bin/php-cgi”‘dir.

# whereis php-cgi
php-cgi: /usr/local/bin/php-cgi

lighttpd.conf dosyasına eklemiş olduğumuz satırlarla ilgili bir iki dikkat edilmesi gereken husus var. Eğer, cache vs. işlemleri için eacceleretor gibi bir opcode cacher kuracak isek;

“max-procs” => 1 satırının, örnekteki gibi 1 olması gerekiyor.

“PHP_FCGI_CHILDREN” => “16” satırı ise, çalıştırılacak child adedini belirtiyor, sistem kaynaklarına ve yük durumuna göre bunu arrtırabilirsiniz.

Yapılandırma tamam gibi görünüyor. Ancak ben /usr/local/etc/rc.d altında bulunan lighttpd startup scriptini çalıştırdığım zaman, aşağıdaki gibi bir sonuç aldım.

# /usr/local/etc/rc.d/./lighttpd start
(configfile.c.1136) base-docroot doesn't exist: /usr/local/www/data/
(server.c.591) setting default values failed

lighttpd.conf dosyasında, server.document-root olarak /usr/local/www/data/ dizini tanımlı, daha önceden bu dizin yaratılmadığı için ilgili dizinin olmamasından dolayı sorun çıkartıyor. Yani, Apache'de olduğu gibi kendisi oluştırmadığı için manuel olarak oluşturmanız ve www kullanıcı/grubuna atamanız gerekiyor. (conf dosyası içinde default user ve group www olarak tanımlı; değiştirebilirsiniz.)

# mkdir /usr/local/www/data
# chown www /usr/local/www/data
# chgrp www /usr/local/www/data/

Tekrar çalıştırıyoruz ve bir başka sorunla karşılaşıyoruz.

# /usr/local/etc/rc.d/./lighttpd start
(mod_accesslog.c.535) opening access-log failed: Permission denied /var/log/lighttpd.access.log
(server.c.895) Configuration of plugins failed. Going down.

Bu sefer de, ilgili log dosyasına erişemediği için start etmedi. log dosyalarını oluşturmamız ve www'ye atamamız gerekiyor.

# touch /var/log/lighttpd.access.log
# chown www /var/log/lighttpd.access.log
# chgrp www /var/log/lighttpd.access.log
# touch /var/log/lighttpd.error.log
# chown www /var/log/lighttpd.error.log
# chgrp www /var/log/lighttpd.error.log

Bir daha denediğimizde, sorunsuz çalışacak olması gerekiyor.

# /usr/local/etc/rc.d/./lighttpd start
Starting lighttpd.

Şimdi, 80. portun bind edilip edilmediğine bakabilir, document root'un altına basit bir html atıp serverın çalışığ çalışmadığını kontrol edebilirsiniz.

PHP

Gene portstan php bve extensionlarını kuruyoruz.

# cd /usr/ports/lang/php5
# make install clean

Php kurulum seçeneklerinden, FastCGI'ı seçmeyi unutmuyoruz.

# cd /usr/ports/lang/php5-extensions
# make install clean

Bu kurulumda da, OpenAds için gerekli olan Session, Mysql ve FTP özelliklerini seçiyoruz.

php.ini dosyasında OpenAds ve daha sonra da icin bir takım düzenlemeler yapılması gerekiyor. php.ini-recommended isimli kurulumda default gelen dosyanın adını php.ini yapalım.

# cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini

OpenAds'in maintanence işlemi için php.ini'deki “register_argc_argv” opsiyonunun ON duruma getirilmesi gerekir. ini dosyamızı editleyelim ve Off olan bu değeri On yapalım. düzenlemeleri için bu dosyaya sonra geri döneceğiz.

Php'inin düzgün çalışığ çalışmadığını anlamak için; /usr/local/www/data dizini altında, info.php şeklinde bir dosya açıp, içerisine

yazıp kaydedip çıkalım; ve “http://ip.ad.re.si/info.php” şeklinde info.php dosyasını çağıralım, php düzgün çalışıyorsa, php ve php modülleri ile ilgili kapsamlı bir info sayfası görürsünüz.

Php kurulumundan sonra sırada Mysql var.

Mysql

Ports for the win!

# cd /usr/ports/databases/mysql50-server/
# make install clean

Mysql kurulumu bittikten sonra, OpenAds için bir database olusturmak ve bu DB için bir de user belirlemek gerekiyor.

Mysql'e bağlanalım
Mysql default olarak root passwordunu boş bırakır, kurulumdan sonra bir şifre belirlemelisiniz. Şimdi bu işlemi de yapalım.

# mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'%' = PASSWORD('newpwd');

DB ve User yaratıp, db'ye bu user için hak verelim.

mysql> CREATE DATABASE openads;
mysql> GRANT all ON openads.* TO username@localhost IDENTIFIED BY 'password';
mysql> flush privileges;
mysql> quit

Mysql işlemi de tamam.

EACCELERATOR

Eaccelerator de ports'da bulunuyor.

# cd /usr/ports/www/eaccelerator
# make install clean

şeklinde kurulumumuzu yapıyoruz.
Kurulumdan sonra /usr/local/etc altındaki php.ini dosyasına aşağıdaki satırları giriyoruz.

zend_extension="/usr/local/lib/php/20060613/eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

Zend_extension'un yeri versiyona göre değişiyor. Bu nedenle path'in doğru girmek için kısaca,

#  find / -name eaccelerator.so

komutu ile dosyayı aratabilir ve pathi öğrenebilirsiniz.

Son olarak, php.ini içinde pathini belirttiğimiz cache dizinini oluşturuyoruz.

# mkdir /tmp/eaccelerator
# chmod 777 /tmp/eaccelerator

Eaccelerator'un devreye girebilmesi için normalde server restartı gerekiyor, ancak Lighttpd kullanılıyorsa sadece ana FastCGI serverı killememiz yeterli. Lighttpd restart ile kökünden halledelim.

# /usr/local/etc/rc.d/./lighttpd restart

Lighttpd sorunsuz şekilde restart olduktan sonra, eaccelerator'un devreye girip girmediğini anlamak için;
php -v komutunu çalıştırabiliriz. Çıktıda aşağıdakine benzer bir eAccelerator satırı olmalı.

Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with eAccelerator v0.9.5.2, Copyright (c) 2004-2006 eAccelerator, by eAccelerator

Bir sonraki aşama, OpenAds kurulumu ki, oldukça basit bir kurulumu var.

http://www.openads.org/ adresinden Openads'in son sürümünü indirin ve Lighttpd'nin document root dizini olan /usr/local/www/data/ dizininin altına zip dosyasını açın.
Sonra bir browser açarak, http://ip.ad.re.si/ adresini çağırın. Bu şekilde Openads'in kurulum adımları başlayacak ve önergeleri izleyerek kurulumu tamamlayabileceksiniz. Epey kolay :)

Son olarak, Openads'in DB'nizi maintanence eden php dosyasını her saat başı çalıştırmak için crontab'ınıza aşağıdaki satırı girin.

0 * * * * fetch -o /dev/null http://ip.ad.re.si/maintenance/maintenance.php

Hepsi bu.

Visited 359 times, 1 visit(s) today
Kategoriler: *nix |

Bu yazılar da ilginizi çekebilir:


- Eaccelerator hit: httpd-error.log
- Lighttpd Virtual Hosting (vhost) Yapılandırması
- CentOS üzerine php5 ve Mysql destekli Lighttpd Kurulumu
- eAccelerator Kurulumu
- OpenX 2.8 Ad Server Kurulumu

Yorumlar


  1. anonymous | (Mart 19th, 2008 12:47 am)

    Would be nice if this were in english.

    [Cevapla]

  2. Cagri Ersen | (Mayıs 24th, 2008 9:33 pm)

    Ofc i can post it in english..
    However, you don’t need to read whole article, just follow the commands and copy paste them.

    That’s all…

    [Cevapla]

  3. duygu | (Nisan 20th, 2010 9:28 am)

    çok işime yaradı tsk edrm

    [Cevapla]

Trackbacks

Yorumda bulunun.