«

»

Şub 13 2011

WordPress Multisite: LDAP destekli kurulum

Bu yazıda; bildiğimiz açık kaynaklı wordpress blog uygulamasını, hem multisite (blogger.com veya blogcu.com gibi, tek sunucuda, tek kurulumda ve tek veritabanında çok sayıda blog) olarak kullanma hem de kullanıcı yetkilendirmesini LDAP'a yönlendirme anlatılacaktır.

Aşağıdaki sürüm ve yapılandırmaları sanal işletim sistemi (Proxmox üzerinde VZ kullanarak) üzerinde birebir iki kere deneyerek kontrol ettim, tamamı çalışıyordu. Ancak uygulama sırasında farklı sorunlar çıkabilir, mesuliyet kabul etmem. Bu yazıdaki amacım, satır satır uygulandığında çalışan bir sistem kurdurmak değil, üniversite için uygun bir kişisel web sunucusu konusunda çalışmak yapmaktır. Farklı tipte uygulamalar da olabilir. Fikir veren olursa, şimdiden teşekkür ederim.

Kullanılan (tümü açık kaynaklı) yazılımlar:

  1. Debian GNU/Linux Squeeze (6.0)
  2. WordPress-3.0.5-tr
  3. WordPress için LDAP eklentisi: Simple LDAP Authentication v1.0.4 (by RedGecko)
  4. OpenLDAP 2.4.23-7
  5. Apache 2.2.16-6
  6. PHP 5.3.3-7
  7. MySQL 5.1.49-3
  8. phpLDAPadmin 1.2.0.5-2

Temel kurulumlar:

  1. Normal WordPress kurulumunu yap.
  2. OpenLDAP ve saz arkadaşlarını kur:
    aptitude install slapd ldap-utils phpldapadmin
  3. LDAP üzerinde kullanıcılarını aç. İstersen konsoldan ldif dosyası kullan, istersen phpLDAPadmin kullan.
  4. LDAP'ın kimlik doğrulama işini yapıp yapamadığını test et:
    ldapsearch -x -W -D 'uid=murat.ozalp,ou=personel,dc=bilecik,dc=edu,dc=tr' -b "" -s base

İnce ayarlar:

  1. WordPress'i LDAP'a yönlendir. Simple LDAP Authentication eklentisi bu WP sürümünde çalıştı. Bunun haricinde 3-5 tane daha denedim, çalıştıramadım. Başka bir tarayıcıdan login olarak LDAP yetkilendirmesinin çalışıp çalışmadığını dene. Eklentiyi tekrar devredışı bırak. Aşağıda yeniden etkinleştireceğiz.
  2. WordPress'i multisite haline getir. (Kaynak: http://codex.wordpress.org/Create_A_Network) Burada .htaccess dosyası kullanırsan, Apache yapılandırmasında "AllowOverride" None kısmını "AllowOverride ALL" olarak düzenle.
  3. Simple LDAP Authentication eklentisini etkinleştir. Ağ olarak etkinleştirme ama, sadece "etkinleştir" seçeneğini kullan.

Kullanım:

  1. WP üzerinde yeni bir site açıldığında, buna dair kullanıcıyı otomatik olarak oluşturuyor zaten. LDAP'taki kullanıcılarla eşleştirmek için iki yol var:
    1. Aynı isimde kullanıcıyı LDAP'ta da açmak
    2. LDAP'taki kullanıcı adının aynısını WP üzerinde de açmak. Eğer WP'de yeni kullanıcı açarsan, ilgili siteye erişim yetkilerini vermeyi unutma.
  2. WP login sayfasında, kullanıcı adı ve parola ikilisi önce LDAP'a gönderiliyor.
    1. LDAP olumlu yanıt verirse, WP'de tanımlanan yetkilerine göre doğrudan içeri alınıyor.
    2. LDAP olumsuz yanıt verirse, bu durumda WP kendi üzerindeki kullanıcı veritabanına (mysql) bakıyor. Buradaki parola uyarsa yine içeri alıyor. Yani bir kullanıcının iki farklı parolası (LDAP & WP) olabilir.
  3. Bizim sistemde kullanıcı adları murat.ozalp şeklinde. WP üzerinde de subdir biçiminde noktalı isimlere izin vermiyor, murat-ozalp şeklinde açılıyor. Benzeri uygulamalar için ya bir dönüştürme betiği gibi birşey yazılabilir veya her bir kullanıcı açıldığında yeniden ayar çekmek gerekebilir.
  4. Simple LDAP Authentication seçeneklerinde, "Automatically create accounts for any…" diye bir seçenek var. Bu seçenek işaretlenirse, LDAP üzerinde kayıtlı olan bir kullanıcı oturum açmak istediğinde, bu kullanıcı WP'de kaytılı olmasa bile bu isimde bir hesap oluşturuluyor.
  5. LDAP üzerinde gruplar ayarlanmışsa, Simple LDAP Authentication seçeneklerindeki "Role Equivalent Groups" kullanılarak; LDAP üzerindeki gruplar, WP üzerindeki yetki tipleri ile eşleştirilebilir. Denemedim.

