OpenX 2.8 Ad Server Kurulumu
Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYBRkx5N' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
openx, oldukça gelişmiş ve güzel bir reklam yötenim sistemidir. openx kullanarak sitenizde yayınladığınız reklamları kolayca yönetebilir ve reklam verenlerinize gelişmiş, istatistigi raportlama yapabilirsiniz. php tabalı olan openx database olarak MySql kullanıyor ve oldukça performanslı çalışıyor. |
Ben, OpenX kullanarak, bir mysql bir apache olmak üzere, Xeon 3Ghz işlemci ve 2GB ram'e sahip iki FreeBSD sunucu üzerinde aylık ortalama 100 milyon reklam gösterimi yapabiliyorum. Sonuç olarak siz de reklam yönetimi için bir çözüm arıyorsanız, aradığınız OpenX olabilir.
Bu yazıda, OpenX'in nasıl kurulduğu ve genel geçer yönetim işleri anlatılmaktadır. (Kurulum FreeBSD 7.1 üzerinde yapılacaktır.)
OpenX aslında bir kaç kez ismi değişmiş ve bir çok revizyondan geçmiş bir yazılım. Zaman içinde phpAdsNew, openads isimleri ile de tanınan bu güzel yazılımın son hali OpenX ve son sürümü 2.8.
İşte nasıl kurulduğu;
[Sistem Gereksinimleri]
İşe başlamadan önce aşağıdaki yönergelerden hareketle, sistemi hazır duruma getirmeniz gerekir.
Donanım
Çok fazla reklam gösteriminiz yoksa, ortalama bir donanıma sahip bir sunucu yeterli olacaktır. Tüm bileşenleri tek sunucu üzerinde çalıştırabilir ve OpenX'i sorunsuzca çalıştırabilirsiniz.
Kurulumu yapabilmek için sunucunuz üzerinde halihazıda apache, php5 ve mysql-server kurulu ve çalışıyor olmalı olmalı.
NOT: Bu bileşenlerin nasıl kurulacağı detaylı olarak anlatılmamakla beraber minimum apache, php ve mysql yapılandırmalarına değinilecektir. |
Yukarıda bahsedilen gerekli sunucu bileşenleri ile bilgi ve miminum gereksinimler şunlar:
Apache Web Server
OpenX tarafından test edilmiş ve önerilmekte olan web sunucusu Apache'dir, dolayısı ile ben de OpenX'i apache üzerinde çalıştırıyorum; bu yazıda da Apache üzerinde yapılan kurulumu anlatmaktadır. Ama istemeniz durumunda php desteği sunan herhangi bir web sunucusu kullanabilirsiniz.
Not: Daha önceden Lighttpd üzerine OpenAds kurulumu anlatan bir yazı yayınlamıştım.
Bkz: http://www.syslogs.org/…lighttpd…ile-openads-ad-server-kurulumu/
Apache'yi sisteminizde default olarak kurmuş olmanız ve çalıştığından emin olmanız yeterlidir.
UYARI: Apache 2.x versiyonu kullanıyorsanız, Apache'nin bundled pcre modülü ile derlenmis olması gerekir (ki bu default'tur). Aksi taktirde sistemin kendi pcre kütüphanesini kullanıyor olmanız kurulumu gerçekleştirememenize neden olur. |
Web sunucusu ile ilgili gereklilikler bu kadar.
Php
OpenX, php tabanlıdır ve sisteminizde öncesinden kurulu olmalıdır. Php ile ilgili gereksinimler şu şekilde
Php Versiyonu
OpenX'in 2.8'den önceki sürümleri php4 desteklerken, 2.8 sürümü sadece minimum php5 sürüm 5.1.4 ve üzeri desteklemektedir. Dolayısı ile sisteminizde minimım php 5.1.4 yüklü olmalıdır; eğer üzerinde OpenX çalıştırmayı düşündüğünüz sunucunuzda php4 var ise php5'e upgrade etmeniz gerekmektedir. Blogda, bu konuyla ilgili bir döküman bulabilirsiniz:
Bkz: http://www.syslogs.org/2009/04/upgrade-php4-to-php5-with-portmaster/
Php Mode'u
Bildiğiniz gibi php, Apache modülü olarak ya da CGI binary modunda çalıştırılabiliyor, ancak apache modül'ü olarak çalıştırmak cgi'a göre daha efektiftir, bu nedenle php'yi bu şekilde çalıştırmanız tavsiye edilir.
Php Yapılandırması
OpenX'in sorunsuz olarak kurabilmek için, öncesinde php.ini'de set edilmiş php yapılandırmanızı inceleyerek aşağıdaki ayarların doğru olduğundan emin olun.
- magic_quotes_runtime Off durumda olmalı.
- safe_mode Off durumda olmalı.
- register_argc_argv On durumda olmalı. (*)
- file_upload On durumda olmalı. (**)
(*) register_argc_argv, maintanence işlemlerinin komut satırından yapılabilmesi için On durumunda olmalıdır. Maintanence işleminin ne olduğu dökümanın Maintanence başlıklı kısmında anlatılmaktadır.
(**) file_upload, OpenX arayüzünden banner upload işlemi için gereklidir.
Php.ini yapılandırmasının dışında, OpenX'in düzgün olarak çalışması için bazı php extension'larının sistemde yüklü olması gerekir. Bu extension'lar aşağıdalistelenmiştir. Kuruluma başlamadan önce listeyi inceleyerek gerekli extension'ların kurulu olduğundan emin olun.
- MySql Extension
- Zlib Extension
- FTP Extension
- OpenSSL ya da OpenSSL aktif edilmiş Curl extension
Php Time Zone Yapılandırması
OpenX zamanla ilintili olarak bir çok işlem yapmaktadır. (Raporlamalar vs.) Bu nedenle php yapılandırmanızda, time zone'un doğru olarak set edilmiş olması gerekir.
php.ini dosyanızı editleyin ve örneğin Istanbul için aşağıdaki gibi bir değer girin.
date.timezone = Europe/Istanbul
Set edilebilecek timezone'lar için bkz: http://www.php.net/datetime
Aslında herhangi bir timezone set etmezseniz, işlemler sunucu özelliklerinden hangi time zone'da olduğunuz tahmin edilip yürütülecektir, ancak OpenX php yapılandırmanızda timezone'unuzu set etmenizi şiddetler önermektedir.
Database Sunucusu
OpenX'i MySql ya da PostgreSql ile birlikte kullanabilirsiniz. Ben MySql kullanmayı tercih ediyorum. Dolayısı ile bu dökümanda anlatılanlar MySql için geçerlidir.
Kuruluma başlamadan önce Mysql'in 4.1 ya da 5.0 versiyonunun sunucunuzda kurulu ve çalışır olduğundan emin olun.
Database Tablo Tipi
OpenX hem MyISAM hem de InnoDB tablo yapısında çalışabilmektedir; ben MyISAM'ı tercih ediyorum ama siz database oluşturma kısmında InnoDB tablo tipini de seçebilirsiniz.
Gereksinimlerin sağlandığından emin olduktan sonra kuruluma geçebiliriz.
[Kurulum'a Hazırlık]
OpenX'in kurulumu oldukça basit; güzel bir web tabanlı kurulum sihirbazı bulunuyor, yapmamız gereken tek şey, OpenX'i download edip web sunucusunun root dizinine kopyalamak ve bir database oluşturup, gerekli kullanıcı tanımlamasını yapmaktan ibaret. Böylece web browserdan kurulum sihirbazını çalıştırabileceğiz.
Download OpenX
OpenX'in son sürümünü (bu yazı hazırlanırken 2.8'di.) http://www.openx.org/ad-server/download adresinden, sunucunuza download edin.
Ben bu iş için sunucuda (FreeBSD) /usr/local/src dizinini kullanıyorum.
# cd /usr/local/src # fetch http://download.openx.org/openx-2.8.0.tar.gz
Daha sonra indirdiğiniz tar.gz dosyasını açıp, apache sunucusunun DocumentRoot dizinine openx ismi ile kopyalayın.
# tar -xvf openx-2.8.0.tar.gz # cp -r openx-2.8.0 /usr/local/www/data-dist/openx
Kopyalama işi bittiyse, web browserdan http://sunucu-adi-yada-ipsi/openx URL'sini çağırıp kurulum sihirbazını başlatabiliriz. Ama bu aşamaya geçmeden önde DB oluşturmak ve gerekli permissionları set etmek gibi işler var.
Permissions
Kurulum sırasında OpenX'in bir çok folder'a yazıp çizmesi gerekiyor, bu nedenle gerekli dizinlere write permission'u verilmesi gerekmektedir. Şimdi bu dizinlere yetki verelim.
Önce, openx klasorunun sahibini apache (www) kullanıcısı yapalım ve sonrasında tüm dizini 644'e set edelim. (Herkes tarafından okunur, owner tarafından çalıştırılabilir.)
# chown -fR www /usr/local/www/data-dist/openx # chmod -fR 544 /usr/local/www/data-dist/openx
Daha sonrada kurulum sırasında yazma işlemi yapılacak dizinlere write hakkı verelim.
# chmod -fR 744 /usr/local/www/data-dist/openx/var # chmod -fR 744 /usr/local/www/data-dist/openx/plugins # chmod -fR 744 /usr/local/www/data-dist/openx/www/admin/plugins # chmod -fR 744 /usr/local/www/data-dist/openx/www/images
Permission işlemlerinden sonra yapılacak iş Database sunucusunun hazır edilmesidir.
Database Yapılandırması
Bu adımda, Mysql sunucusu üzerinde openx isimli boş bir database oluşturun.
# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 102 Server version: 5.0.77 FreeBSD port: mysql-server-5.0.77_1 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> create database openx;
Sonrasında openx database'ine erişecek bir kullanıcı oluşturun.
mysql> CREATE USER 'openx_user'@'localhost' IDENTIFIED BY 'sifre';
Not: Mysql aynı, apache ile aynı sunucu üzerinde çalıştığı için openx_user'ına localhost üzerinden erişmesi için yetki verildi. Mysql'iniz ayrı bir sunucu üzerinde çalışıyorsa, kullanıcı oluştururken ‘openx_user'@'web-sunucusunun-ipsi' şeklinde bir giriş yapmanız gerekir.
İlgili kullanıcının db'ye erişmesi için gerekli yetkileri verelim.
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,LOCK TABLES ON openx.* TO openx_user@'localhost' IDENTIFIED BY 'sifre'; mysql> exit;
Database ile ilgili ayarlamalar bu kadardı.
Artuk Kuruluma geçebiliriz.
[Kurulum]
Daha önceden de bahsettiğim gibi OpenX kurulumunun tamamı web tabanlı bir kurulum sihirbazı tarafından gerçekleştiriliyor. Bu yüzden şimdi bir browser açıp kurulum sihirbazını çağıralım. Benim kullandığım web sunucusunun ip adresi 192.168.12.200 bu örneğe göre browserdan çağırılacak URL şu şekilde.
http://192.168.12.200/openx
Bu adresi çağırdığımızda aşağıdaki gibi bir ekran gelecektir.
(Resmi büyütmek için üzerine tıklayın.)
Bundan sonrası oldukça kolay; yapmanız gereken tek şey adım adım yönergeleri takip etmek ve mysql bilgilerinizi girmek. Bu şekilde, kurulum sihirbazı sizin için tüm database yapılandırmasını yapacak ve OpenX'i kullanıma hazır hale getirecektir.
Kurulum sihirbazında her türlü ayarı default olarak bırakabilir daha sonra yönetim panelinden isteğinize göre düzenleyebilirsiniz.
Kurulum Sonrası İşlemleri
Kurulumu bitirdikten sonra yapılması gereken iki işlem daha var.
Birincisi OpenX configuration dosyasını lock ederek sunucunun güvenliğini sağlamak. İkincisi ise OpenX'in raportlama vs. gibi işleri düzgün olarak yapabilmesi için Maintenance işlemini aktif etmek.
Önce periyodik maintenance işlemini set edelim.
Maintenance
Maintenance işlemi OpenX için çok önemli bir konudur; bu işlem sayesinde ziyaretçi trafiği, banner gösterimi ve click adetleri gibi raporlamada kullanılan istatistiki verinin işlenmesinden, gösterim süresi biten reklamların artık gösterilmemesi gibi işlemler maintenance sırasında yapılmaktadır. Periyodik olarak yapılması gereken bu işlem default olarak 1 saatte bir gerçekleştirilir.
Maintenance işlemini periyodik olarak yapabilmek için iki yol vardır; birincisi OpenX'in kendi built-in maintenance mekanizmasını kullanmaktir, bu özellik yönetim panelinde bulunan Maintenance segmesinden set edilmektedir.
İkincisi ise maintenance scriptini mesela crontab'a yazarak otomatik olarak çalıştırmaktır. Ben crontab yöntemini kullanıyorum:
Maintenance işlemi için kullanılan script OpenX ana dizinindeki maintenance isimli folderda bulunan maintanence.php isimli scripttir. Bu scripte http://sunucu-adi-yada-ip'si/maintenance/maintenance.php adresinden erişilebilmektedir. Scripti çağırdığınız zaman maintenance işlemi gerçekleştirilir.
Şimdi crontab'a bu scriptin saatte bir çalıştırılması için bir girdi ekleyelim. crontab -e komutu ile crontab'ı editleyin ve aşağıdaki satırı ekleyin.
Fetch Kullanan Sistemler İçin (Örn: *BSD)
0 * * * * fetch -o /dev/null http://sunucu-alan-adi-yada-ipsi/openx/maintenance/maintenance.php
Wget Kullanan Sistemler İçin (Örn: RHEL, CentOS, Debian vs.)
0 * * * * wget \-q \-O /dev/null [http://sunucu-alan-adi-yada-ipsi/openx/maintenance/maintenance.php]
NOT: Crontab yöntemini tercih etmeniz durumunda, OpenX yönteim panelinde bulunan Maintenance segmesindeki Automatically perform maintenance during delivery if scheduled maintenance is not set up özelliğini devre dışı bırakılmış olduğundan emin olun. |
Maintenance ile ilgili işlemlerin ne durumda olduğunu openx ana dizinindeki maintenance folderında bulunan debug.log dosyasından görebilirsiniz.
OpenX Yapılandırma Dosyasının Lock Edilmesi
Demin de bahsettiğim gibi OpenX ile ilgil her türlü yapılandırma işlemi yönetim için kullanılan web arayüzünden yapılıyor. Bu nedenle eğer yönetim arayüzüne erişim sağladığınız kullanıcının bilgileri bir başkasının eline geçerse, OpenX ile ilgili tüm yapılandırma değiştirilebilir. Bu durumun önüne geçmek için izlenebilecek en güzel yol, OpenX yapılandırma dosyasına yazma hakkını herkes için kaldırmaktır.
Bu yapılandırma dosyası bizim openx ana dizini altında bulunan var isimli dizinde tutulmaktadır. Bizim örneğimizden hareketle lock işlemini şu şekilde yapabilirsiniz:
(Dosya ismini kendinizinki ile değiştirmeyi unutmayın.)
# cd /usr/local/www/data-dist/openx/var
# chmod 444 domain.com.conf.php
Bu şekilde, yapılandırma işlemleri werb arayüzünden yapılamayacaktır. Herhangi bir değişiklik yapmak istemeniz durumunda dosyayı unlock (744) edebilir ve web arayüzünden değişikliği yaptıktan sonra yeniden lock edebilirsiniz.
Kurulum ile ilgili gerekli bilgiler bu kadardı. Kurulumu sorunsuz olarak gerçekleştirdiyseniz artık yönetim panelini kullanarak reklam bannerlarına ait tanımlamaları yapabilir, sitenizde bu bannerların döndürülmesini sağlayabilirsiniz. Yazıda OpenX'in kullanımından bahsedilmedi ancak aşağıdaki kaynak linklerini takip ederek kullanım konusunda bilgi alabilirsiniz.
Son olarak OpenX'den daha fazla performans almak için sunucunuza eaccelerator kurarak php'yi hızlandırmanızı öneririm.
Bkz: http://www.syslogs.org/2009/05/eaccelerator-kurulumu/
Kaynaklar:
http://www.openx.org/docs/2.8/adminguide/
http://www.openx.org/docs/2.8/userguide
Bu yazılar da ilginizi çekebilir:
- Lighttpd, Mysql, Php, Eaccelerator ile OpenAds Ad Server kurulumu.
- OTRS (Open Ticket Request System) Kurulumu
- MySQL – Stored Procedure ve Function’ların Yedeklenmesi
- Eaccelerator hit: httpd-error.log
- Centos 5.2 üzerine Red5 Flash Server Kurulumu
Yorumlar
Trackbacks
Yorumda bulunun.
Openx çalışması için illa servere mi kurulması gerek. Ben bi host firmasından host aldım openx kullanamazmıyım?
[Cevapla]
Hosting aldiginiz sunucu mysql ve php5 destekliyorsa, elbette kurabilirsiniz.
[Cevapla]
Cagri Bey, aylık 100milyon gösterimi OpenX ile gerçekleştirirken herhangi bir modifikasyon yaptınız mı? Ben cok yogun olmayan bir dedicated makinama kurdum ama saatte bir maintanenece esnasında tum sunucu 10-15 dk cok yavaslıyor. Bana eski PHPBB gunlerimi hatırlattı, o hazır script belirli bir trafikten sonra cok sorun yaratırdı. Openx de aynı sekilde sorunlu diye dusundum ama degil mi? Standart openx ile perfomans problemi yasıyor musunuz?
Not: Ben ayda 6milyon gosterimde sorun yasıyorum.
[Cevapla]
Merhabalar,
Haklisiniz, belki de openX’in en kotu yani maintanence’dır diyebiliriz.
Siz de gözlemlemissinizdir; maintanence sırasında yaşanan sorunların tam nedeni şudur:
openX bakım periyodu sirasinda raw impression isimli tablo’yu kilitliyor. Bu tablo gösterim vs ile ilgili istatistiki “raw” verinin yazildigi tablodur. Maintanence periyodu başlayınca bu raw veri işlenir ve anlamlandırılarak rapor tablolarına yazılır. Boylece istatistiklerinizi net olarak goruntuleyebilirsiniz.
Ancak bu periyod sırasında tablonun (haklı nedenlerle) kilitlenmesi ve bu süre boyunca herhangi bir veri yazılmasına izin verilmemesi apache’nin cok yuklenmesine neden olabiliyor. Bunun nedeni ise apache süreçlerinin yeni impressionları ilgili tabloya yazamamaları ve beklemek durumunda kalıp sistem kaynaklarının bitmesine neden olmalarıdır. Bunun nedeni keep alive’ın açık olmasıdır.
Keep alive’ı kapatırsanız performansta bir iyileşme görürsünüz ancak eşzamanli istek sayınız fazla ise gelen baglantılar drop edilebilir. Boylece bir kısım insan reklam goruntuleyemez ve istatistiklerde düşme olur.
Bu konu ile ilgili olarak önerilerim şunlardır:
Birincisi sunucunuzda kesinlikle eaccelerator kullanın. Bu sunucu performansını çok ciddi biçimde arttıracaktır. İkincisi (sistem özellikleriniz nedir bilmiyorum ama) apache child değerlerini kendinize göre (ve deneme yanılma yöntemi ile) optimize etmeye çalışın. Yani sistem kaynaklarınızı en efektif şekilde kullamaya bakın.
Ayrıca, MySQL tablo şeması olarak myISAM yerine InnoDB kullanılması da öneriliyor. Çünkü InnoDB tablolarda bakım sırasında tablo kilitlemeye ihtiyaç duyulmuyor. Ancak ben bunu denemediğim için sonuç nasıl olur bilemiyorum.
Umarım yardımcı olabilmişimdir.
İyi çalışmalar dilerim.
[Cevapla]
Selamlar,
Open X’in kurulumunu anlatmışsınız ancak bir pazarlamacı yönünde faydaları ve raporlama kabiliyetlerini eksik bırakmışsınız. Bu konuda da bizi aydınlatırsanız seviriz.
Bu arada sitenizi beğenerek izliyoruz.
[Cevapla]
Selamlar,
Ben isin daha cok teknik kismi ile ilgilendigim icin pazarlama yonundeki faydalarini tam olarak ifade etmem mümkün degil.
Ilginize tesekkur ederim.
[Cevapla]
merhaba ..
openx in 2.8.7 sini kurdum .. ilk kurulumdan sonra admin sayfasinda bi sıkıntı yok ..
ama farklı makinalardan girersem yada cache i temizlersem css lerde sorun oluyor ..
http://xxxx.com/www/admin/assets/min.php?g=oxp-css-ltr&v=2.8.7
adresi calismiyor .. sıkıştırma ile ilgili bi sorun var sanırım yardımcı olabilirmisiniz ?
[Cevapla]
Merhabalar,
Ufak bi not eklemek istedim..
Cron çalıştırırken wget ile php dosyalarını çagırdıgımızda, wget in PHP dosyasının tamamlanmasını beklemesi (özellikle de time limit artırılan dosyalarda cok büyük sıkıntı) sistemde inanılmaz bir yük oluşturdugunu gördük. bunun yerine aynı sunucudaki php dosyalarını cron ile çalıştırmak için /usr/bin/php ile çalıştırılması faydalı olacaktır.
[Cevapla]
Çagrı bey openx ile bir reklam server ı kurup sitelere reklam barındırma hizmeti verebilirmiyiz profosyenel olarak.Boyle bir proje kazandırırmı fikirlerinizi bekliyorum
[Cevapla]
Selamlar,
Evet o openX’in o işleri yapabilmeniz için kullanılan market isimli bir modülü de var. Kullanabilirsiniz yani.
[Cevapla]