WebCode
ekip
- Katılım
- 13 Ağu 2024
- Mesajlar
- 213
- Tepkime puanı
- 36
XenForo sunucu taşıma işlemi dört parçadan oluşur: forumu kapatıp veritabanını mysqldump ile utf8mb4 karakter setinde yedeklemek, forum dosyalarını yeni sunucuya aktarmak, yeni veritabanını içe aktarıp
Aşağıda her adımı cPanel, Plesk ve root erişimli VPS için ayrı ayrı göreceksiniz. Taşıma sonrası en sık çıkan veritabanı erişim hatalarını, izin sorunlarını ve 500 hatasını da belirtiden nedene doğru ele alıyoruz.
Taşımadan önce yeni sunucunun PHP sürümünü ve eklentilerini kontrol edin. — Fotoğraf: panumas nikhomkhai / Pexels
Yeni sunucunun PHP sürümü, kullandığınız XenForo sürümünün gereksinimlerini karşılamalı ve en azından mysqli, gd, curl, ctype, dom, json ve simplexml eklentileri yüklü olmalı. MySQL veya MariaDB tarafında utf8mb4 desteği bulunmalı. Bu kontrolü dosya aktarmadan önce yapmak, sonradan çıkacak 500 hatalarının çoğunu baştan engeller.
Eski sunucuda hangi PHP sürümünü kullandığınızı not alın; yeni sunucuda daha eski bir sürüme düşmek, özellikle eklentilerde beklenmedik hatalara yol açar. Güncel PHP gereksinimleri XenForo sürümüne göre değiştiği için XenForo resmi dokümantasyonunda kendi sürümünüzün gereksinim sayfasına bakın.
VPS'te yüklü eklentileri tek komutla görebilirsiniz:
Listede bir eklenti çıkmıyorsa dağıtımınıza göre kurun. Debian ve Ubuntu tabanlı sistemlerde paket adları PHP sürümüyle başlar; örneğin PHP 8.2 için:
cPanel'de aynı kontrol Yazılım → Select PHP Version (CloudLinux kullanan sunucularda) veya MultiPHP Manager üzerinden yapılır. Plesk'te ise Web Siteleri ve Alan Adları → PHP Ayarları ekranından sürüm seçilir, eklentiler sunucu yöneticisinin açtığı listeye bağlıdır. Panel menü adları sürümünüze göre farklı olabilir.
Taşıma aynı zamanda sürüm yükseltmesiyle denk geliyorsa iki işi birbirine karıştırmayın. Önce forumu mevcut sürümüyle taşıyın, çalıştığını doğrulayın, ardından XenForo 2.2'den 2.3'e yükseltme adımlarını uygulayın. Bir sorun çıktığında kaynağın taşıma mı yükseltme mi olduğunu bu şekilde ayırt edebilirsiniz.
XenForo yönetim panelinde Kurulum → Seçenekler → Forum aktif (İngilizce arayüzde Setup → Options → Board active) bölümündeki kutunun işaretini kaldırın ve kapalı mesajı alanına kısa bir bilgilendirme yazın. Yöneticiler forumu kapalıyken de görebilir, ziyaretçiler ise mesajınızı görür. Türkçe dil paketine göre menü adları biraz farklı olabilir.
Kapatmadan önce zamanlanmış görevlerin bitmesini bekleyin. Diyelim ki o sırada büyük bir arama dizini yeniden oluşturma işi çalışıyor; yarım kalan iş yeni sunucuda yeniden başlar ama gereksiz yük demektir. Ziyaretçilere daha şık bir bakım sayfası göstermek isterseniz ücretsiz website bakımda scriptini DNS geçişi sırasında eski sunucuda geçici olarak kullanabilirsiniz.
Veritabanı yedeği SSH üzerinden mysqldump ile alınır. — Fotoğraf: Rafael Minguet Delgado / Pexels
XenForo yedek alma işleminin en önemli kısmı veritabanıdır. En güvenilir yol SSH üzerinden mysqldump komutunu
Önce
Parametrelerin ne işe yaradığını bilmek, hata çıktığında neye bakacağınızı gösterir:
Parametrelerin tam listesi için MySQL'in mysqldump dokümantasyonuna bakabilirsiniz.
Yedeği aldıktan sonra dosyanın sağlam olduğunu kontrol edin:
Son satırda
Kaynak yolun sonundaki eğik çizgi önemlidir:
Nokta ile arşivlemek,
PHP, dosyaların sahibinden farklı bir kullanıcıyla (örneğin www-data) çalışıyorsa yalnızca bu iki klasöre daha geniş yazma izni verin:
777 izni bütün klasörlere yaymayın. cPanel ve Plesk'te dosyalar zaten hesap kullanıcısına ait olduğundan genellikle 755 yeterli olur.
Yeni veritabanı utf8mb4 karakter setiyle oluşturulmalı. — Fotoğraf: Christina Morillo / Pexels
Yeni sunucuda önce utf8mb4 karakter setinde boş bir veritabanı ve yalnızca bu veritabanına yetkili bir kullanıcı oluşturulur. Ardından aldığınız döküm, aynı karakter seti belirtilerek içe aktarılır. Veritabanını farklı karakter setiyle oluşturmak, taşımadan sonra mesajlarda soru işaretleri görmenin en yaygın nedenidir.
Sonra yedeği içe aktarın:
İşlem bittiğinde tablo sayısını eski sunucuyla karşılaştırın:
cPanel, veritabanı ve kullanıcı adının başına hesap adını önek olarak ekler.
Dosyanın veritabanı kısmı şöyle görünmelidir:
Dosyada başka satırlar da varsa şunlara dikkat edin:
Alan adı da değişiyorsa yönetim panelinde Kurulum → Seçenekler → Temel forum bilgileri altındaki forum adresini (Board URL) yeni adresle güncelleyin. Aksi hâlde e-postalardaki bağlantılar ve bazı yönlendirmeler eski alan adını gösterir.
TTL'yi önceden düşürmek DNS geçişini hızlandırır. — Fotoğraf: Brett Sayles / Pexels
DNS geçişinden en az bir gün önce alan adının A kaydındaki TTL değerini 300 saniye gibi düşük bir değere çekmek gerekir. Böylece IP değişikliği yaptığınızda dünyadaki DNS sunucuları eski adresi uzun süre önbellekte tutmaz ve kullanıcılar birkaç dakika içinde yeni sunucuya ulaşır.
TTL'yi düşürmenin işe yaraması için eski TTL süresi kadar beklemeniz gerekir. Kayıt 86400 saniye (bir gün) ise, düşük TTL'nin yayılması için en az bir gün önceden değiştirin.
Eklenecek satır:
Bu hâldeyken giriş yapın, bir ek yükleyin, avatar değiştirin, bir konuya yanıt yazıp silin. Her şey çalışıyorsa DNS kaydını değiştirin ve test bittiğinde hosts satırını kaldırın.
Cloudflare kullanıyorsanız A kaydını Cloudflare panelinde güncellemeniz yeterli; proxy açık olduğu için geçiş genellikle hızlı olur. Gerçek ziyaretçi IP'lerinin doğru görünmesi için XenForo Cloudflare eklentisinin yeni sunucuda da etkin olduğunu kontrol edin. Yayılımı terminalden şöyle izleyebilirsiniz:
Geçiş tamamlandıktan sonra birkaç gün eski sunucuyu kapatmayın ve eski forumu kapalı tutun. Hâlâ eski IP'ye düşen kullanıcı bakım mesajını görür, yeni sunucuda yazılan mesajlarla çakışan bir içerik oluşmaz.
Forum yalnızca boş beyaz sayfa veya "500 Internal Server Error" gösteriyorsa ilk bakacağınız yer sunucunun PHP hata günlüğüdür. cPanel'de Ölçümler → Hatalar, Plesk'te alan adının Günlükler ekranı, VPS'te ise web sunucusunun error log dosyası kullanılır. Yönetim paneline girebiliyorsanız Araçlar → Günlükler → Sunucu hata günlüğü de XenForo tarafındaki hataları listeler.
Nginx kullanan bir VPS'e taşıdıysanız .htaccess işe yaramaz. Sunucu bloğuna şu satırın eklenmesi gerekir:
PHP eklentileri hakkında daha fazla bilgiye PHP resmi kılavuzundan ulaşabilirsiniz.
Hata günlüğü, sorunun kaynağını çoğu zaman doğrudan gösterir. — Fotoğraf: Godfrey Atima / Pexels
Forum açıldıktan sonra XenForo'nun ana verilerini yeniden oluşturmak, yeni sunucuda eski yollardan veya eski önbellekten kalan tutarsızlıkları giderir. Bu işlem hem yönetim panelinden hem de komut satırından yapılabilir; büyük forumlarda komut satırı zaman aşımına düşmediği için daha güvenlidir.
Komut satırından forum kök dizininde şunu çalıştırın:
Panelden yapmak isterseniz Araçlar → Önbellekleri yeniden oluştur ekranında sırasıyla ana verileri ve gerekiyorsa arama dizinini yeniden oluşturun. Ardından PHP OPcache'i temizlemek için PHP-FPM'i yeniden başlatın:
Servis adı PHP sürümünüze göre değişir. Paylaşımlı hostingte bu adım yerine PHP sürümünü panelden değiştirip geri almak da OPcache'i sıfırlar.
XenForo zamanlanmış görevleri ziyaretçi trafiğiyle tetikler. Yeni sunucuda bunu sunucu cron'una bağlamak isterseniz her dakika çalışacak şu satırı ekleyebilirsiniz:
Son olarak Google tarafını unutmayın. Alan adı aynı kaldıysa Search Console'da ek bir işlem gerekmez, yalnızca birkaç gün tarama hatalarını izleyin. Taşımanın ardından sayfalar dizinden düşmeye başlarsa Google index problemi konusundaki kontrolleri uygulayın.
Taşımanın özü sıralamaya sadık kalmaktır: önce yeni sunucuyu hazırlayın, forumu kapatın, utf8mb4 ile yedekleyin, dosyaları izinleriyle birlikte aktarın, config.php'yi güncelleyin ve hosts dosyasıyla test etmeden DNS'e dokunmayın. Bir hata çıkarsa hata metnini tablodaki karşılığıyla eşleştirip oradan ilerleyin.
Siz forumunuzu taşırken en çok hangi adımda takıldınız, hangi hata mesajıyla karşılaştınız?
src/config.php dosyasını güncellemek ve son olarak DNS kaydını yeni IP adresine çevirmek. Sırayı bozmazsanız kullanıcı, mesaj veya ek dosyası kaybı yaşamazsınız.Aşağıda her adımı cPanel, Plesk ve root erişimli VPS için ayrı ayrı göreceksiniz. Taşıma sonrası en sık çıkan veritabanı erişim hatalarını, izin sorunlarını ve 500 hatasını da belirtiden nedene doğru ele alıyoruz.
Taşımadan önce yeni sunucuda neleri kontrol etmelisiniz?
Taşımadan önce yeni sunucunun PHP sürümünü ve eklentilerini kontrol edin. — Fotoğraf: panumas nikhomkhai / Pexels
Yeni sunucunun PHP sürümü, kullandığınız XenForo sürümünün gereksinimlerini karşılamalı ve en azından mysqli, gd, curl, ctype, dom, json ve simplexml eklentileri yüklü olmalı. MySQL veya MariaDB tarafında utf8mb4 desteği bulunmalı. Bu kontrolü dosya aktarmadan önce yapmak, sonradan çıkacak 500 hatalarının çoğunu baştan engeller.
Eski sunucuda hangi PHP sürümünü kullandığınızı not alın; yeni sunucuda daha eski bir sürüme düşmek, özellikle eklentilerde beklenmedik hatalara yol açar. Güncel PHP gereksinimleri XenForo sürümüne göre değiştiği için XenForo resmi dokümantasyonunda kendi sürümünüzün gereksinim sayfasına bakın.
VPS'te yüklü eklentileri tek komutla görebilirsiniz:
Kod:
php -v
php -m | grep -i -E 'mysqli|gd|curl|ctype|dom|json|simplexml|zlib|iconv'
Listede bir eklenti çıkmıyorsa dağıtımınıza göre kurun. Debian ve Ubuntu tabanlı sistemlerde paket adları PHP sürümüyle başlar; örneğin PHP 8.2 için:
Kod:
sudo apt install php8.2-mysql php8.2-gd php8.2-curl php8.2-xml php8.2-mbstring
sudo systemctl restart php8.2-fpm
cPanel'de aynı kontrol Yazılım → Select PHP Version (CloudLinux kullanan sunucularda) veya MultiPHP Manager üzerinden yapılır. Plesk'te ise Web Siteleri ve Alan Adları → PHP Ayarları ekranından sürüm seçilir, eklentiler sunucu yöneticisinin açtığı listeye bağlıdır. Panel menü adları sürümünüze göre farklı olabilir.
Kısa kontrol listesi
| Kontrol | Neden gerekli | Eksikse görülen belirti |
|---|---|---|
| PHP sürümü eskisiyle aynı veya daha yeni | Eklenti ve çekirdek uyumu | Beyaz sayfa, 500 hatası |
| mysqli eklentisi | Veritabanı bağlantısı | Class 'mysqli' not found |
| gd veya imagick | Avatar ve küçük resim üretimi | Resim yüklemede hata, eksik küçük resimler |
| curl | Dış istekler, medya gömme, eklenti lisans kontrolleri | Call to undefined function curl_init() |
| utf8mb4 desteği | Emoji ve çok baytlı karakterler | Mesajlarda soru işaretleri |
| Yeterli disk alanı | data ve internal_data klasörleri büyük olabilir | Aktarımın yarıda kesilmesi |
Taşıma aynı zamanda sürüm yükseltmesiyle denk geliyorsa iki işi birbirine karıştırmayın. Önce forumu mevcut sürümüyle taşıyın, çalıştığını doğrulayın, ardından XenForo 2.2'den 2.3'e yükseltme adımlarını uygulayın. Bir sorun çıktığında kaynağın taşıma mı yükseltme mi olduğunu bu şekilde ayırt edebilirsiniz.
Taşıma sırasında forum neden kapatılmalı?
Yedek alınırken forum açık kalırsa, yedekten sonra yazılan mesajlar, yeni üyelikler ve yüklenen ekler yeni sunucuya hiç ulaşmaz. Ayrıca dosya yedeği ile veritabanı yedeği arasında fark oluşur; veritabanında kaydı olan bir ek dosyası diskte bulunmayabilir. Forumu kapatmak bu tutarsızlığı önler.XenForo yönetim panelinde Kurulum → Seçenekler → Forum aktif (İngilizce arayüzde Setup → Options → Board active) bölümündeki kutunun işaretini kaldırın ve kapalı mesajı alanına kısa bir bilgilendirme yazın. Yöneticiler forumu kapalıyken de görebilir, ziyaretçiler ise mesajınızı görür. Türkçe dil paketine göre menü adları biraz farklı olabilir.
Kapatmadan önce zamanlanmış görevlerin bitmesini bekleyin. Diyelim ki o sırada büyük bir arama dizini yeniden oluşturma işi çalışıyor; yarım kalan iş yeni sunucuda yeniden başlar ama gereksiz yük demektir. Ziyaretçilere daha şık bir bakım sayfası göstermek isterseniz ücretsiz website bakımda scriptini DNS geçişi sırasında eski sunucuda geçici olarak kullanabilirsiniz.
XenForo veritabanı yedeği mysqldump ile nasıl alınır?
Veritabanı yedeği SSH üzerinden mysqldump ile alınır. — Fotoğraf: Rafael Minguet Delgado / Pexels
XenForo yedek alma işleminin en önemli kısmı veritabanıdır. En güvenilir yol SSH üzerinden mysqldump komutunu
--single-transaction ve --default-character-set=utf8mb4 parametreleriyle çalıştırmaktır. Böylece InnoDB tabloları kilitlenmeden tutarlı biçimde alınır ve emoji içeren mesajlar bozulmaz.Önce
src/config.php dosyasından veritabanı adını ve kullanıcısını öğrenin, ardından şu komutu çalıştırın:
Kod:
mysqldump --single-transaction --quick --default-character-set=utf8mb4 --routines --triggers -u eski_kullanici -p xf_veritabani | gzip > xf_yedek.sql.gz
Parametrelerin ne işe yaradığını bilmek, hata çıktığında neye bakacağınızı gösterir:
- --single-transaction: Yedeği tek bir işlem içinde alır, InnoDB tablolarında tutarlı anlık görüntü sağlar. MyISAM tabloları için bu garanti yoktur; forumu kapatmanın bir nedeni de budur.
- --quick: Büyük tabloları satır satır okur, belleği şişirmez. xf_post gibi büyük tablolarda fark yaratır.
- --default-character-set=utf8mb4: Bağlantıyı utf8mb4 ile kurar. Bu atlanırsa Türkçe karakterler ve emojiler dökümde bozulabilir.
- --routines --triggers: Varsa saklı yordamları ve tetikleyicileri de dökümüne ekler.
Parametrelerin tam listesi için MySQL'in mysqldump dokümantasyonuna bakabilirsiniz.
SSH erişiminiz yoksa
cPanel'de Dosyalar → Yedekleme bölümünden tek veritabanı yedeğini indirebilirsiniz. Plesk'te Veritabanları ekranında ilgili veritabanının yanındaki dışa aktarma seçeneği aynı işi görür. phpMyAdmin dışa aktarımı küçük forumlarda yeterlidir ama büyük veritabanlarında zaman aşımına düşer; yüzlerce megabaytlık bir veritabanında SSH'ı tercih edin veya hostinginizden döküm almasını isteyin.Yedeği aldıktan sonra dosyanın sağlam olduğunu kontrol edin:
Kod:
gunzip -t xf_yedek.sql.gz && echo "arsiv saglam"
zcat xf_yedek.sql.gz | tail -n 1
Son satırda
Dump completed ifadesini görüyorsanız döküm yarıda kesilmemiş demektir.Forum dosyaları yeni sunucuya nasıl aktarılır?
XenForo dosyalarının tamamı taşınmalı; en kritik klasörler kullanıcı avatarlarını ve küçük resimleri tutandata ile ekleri, kod önbelleğini ve geçici dosyaları tutan internal_data klasörleridir. İki sunucu arasında SSH varsa rsync en hızlı ve kesintiye en dayanıklı yöntemdir; yoksa tar ile arşivleyip taşıyabilirsiniz.rsync ile doğrudan aktarım
Yeni sunucuda hedef klasörü oluşturduktan sonra eski sunucudan şu komutu çalıştırın:
Kod:
rsync -avz --progress -e ssh /home/eskikullanici/public_html/ [email protected]:/var/www/forum/
Kaynak yolun sonundaki eğik çizgi önemlidir:
public_html/ yazarsanız klasörün içeriği, public_html yazarsanız klasörün kendisi kopyalanır. Bağlantı koparsa aynı komutu yeniden çalıştırmanız yeterli; rsync yalnızca eksik kalan dosyaları gönderir.tar ile arşivleyerek aktarım
Kod:
cd /home/eskikullanici/public_html
tar -czf /home/eskikullanici/xf_dosyalar.tar.gz .
scp /home/eskikullanici/xf_dosyalar.tar.gz [email protected]:/var/www/forum/
cd /var/www/forum
tar -xzf xf_dosyalar.tar.gz
rm xf_dosyalar.tar.gz
Nokta ile arşivlemek,
.htaccess gibi gizli dosyaların da arşive girmesini sağlar. Apache ve LiteSpeed sunucularda bu dosya eksik kalırsa kısa adresler (friendly URL) çalışmaz ve forum ana sayfası dışındaki her sayfa 404 verir.data ve internal_data izinleri
PHP'nin bu iki klasöre yazabilmesi gerekir. PHP-FPM site kullanıcısıyla çalışıyorsa sahipliği düzeltmek yeterlidir:
Kod:
chown -R yenikullanici:yenikullanici /var/www/forum
find /var/www/forum -type d -exec chmod 755 {} \;
find /var/www/forum -type f -exec chmod 644 {} \;
PHP, dosyaların sahibinden farklı bir kullanıcıyla (örneğin www-data) çalışıyorsa yalnızca bu iki klasöre daha geniş yazma izni verin:
Kod:
chmod -R 777 /var/www/forum/data /var/www/forum/internal_data
777 izni bütün klasörlere yaymayın. cPanel ve Plesk'te dosyalar zaten hesap kullanıcısına ait olduğundan genellikle 755 yeterli olur.
Yeni sunucuda XenForo veritabanı taşıma nasıl yapılır?
Yeni veritabanı utf8mb4 karakter setiyle oluşturulmalı. — Fotoğraf: Christina Morillo / Pexels
Yeni sunucuda önce utf8mb4 karakter setinde boş bir veritabanı ve yalnızca bu veritabanına yetkili bir kullanıcı oluşturulur. Ardından aldığınız döküm, aynı karakter seti belirtilerek içe aktarılır. Veritabanını farklı karakter setiyle oluşturmak, taşımadan sonra mesajlarda soru işaretleri görmenin en yaygın nedenidir.
VPS veya root erişimli sunucu
MySQL'e root olarak bağlanıp şu komutları çalıştırın:
Kod:
CREATE DATABASE xf_forum CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'xf_kullanici'@'localhost' IDENTIFIED BY 'GucluBirSifre123';
GRANT ALL PRIVILEGES ON xf_forum.* TO 'xf_kullanici'@'localhost';
FLUSH PRIVILEGES;
Sonra yedeği içe aktarın:
Kod:
gunzip < xf_yedek.sql.gz | mysql --default-character-set=utf8mb4 -u xf_kullanici -p xf_forum
İşlem bittiğinde tablo sayısını eski sunucuyla karşılaştırın:
Kod:
mysql -u xf_kullanici -p -e "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='xf_forum';"
cPanel
- Veritabanları → MySQL Veritabanları ekranında yeni veritabanını oluşturun.
- Aynı sayfanın altında yeni kullanıcı ekleyin ve güçlü bir şifre belirleyin.
- "Veritabanına kullanıcı ekle" bölümünden kullanıcıyı veritabanına bağlayıp TÜM AYRICALIKLAR kutusunu işaretleyin.
- Dökümü phpMyAdmin'in İçe Aktar sekmesinden yükleyin; dosya, yükleme sınırını aşıyorsa SSH'tan yukarıdaki mysql komutunu kullanın.
cPanel, veritabanı ve kullanıcı adının başına hesap adını önek olarak ekler.
xf_forum yazdıysanız gerçek ad hesapadi_xf_forum olur. config.php'ye bu tam adı yazmanız gerekir.Plesk
- İlgili alan adında Veritabanları → Veritabanı Ekle adımını izleyin.
- Veritabanı adını, sunucusunu ve kullanıcı bilgilerini aynı ekranda girin.
- Oluşan veritabanının yanındaki Dökümü İçe Aktar seçeneğiyle .sql veya .gz dosyasını yükleyin.
XenForo config.php ayarları nasıl güncellenir?
XenForo'nun veritabanı bilgileri forum kök dizinindekisrc/config.php dosyasında tutulur. Taşıma sonrası bu dosyada sunucu adresi, port, kullanıcı adı, şifre ve veritabanı adı yeni değerlerle değiştirilmelidir. Diğer satırlara, özellikle önbellek ayarlarına, yeni sunucuda karşılığı varsa dokunmanıza gerek yoktur.Dosyanın veritabanı kısmı şöyle görünmelidir:
Kod:
<?php
$config['db']['host'] = 'localhost';
$config['db']['port'] = '3306';
$config['db']['username'] = 'xf_kullanici';
$config['db']['password'] = 'GucluBirSifre123';
$config['db']['dbname'] = 'xf_forum';
$config['fullUnicode'] = true;
fullUnicode satırı, veritabanı utf8mb4 ise true olmalıdır. Eski sunucudaki dosyada bu satır yoksa ve forumunuz eski bir utf8 kurulumundan geliyorsa, eklemeden önce tabloların karakter setini kontrol edin; tablolar utf8 iken bu değeri true yapmak emoji içeren mesajlarda hataya yol açar.Dosyada başka satırlar da varsa şunlara dikkat edin:
- $config['cache'] bloğu Redis veya Memcached kullanıyorsa, bu servisin yeni sunucuda kurulu ve çalışır olması gerekir. Kurulu değilse blok geçici olarak yorum satırına alınabilir; aksi hâlde forum açılmaz.
- $config['db']['socket'] tanımlıysa yeni sunucudaki MySQL soket yolu farklı olabilir. Emin değilseniz bu satırı kaldırıp host ile bağlanın.
- $config['debug'] satırı canlı forumda açık kalmamalıdır. Sorun gidermek için geçici açıp kapatmayı XenForo hata ayıklama modunu açma ve kapatma konusunda anlatılan şekilde yapabilirsiniz.
Alan adı da değişiyorsa yönetim panelinde Kurulum → Seçenekler → Temel forum bilgileri altındaki forum adresini (Board URL) yeni adresle güncelleyin. Aksi hâlde e-postalardaki bağlantılar ve bazı yönlendirmeler eski alan adını gösterir.
DNS geçişini kesintisiz yapmak için TTL nasıl ayarlanır?
TTL'yi önceden düşürmek DNS geçişini hızlandırır. — Fotoğraf: Brett Sayles / Pexels
DNS geçişinden en az bir gün önce alan adının A kaydındaki TTL değerini 300 saniye gibi düşük bir değere çekmek gerekir. Böylece IP değişikliği yaptığınızda dünyadaki DNS sunucuları eski adresi uzun süre önbellekte tutmaz ve kullanıcılar birkaç dakika içinde yeni sunucuya ulaşır.
TTL'yi düşürmenin işe yaraması için eski TTL süresi kadar beklemeniz gerekir. Kayıt 86400 saniye (bir gün) ise, düşük TTL'nin yayılması için en az bir gün önceden değiştirin.
DNS'i değiştirmeden yeni sunucuyu test edin
Bilgisayarınızın hosts dosyasına bir satır ekleyerek alan adını yalnızca kendiniz için yeni sunucuya yönlendirebilirsiniz:| İşletim sistemi | Dosya yolu |
|---|---|
| Windows 10 ve 11 | C:\Windows\System32\drivers\etc\hosts (Not Defteri'ni yönetici olarak açın) |
| macOS ve Linux | /etc/hosts (sudo ile düzenleyin) |
Eklenecek satır:
Kod:
203.0.113.10 forum.siteniz.com
Bu hâldeyken giriş yapın, bir ek yükleyin, avatar değiştirin, bir konuya yanıt yazıp silin. Her şey çalışıyorsa DNS kaydını değiştirin ve test bittiğinde hosts satırını kaldırın.
Cloudflare kullanıyorsanız A kaydını Cloudflare panelinde güncellemeniz yeterli; proxy açık olduğu için geçiş genellikle hızlı olur. Gerçek ziyaretçi IP'lerinin doğru görünmesi için XenForo Cloudflare eklentisinin yeni sunucuda da etkin olduğunu kontrol edin. Yayılımı terminalden şöyle izleyebilirsiniz:
Kod:
dig +short forum.siteniz.com
nslookup forum.siteniz.com 8.8.8.8
Geçiş tamamlandıktan sonra birkaç gün eski sunucuyu kapatmayın ve eski forumu kapalı tutun. Hâlâ eski IP'ye düşen kullanıcı bakım mesajını görür, yeni sunucuda yazılan mesajlarla çakışan bir içerik oluşmaz.
XenForo taşıma sonrası 500 hatası ve diğer tipik sorunlar
Taşıma sonrası hataların büyük kısmı üç kaynaktan gelir: config.php'deki yanlış veritabanı bilgisi, data ve internal_data klasörlerindeki izin sorunu ve yeni sunucuda eksik kalan bir PHP eklentisi. Hata mesajının birebir metni, hangisiyle uğraştığınızı çoğu zaman doğrudan söyler.Forum yalnızca boş beyaz sayfa veya "500 Internal Server Error" gösteriyorsa ilk bakacağınız yer sunucunun PHP hata günlüğüdür. cPanel'de Ölçümler → Hatalar, Plesk'te alan adının Günlükler ekranı, VPS'te ise web sunucusunun error log dosyası kullanılır. Yönetim paneline girebiliyorsanız Araçlar → Günlükler → Sunucu hata günlüğü de XenForo tarafındaki hataları listeler.
| Gördüğünüz hata | Olası neden | Çözüm |
|---|---|---|
| SQLSTATE[HY000] [1045] Access denied for user | Kullanıcı adı, şifre veya yetki hatalı | config.php değerlerini, cPanel önekini ve GRANT yetkisini kontrol edin |
| SQLSTATE[HY000] [1049] Unknown database | Veritabanı adı yanlış yazılmış | dbname satırını gerçek adla eşleştirin |
| SQLSTATE[HY000] [2002] No such file or directory | localhost ile soket bulunamadı | host değerini 127.0.0.1 yapın veya doğru socket yolunu girin |
| Class 'mysqli' not found | mysqli eklentisi yok | php-mysql paketini kurup PHP-FPM'i yeniden başlatın |
| Call to undefined function curl_init() | curl eklentisi yok | php-curl paketini kurun |
| Call to undefined function imagecreatefromjpeg() | gd eklentisi yok veya JPEG desteği eksik | php-gd paketini kurun |
| Failed to open stream: Permission denied (internal_data içinde) | Yazma izni yok | Sahipliği ve klasör izinlerini düzeltin |
| Ana sayfa açılıyor, diğer sayfalar 404 | .htaccess eksik veya Nginx kuralı yok | .htaccess dosyasını aktarın, Nginx'te try_files kuralını ekleyin |
| Mesajlarda soru işaretleri | Karakter seti uyumsuzluğu | Dökümü utf8mb4 ile yeniden alıp içe aktarın |
Nginx kullanan bir VPS'e taşıdıysanız .htaccess işe yaramaz. Sunucu bloğuna şu satırın eklenmesi gerekir:
Kod:
location / {
try_files $uri $uri/ /index.php?$uri&$args;
}
PHP eklentileri hakkında daha fazla bilgiye PHP resmi kılavuzundan ulaşabilirsiniz.
Hata bir eklentiden geliyorsa
Günlükte yolusrc/addons/ ile başlayan bir dosya görüyorsanız sorun çekirdekte değil, üçüncü taraf bir eklentidedir. Panel açılmıyorsa XenForo'da tüm eklentileri devre dışı bırakma yöntemiyle forumu ayağa kaldırın, sonra eklentileri tek tek açarak sorunlu olanı bulun. LiteSpeed sunucudan Apache veya Nginx sunucuya geçtiyseniz önbellek eklentisinin ayarlarını da gözden geçirin.Taşımadan sonra önbellek nasıl temizlenir?
Hata günlüğü, sorunun kaynağını çoğu zaman doğrudan gösterir. — Fotoğraf: Godfrey Atima / Pexels
Forum açıldıktan sonra XenForo'nun ana verilerini yeniden oluşturmak, yeni sunucuda eski yollardan veya eski önbellekten kalan tutarsızlıkları giderir. Bu işlem hem yönetim panelinden hem de komut satırından yapılabilir; büyük forumlarda komut satırı zaman aşımına düşmediği için daha güvenlidir.
Komut satırından forum kök dizininde şunu çalıştırın:
Kod:
cd /var/www/forum
php cmd.php xf:rebuild-master-data
Panelden yapmak isterseniz Araçlar → Önbellekleri yeniden oluştur ekranında sırasıyla ana verileri ve gerekiyorsa arama dizinini yeniden oluşturun. Ardından PHP OPcache'i temizlemek için PHP-FPM'i yeniden başlatın:
Kod:
sudo systemctl restart php8.2-fpm
Servis adı PHP sürümünüze göre değişir. Paylaşımlı hostingte bu adım yerine PHP sürümünü panelden değiştirip geri almak da OPcache'i sıfırlar.
XenForo zamanlanmış görevleri ziyaretçi trafiğiyle tetikler. Yeni sunucuda bunu sunucu cron'una bağlamak isterseniz her dakika çalışacak şu satırı ekleyebilirsiniz:
Kod:
* * * * * php /var/www/forum/cmd.php xf:run-jobs --max-execution-time=55 > /dev/null 2>&1
Son olarak Google tarafını unutmayın. Alan adı aynı kaldıysa Search Console'da ek bir işlem gerekmez, yalnızca birkaç gün tarama hatalarını izleyin. Taşımanın ardından sayfalar dizinden düşmeye başlarsa Google index problemi konusundaki kontrolleri uygulayın.
Sıkça Sorulan Sorular
XenForo sunucu taşıma ne kadar sürer?
Süre büyük ölçüde data, internal_data klasörlerinin ve veritabanının boyutuna bağlıdır. Küçük bir forum kısa sürede taşınırken, çok sayıda ek dosyası olan forumlarda aktarım saatler alabilir. DNS yayılımı için TTL'yi önceden düşürdüyseniz bu kısım birkaç dakikayla sınırlı kalır.XenForo'yu yeniden kurmam gerekir mi?
Hayır. Dosyaları ve veritabanını eksiksiz taşıyıp config.php'yi güncellediğinizde kurulum sihirbazını çalıştırmanız gerekmez. install klasörü üzerinden yeniden kurulum yapmak mevcut verilerin üzerine yazma riski taşır.Lisansım yeni sunucuda çalışır mı?
XenForo lisansı sunucuya değil alan adına bağlıdır. Alan adı aynı kaldıysa ek bir işlem gerekmez. Alan adı değişiyorsa XenForo müşteri alanından lisans bilgilerinizi güncellemeniz gerekir.phpMyAdmin ile alınan yedek yeterli mi?
Küçük veritabanlarında yeterlidir, ancak dışa aktarma sırasında karakter setinin utf8mb4 olduğundan emin olun. Büyük veritabanlarında phpMyAdmin zaman aşımına düşüp eksik döküm üretebilir; bu yüzden mysqldump daha güvenilirdir.Taşımadan sonra resimler ve avatarlar neden görünmüyor?
En sık neden data klasörünün eksik aktarılması veya PHP'nin bu klasöre yazma izni olmamasıdır. Klasör boyutunu eski sunucuyla karşılaştırın, izinleri düzeltin ve gd eklentisinin yüklü olduğunu kontrol edin.Taşımanın özü sıralamaya sadık kalmaktır: önce yeni sunucuyu hazırlayın, forumu kapatın, utf8mb4 ile yedekleyin, dosyaları izinleriyle birlikte aktarın, config.php'yi güncelleyin ve hosts dosyasıyla test etmeden DNS'e dokunmayın. Bir hata çıkarsa hata metnini tablodaki karşılığıyla eşleştirip oradan ilerleyin.
Siz forumunuzu taşırken en çok hangi adımda takıldınız, hangi hata mesajıyla karşılaştınız?