Şub 032015
 
2.035 views

MultiSite WordPress Kurulumu

Bu yazıyı standart wordpress kurulumu konusunda deneyimli kişiler için kaleme aldım. Elbette ilk denemede multisite wordpress kurulumu yapmak ta pekala mümkün. Ancak bir yerde takılınca, multisite ile ilgili yanıt bulmak epeyce sıkıntılı oluyor.

Öte yandan, standart wordpress siteler konusunda deneyimli olduğu halde, multisite konusunda en ufak bir bilgiye bile sahip olmayan çok sayıda webmaster var.

Aslına bakarsanız, multisite wordpress kurulumu, standart kurulumdan çok farklı bir yol izlemiyor. Sadece birkaç küçük ayrıntı var.

Subdomain ayarı: (eğer alt siteler subdomain olacaksa cPanelden aşağıdaki ayar yapılmalı.)

multisite wordpress subdomain

wp-config.php (aşağıdaki satırın wp-config.php dosyasına kurulumdan önce işlenmesi gerekiyor. Bu satır konmazsa, standart kurulum gerçekleşir.)

/* Multisite */
define( ‘WP_ALLOW_MULTISITE’, true );

Normal kurulumu yap.

Tools -> Network setup (Ayarlar -> Ağ ayarları):
Subdomain (alt alan) veya Subdirectory (alt dizin) olarak tanımla.

Ağ ayarları düzenlendiğinde wp-config.php dosyasına eklenmek üzere aşağıdaki satırlar oluşur.

define(‘MULTISITE’, true);
define(‘SUBDOMAIN_INSTALL’, true);
define(‘DOMAIN_CURRENT_SITE’, ‘mydomain.com’);
define(‘PATH_CURRENT_SITE’, ‘/’);
define(‘SITE_ID_CURRENT_SITE’, 1);
define(‘BLOG_ID_CURRENT_SITE’, 1);

(Yukarıdaki satırlarda yer alan mydomain.com yerine kendi alan adınızı yazmalısınız. Alt sitelerinizin xyz.mydomain.com şeklinde çağrılmasını istiyorsanız,

define(‘SUBDOMAIN_INSTALL’, true);

eğer alt sitelerinizin www.mydomain.com/xyz şeklinde çağrılmasını istiyorsanız

define(‘SUBDOMAIN_INSTALL’, false);

satırlarını kullanmanız gerekir.

Son olarak, .htaccess dosyasına eklenmesi gereken temel satırlar şunlar olmalıdır:
.htaccess dosyası:

# BEGIN WordPress

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]

# END WordPress

İşte hepsi bu kadar!..

Temel adımları yeniden özetleyecek olursak:
1. Wp-config.php dosyasına define( ‘WP_ALLOW_MULTISITE’, true );
satırını ekle
2. Ağ ayarları (Network setup) seçeneklerini düzenle
3. “Subdomain” veya “sub directory” yöntemini seç
4. Ağ adı (network name) bilgisini gir
5. Yönetici (admin) eposta adresini tanımla
6. wp-config.php dosyasını verilen kodlara göre düzenle
7. .htaccess dosyasına verilen kodları ekle
8. Siteye yeniden giriş yap

Multisite sistemi tarafından veritabanına eklenen tablolar şunlardır:
• wp_blogs
• wp_blog_versions
• wp_registration_log
• wp_signups
• wp_site
• wp_sitemeta

Ana site tabloları standart tabloların aynısıdır.

Yavru sitelere ait tablolar ise yavru site için verilen blog numarası eklenerek oluşturulur. İçerikler standart tabloların aynısıdır.

Yazımın başında da belirttiğim gibi, wordpress sistemini zaten tanıyor olduğunuzu varsaydım. Bu nedenle bir çok ayrıntıyı burada tekrar vurgulamaya gerek duymadım.

Eğer tek başınıza çok sayıda siteyi yönetmek gibi bir amacınız varsa, multisite wordpress sistemi sizin için güzel bir çözüm sağlayabilir. Ama bu sistemden mucizeler yaratmasını da beklemeyin!

Sorularınızı veya değerlendirmelerinizi yorumlar bölümünden bana iletebilirsiniz.

Ahmet Aksoy

Türkçe kaynaklar:
http://rooteto.com/wordpress/multisite
http://wpnotlari.com/wordpress-multi-site-kurulumu/
http://bimedya.com/multisite-kurulumu-ve-ayarlari