Şimdilik bukadar. Daha detaylı satır satır komutlarla anlatılan bir PDF hazırlığı var. Meraklıları takip edebilir.

Ekleme (20.05.2011): PDF'ten bahsetmiştim. Çok detaylı olmada da hazırladım sonunda. Şu adresten indirilebilir:
http://web.bilecik.edu.tr/murat-ozalp/files/2011/05/Murat-Özalp-Sunu-s2.pdf
 

 

 

Yorumu formunu geç

  1. 1907

    çok teşekkürler hocam kaç gündür arıyordum

  2. murat

    Çok teşekkürler engin bilgileriniz için..

  3. Serdar

    Hocam gerçekten harikasınız elinize sağlık

  4. Mert

    tam aradığım bir mevzuydu. teşekkür ederim.

  5. seo

    tam aradığım konuydu teşekkürler hocam

  6. selçuk erdem

    Ellerinize Sağlık. Güzel anlatım…

  7. Hasan Hüseyin Çakır

    anlatım çok iyi olmuş, elinize sağlık

  8. Osman

    Sade anlaşılır ve güzel anlatım olmuş.

  9. Mehmet Ali SAMLI

    Konu çok güzel bir dille, anlaşılır şekilde hazırlanmış, teşekkürler…

  10. Havai Fişek

    LDAP ile WordPress çoklu site kurmakta zorlanmıştım baya ama sayenizde sıkıntımı giderdim. Çoook teşekkürler.

  11. ahmet

    Ellerinize sağlık…

  12. ekrem

    Yazınızda bahsetmiş olduğunuz daha detaylı anlatımı sabırsızlıkla bekliyorum. Elinize sağlık gerçekten çok emek vermişssiniz.

    1. Murat Özalp

      Çok detaylı olmasa da bir belge hazırlayıp yazının sonuna eklemiştim zaten. İlginiz için teşekkür ederim.

  13. kenan

    selamlar murat bey, ben LDAP siz kurdum çalışıyor ama eklenen sitelerin yönetim paneline girmiyor kırık döngüye girdiğini söylüyor neden olabilir acaba link aşağıda  http://web.alparslan.edu.tr/kenan/wp-admin/

    1. Murat Özalp

      Sizin WP'de CSS klasörleriniş de bulamıyor sanırım. Adresin sonundaki wp-admin kısmını silince, sayfa geliyor ama CSS yüklenemediği için tasarım kötü geliyor. WP'yi indirdiktren sonra zip içinden .htaccess isminde bir dosya da çıkması lazım. Siz WP klasörünü web klasörüne taşırken bu dosyayı atlamış olabilir misiniz? "." ile başladığı için gizli dosyadır ve ben neredeyse her seferinde unuturum bunu da taşımayı.

  14. kenan

    evet .htaccess dosyasını hatta düzenledim   şimdi sorunu buldum kurarken .htaccess için verdiği kodu ben eklemiştim oysa tamamen değiştirmek gerekiyormuş murat bey  çok Teşekkür ediyorum.  

  15. İsmail Savran

    Yorumunuz…Yazı güzel olmuş. Daha öncede okumuştum ama kullanmak bugüne nasipmiş. Başarılar, devamını bekleriz. 

  16. İsmail Savran

    Yorumunuz…Ayrıca Bütün alt blogları Ana Blog sayfasında nasıl gösterebilirim. "Latest Sites/Blogs" yada "Newest Sites/Blogs"gibi  :).

  17. Murat Özalp

    Bunun için eklenti kullanmışız biz. Çok oldu kuralı, pek hatırlamıyorum. Hatırlamak için baktığımda, şu widget'ları eklediğimizi gördüm: 1. Diamond Bloglist 2. Diamond Recent Posts http://web.bilecik.edu.tr adresi bizim ana blog adresimiz. Bu sayfadaki "aktif bloglar" ve "son yazılar" kısmı dinamik olarak alt bloglardan toplanıyor. Bunu yapan da yukarıda belirttiğim widget'lar. Kurmanıza sevindim. Güzel bir araç. İlginiz için de ayrıca teşekkür ederim.

  18. Paylaşım Alemi

    Çok teşekkürler.Güzel paylasimuz…

  19. SEO

    Gerçektende faydalı bir yazı olmuş ilk okuduğumda anlayamadım ama bir daha üzerinden geçince net olarak anlatılmak istenilenleri anladım. Sayfanızı sık kullanılanlara ekledim sizi takip etmeye devam edeceğim. Böyle güzel makalelerinizin devamını dilerim. Elinize sağlık.

  20. Anonim

    teşekkür ederim hocam

Bir Cevap Yazın

Bad Behavior has blocked 13 access attempts in the last 7 days.