Ana Sayfa » *nix » OpenX 2.8 Ad Server Kurulumu

OpenX 2.8 Ad Server Kurulumu


BerbatKötüİdare EderGüzelHarika (Toplam 3 oy. 5 puan üzerinden ortalama 5,00 || Oy vererek siz de katkıda bulunabilirsiniz.)
Loading...

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
, oldukça gelişmiş ve güzel bir reklam yötenim sistemidir. kullanarak sitenizde yayınladığınız reklamları kolayca yönetebilir ve reklam verenlerinize gelişmiş, istatistigi raportlama yapabilirsiniz. tabalı olan database olarak MySql kullanıyor ve oldukça performanslı çalışıyor. openx_logo

Ben, OpenX kullanarak, bir mysql bir 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, 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 , php5 ve mysql-server kurulu ve çalışıyor olmalı olmalı.

NOT: Bu bileşenlerin nasıl kurulacağı detaylı olarak anlatılmamakla beraber minimum , 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 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.

Warning 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

Visited 1.385 times, 1 visit(s) today
Kategoriler: *nix,apache,Mysql |

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


  1. Gürsel | (Ağustos 3rd, 2009 12:03 am)

    Openx çalışması için illa servere mi kurulması gerek. Ben bi host firmasından host aldım openx kullanamazmıyım?

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Hosting aldiginiz sunucu mysql ve php5 destekliyorsa, elbette kurabilirsiniz.

    [Cevapla]

  2. Okan | (Ekim 11th, 2009 11:12 am)

    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]

    Cagri Ersen tarafından yanıtlandı.

    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]

  3. Yalçın Parmaksız | (Ocak 12th, 2010 11:58 am)

    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]

    Cagri Ersen tarafından yanıtlandı.

    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]

  4. Özcan VURAL | (Ekim 10th, 2010 12:26 pm)

    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]

  5. Cem İbrahim ARI | (Temmuz 12th, 2011 4:44 pm)

    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]

  6. izzet | (Eylül 16th, 2012 11:06 pm)

    Ç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]

    Cagri Ersen tarafından yanıtlandı.

    Selamlar,

    Evet o openX’in o işleri yapabilmeniz için kullanılan market isimli bir modülü de var. Kullanabilirsiniz yani.

    [Cevapla]

Trackbacks

Yorumda bulunun.