Yabancı kaynaklar:
http://www.wpbeginner.com/wp-tutorials/how-to-install-and-setup-wordpress-multisite-network/
http://www.elegantthemes.com/blog/resources/the-complete-guide-to-creating-a-wordpress-multisite-installation
http://mashable.com/2012/07/26/beginner-guide-wordpress-multisite/

Ara 182014
 
1.472 views

wp-cron.php Nasıl Bir Baş Belasına Dönüşür?

wordpress wp-cron.phpFarklı çözümler peşinde olmak, bazı riskleri de beraberinde getiriyor.

Multisite WordPress uygulamasında ısrar etmek te aynen öyle oldu.

Bu sistemin, tekli bir wordpress uygulamasına; ya da tek başına çalışan sıradan bir web sitesine kıyasla daha fazla kaynak tüketmesi olağan. Ancak bu tüketim sürekli olmaktan çok, anlık çıkışlar halinde. Özellikle wp-cron.php dosyasının devreye girdiği zamanlarda.

Paylaşımlı bir web hosting veya reseller sistemi böyle bir yapı için çok uygun. Çünkü kısa süreli yüksek kaynak ihtiyacını kolaylıkla dengeleyebilir. “Paylaşımlı” sistemin avantajı zaten bu!

Ancak son günlerde bizim hosting firmamız hem sunucuların yerini değiştirdi, hem de cloudlinux sistemine geçti. Bunun sonucu ise benim açımdan tam bir kaos oldu.

Benim sistemim, anlık çıkışlar yapan, ama trafiği çok düşük bir yapıya sahip. Ortaya çıkan tablo da bu nedenle ara sıra kaynak dar boğazına düşen, ama diğer zamanlarda kendine tahsis edilmiş olan kaynağı bile neredeyse hiç kullanmayan bir durumu yansıtıyor.

İlk tepkim hemen sitenin yerini değiştirmekti ama, 2 ay önce zaten yer değiştirmiştim. Arama motorları ve değerlendirme robotları bu tür ani değişikliklerden hiç hoşlanmıyorlar. Örneğin Alexa değerlerim bu kısacık sürede aniden tırmanışa geçti. Bakalım onları yeniden nasıl yoluna sokacağım?…

İşte bu yüzden, ben de WordPress ağımı tekrar daraltmaya karar verdim.

İlk aşama, Google’ın yeni SEO taleplerine uygun olarak ana yapıyı daha dar ama aynı konuya odaklanan subdomain sitelerine dönüştürme çalışmamı sonlandırıp, onları yeniden merkeze toplamak. Böylece wp-cron.php daha az tetiklenmiş olacak. Öte yandan, taşıması daha kolay bir sisteme sahip olmayı umuyorum. Çünkü çok sayıda subdomain siteye sahip olan bir multisite wordpress sisteminde hosting değiştirildiğinde yazılar vb pek fazla sorun çıkartmıyor olsa da, fotoğraflar birer iğneli fıçıya dönüşüyor.

Bu konuya da bir çözüm getirmek iyi olacak. Örneğin tüm alt alan (subdomain) sitelere ait fotoları merkezi bir arşivde toplamak, kaynak güvenliğini biraz riske atsa da, taşınmayı kolaylaştırma ve kargaşayı engelleme açısından çok yararlı olabilir.

Yeni sistemde wp-cron.php dosyasını sadece 1 saatlik aralarla çalıştırıyorum.

Ayrıca, W3 Total Cache eklentisini kaldırdım. Çünkü bu eklenti, büyük yararlarına karşın çok fazla CPU tüketiyor. Bir müddet sonra harici bir cache sistemi kullanmayı deneyebilirim. Ama şimdilik böyle bir riske giremem.

Cpanel’in anti-virüs seçeneklerinden de uzak duruyorum. Site analiz çalışmalarımı iyice yavaşlattım. Çünkü bu çalışmalar bile CPU kullanım değerlerini %90’lara sıçratıyor.

Anlayacağınız, bundan sonraki çalışmalarım belli bir süreliğine düşük tempoda yürüyecek.

Bütün bu olup bitenlere rağmen, bir başka gelişmeye daha tanıklık ediyorum son günlerde: Ana sitemdeki tekil ziyaretçi sayısı neredeyse 2 katına çıktı. Bu değişikliği henüz sağlıklı bir şekilde yorumlayamıyorum. Belki de Google’ın yaptığı yeniliklerden biri, tesadüfen benim çalışmalarımı ödüllendirecek bir fark yaratmıştır. Umarım öyledir… 🙂

ahmet aksoy