WordPress Multisite Network Oluşturma

Bu yazımda WordPress’in 3.0 sürümünden sonra bizlere sağladığı ağ kurma ve çoklu site özelliğinden bahsedeceğim. Bu özellik sayesinde birden fazla WordPress kurulumu yapmadan yeni siteler kurabilir ve kurduğunuz tüm siteleri tek bir panelden yönetebilirsiniz. Bu yöntemle ağınıza yeni bir site eklediğinizde ayrı bir dizin veya veritabanı oluşturulmayacak. Sadece veritabanınızda içerikler için yeni tablolar oluşturulacak. wp-posts2, wp-comments2 gibi.

Yalnız bu sistemin kendi içinde bazı kısıtlamaları da bulunuyor. Kurulum yapmadan önce bunları düşünmenizi tavsiye ederim.

WordPress ağını yalnızca alt alan adlarına(subdomain) ve alt dizinlere(subfolder) kurabilirsiniz. Tabiki eklentilerle, yönlendirmelerle vs. harici domainlere de kurulum yapabilmeniz mümkün ancak varsayılan olarak böyle bir seçenek bulunmuyor.

Subdomain: test.hamdicatal.com
Subfolder: hamdicatal.com/test

Kalıcı bağlantı(permalink) ayarlarınız example.com/blog/postname veya example.com/category/postname gibi düzgün yapıda olmalı. Bu konu hakkında daha detaylı bilgi almak için ilgili WordPress makalesine buradan ulaşabilirsiniz.

WordPress kurulumunuz hazırsa ağ oluşturma işlemine başlayabiliriz…

Başlamadan Önce

Aşağıdaki işlemleri uygulamadan, her türlü ihtimale karşı dosyalarınızı, veritabanınızı, wp-config.php ve .htaccess dosyalarını mutlaka yedekleyin. Ayrıca bu işlemi öncelikle yerelde test edip, sonrasında canlı sunucuda uygulamanızı tavsiye ederim.

İşlem Adımları

1-Ağ oluşturmak için öncelikle wp-config.php dosyasına gerekli eklemeleri yapmalıyız. wp-config.php dosyanızı açın ve aşağıdaki satırları dosyaya ekleyip, kaydedin. (“<?php” ve “?>” taglarının arasında olmasına dikkat edin)

/* Multisite */
define( 'WP_ALLOW_MULTISITE', true );

wp-config.php dosyasını düzenledikten sonra yönetici panelinize girin ve sayfayı yenileyin.

2-Sayfayı yenilediğinizde “Araçlar” sekmesinde “Ağ ayarı” seçeneğinin belirdiğini göreceksiniz. Bu seçeneğe tıkladığınızda yukarıdaki gibi bir ekranla karşılaşacaksınız. Ağ adınızı ve yönetici e-postasını belirleyip, “Kur” butonuna tıklayın.

3-Butona tıkladığınızda yukarıdaki gibi bir ekranla karşılaşacaksınız. Birinci aşamadaki bilgileri yine wp-config.php dosyasına, define( 'WP_ALLOW_MULTISITE', true ); komutunun hemen altına eklemelisiniz. Yani wp-config dosyanız aşağı yukarı şu şekilde olmalı; (DOMAIN_CURRENT_SITE ve PATH_CURRENT_SITE bilgileri kurulum ortamınıza ve alan adınıza göre farklı olabilir. Buradaki bilgileri değil, yönetici panelinizdeki bilgileri kullanın)

/* Multisite */
define('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'localhost');
define('PATH_CURRENT_SITE', '/demo/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

4-Bu aşamada karar vermeniz gereken önemli bir nokta var. Ağınıza ekleyeceğiniz siteler alt alan adında(subdomain) mı olacak yoksa alt dizinde(subfolder) mi? Alt alan adı kullanmak istiyorsanız SUBDOMAIN_INSTALL parametresini true, alt dizin(subfolder) olarak kullanmak istiyorsanız false olarak ayarlayıp, kaydedin.

define('SUBDOMAIN_INSTALL', true);
            veya
define('SUBDOMAIN_INSTALL', false);

Yine aynı şekilde domain tercihinize göre .htaccess içeriğini de düzenlemeniz gerekebilir. Eğer subfolder(alt dizin) kullanmak istiyorsanız .htaccess dosyanız şu şekilde;

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

Eğer subdomain(alt alan adı) kullanmayı tercih ediyorsanız .htaccess dosyanız bu şekilde olmalı;

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

Not: Eğer sunucunuzda ana dizinde(public_html) çalışmıyorsanız veya yerelde alt dizinde(subfolder) çalışıyorsanız RewriteBase parametresini düzenlemeniz gerekebilir.

Örneğin; localhost/demo dizini için, RewriteBase /demo/ şeklinde olmalı.

Bu konu hakkında daha detaylı bilgi almak için buradan ilgili makaleye ulaşabilirsiniz. Ben subfolder yapısını kullanmak istediğim için .htaccess dosyamı şu şekilde ayarladım;

5-wp-config.php ve .htaccess dosyalarını düzenledikten sonra kaydedin ve WordPress yönetici paneline giriş yapın.

6-Yönetici paneline giriş yaptığınızda ağınızın yönetim paneline erişeceksiniz. Buradan ağınıza yeni site ekleyebilir veya varolan sitelerinizi düzenleyebilirsiniz. Öncelikle site ekleme işinden bahsedelim.

Sol taraftaki menüden “Siteler” sekmesinden “Yeni ekle” seçeneğini seçin. Yukarıdaki ekran ekrana ulaştığınızda site URL’ini, başlığını, dilini ve yönetici bilgilerini belirlemenizi isteyecek. İsteğinize göre doldurup, “Site ekle” butonuna tıklayarak site ekleme işini gerçekleştirebilirsiniz.

7-Site ekleme işini tamamladığınızda “Sitelerim” seçeneğinin altında oluşturduğunuz siteyi görüntüleyebilir veya yönetici paneline erişebilirsiniz.

WordPress çoklu site ağı kullanırken dikkat etmeniz gereken bir diğer konu da eklenti yönetimi. Yeni eklenti yükleme işini sadece ağ yönetim panelinden yapabiliyoruz. Dilediğiniz eklentiyi ağ yönetiminden ekleyebilir, isteğe bağlı olarak sitelerin yönetim panellerinden aktif edebilir veya doğrudan ana yönetim panelinden tüm sitelerinizde etkinleştirebilirsiniz.

Elimden geldiğince detaylı bir şekilde anlatmaya çalıştım. Her ne kadar basit bir işlem olsa da canlı sunucularda uygulamak için öncesinde biraz pratik yapmak gerekebilir. Konu hakkında daha detaylı bilgi almak için buradan ağ oluşturma işleminin anlatıldığı resmi makaleye ulaşabilirsiniz. Bir sonraki yazımda görüşmek üzere…

Hamdi Çatal

Güncel teknolojilere meraklı, yazılım ve mühendislik alanlarında kariyerini sürdürmeyi hedefleyen bir mühendis adayıyım. Her zaman, her işi prensiplerine uygun şekilde gerçekleştirmeyi tercih eden, düzenli ve kararlı bir insanım. Yeniliklerden kaçmak yerine, güncel teknolojilere ayak uydurmaya çalışan bir meraklıyım.

Bunlar da hoşunuza gidebilir...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir