Merhabalar,
cPanel lisans ücretleri sebebi ile, cPanel kullanan pek çok firma çok daha uygun bir alternatif olan DirectAdmin Panel'e geçiş yapmaktadır.
Bu yüzden, ilgili dökümanı size yardımcı olabilmek adına paylaşmayı uygun gördük.
Bu dökümanda, cPanel kurulu sunucunuzu yedeklemek, Yedeklerinizi DirectAdmin panel kurulu sunucunuza aktarmak, cPanel formatındaki yedeğinizi DirectAdmin formatına dönüştürmek ve ardından yüklemek için gerkeli işlemlerin tamamı yer almaktadır.
Öncelik İle Bilmeniz Gerekenler, Uyarılar ve Öneriler
- cPanel'de mdbox formatına sahip olan mail adreslerinin transferleri test edilmemiştir.
- Mailman mail listeleri, majordomo mail listelerine dönüştürülmemektedir.
- DirectAdmin'in MySQL veritabanı formatı, kullanıcıadı_dbadı ve kullanıcıadı_dbkullanıcıadı şeklindedir. cPanel de aynı formata sahip ancak karakter sınırlaması size sorun oluşturabilir. (Bkz: https://forums.cpanel.net/threads/username-length-limits.630671/ )
Yedek dönüşüm scripti bu durumlarda kullanıcı adını otomatik olarak kısaltabilmektedir. Ancak, Bu durumlarda sitelere ait veritabanı bilgilerini (Örneğin Wordpress için wp-config.php dosyasını) manuel olarak düzenlemeniz gerekecektir.
Bu durum yaşandığında örnek script çıktısı aşağıdaki gibidir;
Çıktı: WARNING! us_wordpress cannot be owned by user, renaming database user to user_wordpress
- DirectAdmin panel, cPanel'den daha farklı özellikler sunmaktadır. Nginx, Openlitespeed, MySQL8, rspamd vb. avantajları olsa da PostgreSQL ya da Ruby benzeri destekleri bulunmamaktadır.
Bu özelliklere sahip sitelerinizi manuel olarak aktarmanız gerekecektir.
- Öntanımlı olarak kullanıcı adları, max 10 karaktere sahip olabilir. cPanel kullanıcılarınızın karakter limitlerini öğrenmek için;
ls /var/cpanel/users | awk '{print length, $0}' | sort -nr | head -n1
Komutunu kullanabilirsiniz. 10 karakterden uzun kullanıcı adları mevcut ise DirectAdmin'de karakter limitini;
/usr/local/directadmin/conf/directadmin.conf
Dosyasının içerisinde bulunan "max_username_length" satırını düzenleyerek değiştirebilirsiniz. Bu işlemi yapmamanız halinde ilgili kullanıcı convert edilmez ve;
Max username length (X) is smaller than cPanel username (Y)
Hatasını alırsınız.
Önemli NOT: DirectAdmin sunucularınızda MySQL sürümünüz 5.7.8 den düşük ise, mutlaka bunu güncellemelisiniz. MySQL 5.7.8 öncesi sürümler 16 karakter destekleyebildiği ve DirectAdmin'de MySQL adı kullanıcı_adı + Database_adı şeklinde olduğu için daha çok karaktere gereksinim duymanız halinde MariaDB 10.x üstü ya da MySQL 5.7.8 üstü sürüme sahip olmalısınız.
Öncelik ile en uzun kullanıcı adı ile tek bir siteyi denemenizi önermekteyiz. Deneme başarılı olur ise gönül rahatlığı ile tüm sunucunun aktarım işlemine başlayabilirsiniz.
İşlemlere başlayalım;
CPANEL'DEN DIRECTADMIN'E MIGRATION İŞLEMLERİ
Tüm Sunucunun aktarılması için adım adım yapılacaklar aşağıda yer almaktadır;
cPanel Sunucu:
1) Öncelik ile cPanel sunucu üzerindeki tüm hesapları /home/yedekler isimli bir klasöre alalım. (İşlem öncesi en az kullanılan disk alanı kadar boşta disk alanınız olduğundan emin olmanız önerilir. Eğer yeterli disk alanınız bulunmuyor ise makalenin en sonunu inceleyebilirsiniz.)
Komutlar;
mkdir -p /home/yedekler
for user in `ls /var/cpanel/users/`; do { /scripts/pkgacct ${user} /home/yedekler; }; done
2) /home/yedekler içeriğini DirectAdmin kurulu sunucumuza aktaralım.
Komutlar;
rsync -ravz -e "ssh -p SSH_PORT" /home/yedekler/ root@DirectAdmin Sunucu IP Adresi:/home/yedekler/
Örneğin DirectAdmin sunucumuzun IP adresi 93.187.200.200 SSH portu da 9988 olsun, Komutumuz;
rsync -ravz -e "ssh -p 9988" /home/yedekler/ root@93.187.200.200:/home/yedekler/
Şeklinde olacaktır.
Bu işlemlerin ardından cPanel sunucumuzda işlemlerimiz bitti, Convert ve Restore işlemleri için DirectAdmin sunucumuza geçiyoruz.
DirectAdmin Sunucu:
1) Tüm cPanel türündeki Yedeklerinizi DirectAdmin formatına dönüştürerek /home/admin/cpanel_backups klasörüne yerleştirin ve doğru izinleri tanımlayın.
Bunun için;
a) Convert - Dönüştürme scriptini kuralım;
Komutlar;
mkdir -p /root/cpanel_to_da
wget -O cpanel_to_da.sh http://www.custombuild.eu/cpanel/cpanel_to_da.sh
chmod +x cpanel_to_da.sh
wget -O cpanel_da_roundcube.php http://www.custombuild.eu/cpanel/cpanel_da_roundcube.php.txt
wget -O php_sql_parser.tar.gz http://www.custombuild.eu/cpanel/php_sql_parser.tar.gz
tar xzf php_sql_parser.tar.gz
rm -f php_sql_parser.tar.gz
b) Tüm yedekleri dönüştürerek /home/admin/cpanel_backups klasörüne aktaralım;
Komutlar;
mkdir -p /home/admin/cpanel_backups
for i in `ls /home/yedekler/`; do { ./cpanel_to_da.sh /home/yedekler/$i /home/admin/cpanel_backups; }; done
chown -R admin.admin /home/admin/cpanel_backups
2) Bu işlemler ardından /home/admin/cpanel_backups klasöründe DirectAdmin'e yüklenmeye müsait yedeklerimiz bulunacaktır.
Şimdi tek yapmamız gereken bu yedekleri DirectAdmin sunucumuza yüklemek.
DIRECTADMIN SUNUCUDA YEDEKLERİ YÜKLEME İŞLEMLERİ
Bunun için;
Admin düzeyinde DirectAdmin sunucumuza giriş yapalım.
"Admin Backup/Transfer" kısmına giriş yapalım.
Restore Backup sekmesine giriş yapalım.
Burada, Yedek nereden yüklenecek - From where alanını cpanel den convert ettiğimiz yedeklerimizi gösterecek şekilde; "/home/admin/cpanel_backups" şeklinde düzenliyoruz.
IP olarak normalde, Convert işlemini gerçekleştirdiğimiz sunucunun ana IP adresi baz alınacak. Ancak Yedeği yükleyeceğimiz sunucunun IP adresi farklı olduğu için burada manuel müdahale etmemiz gerekiyor.
IP seçme kısmında - Select IP kısmında "Use the IP from the list" seçeneğini kullanarak sunucuya ait herhangi bir IP seçmeniz gerekiyor. (Tercihen sunucunun ana IP adresi)
Bu işlemde, yedekteki sitelerin tamamını seçtiğiniz IP yi kullanarak oluşturmasını sağlıyorsunuz.
Son olarak ta yüklenecek siteleri, Select Files kısmından seçiyoruz.
Yedekleriniz;
user.admin.KULLANICI_ADI.tar.gz uzantısı ile burada yer alacaktır.
NOT: Yedekleri görmüyor iseniz Nereden - From Where alanında cpanel_backups klasörünü gösterdikten sonra Güncelleme butonunu kullandığınızda gözlemleyebiliyor olmalısınız. (Update Files)
Yüklemek istediğiniz yedeklerinizi seçerek Submit butonu üzerinden işlemi başlatmanız yeterli.
İşlem bu kadardır, bu sayede cPanel sunucunuz üzerinden yedeklerinizi alarak DirectAdmin kurulu bir sunucuya aktarıp yükleme işlemini gerçekleştirebilirsiniz.
NOT:Script, Wordpress sitelerin tamamında veritabanı adını değiştirmesi gerekir ise yeni bir wp-config.php dosyası oluşturarak yeni oluşturduğu adı girecek şekilde düzenlenmiştir. Ancak çoğu zaman Database kullanıcı adını düzenleyemeyebilir. Bu durumda manuel kontrol sağlamanzı gerekmektedir. Wordpress sitelerin tamamında, Veritabanı üzerinde sunucuya özel veriyolu yer aldığı için veritabanları üzerinde optimizasyon gerçekleştirilmesi gerekebilir.
Aynı şekilde, bazı siteler sunucuya özel kodlama barındırabilir. Bu sitelerin içerisindeki spesifik kodlama script tarafından düzenlenememekte olup manuel olarak tarafınızca ya da yazılımcılarınızca düzenlenmelidir.
NOT: Eğer yeterli disk alanınız mevcut ise /home/yedekler klasörünü bir kaç hafta sunucuda bırakmanızı öneririm. İhtiyacınız olabilecek, DirectAdmin sunucuda eksik olan herhangi bir dosya tespit ederseniz buradan rahatlıkla alabilirsiniz.
Peki, işlemleri tamamlamış olsak ta ya cPanel sunucunuzda tüm sitelerinizin yedeğini tek seferde alacak disk alanı mevcut değil ise?
Bu durumda doğal olarak yukarıda işlenen bilgilerin hiç biri size yardımcı olamayacak. Ancak bu tabi ki de sağlıklı bir taşıma yapabilmeniz için bir engel değil.
Bu durumda aşağıdaki yönergeleri izlemeniz yeterli olacaktır!
TEK TEK, HESAP BAŞI TAŞIMA
Bu işlem için öncelik ile her seferinde tek tek şifre girme zorunluluğundan kurtulmamız bizim için çok daha faydalı olacaktır.
cPanel sunucumuzda;
ssh-keygen
Komutunu çalıştıralım. Bu komut,
/root/.ssh/id_rsa.pub
Dosyasının içerisine bir anahtar kodu yerleştirecektir.
Ardından,
ssh-copy-id -pSSH_PORTU root@DİRECTADMİN_SUNUCU_IP_ADRESİ
Komutunu çalıştırın. Bu bizim örneklerimiz için SSH portu 9988, IP adresi 93.187.200.200 olduğunda göre aşağıdaki gibidir;
ssh-copy-id -p9988 root@93.187.200.200
Sizden DirectAdmin sunucunun SSH şifresini isteyecektir. Bu şifreyi girdikten sonra key kopyalanmış olacaktır ve cPanel sunucunuz, bundan sonra DirectAdmin sunucunuza SSH bağlantısı kuracağı zaman sizden şifre istemeden SSH bağlantısı kurabilecektir.
Komutumuz;
for user in `ls /var/cpanel/users/`; do { /scripts/pkgacct ${user} /home/yedekler; rsync -avt -e"ssh -p SSH_PORT" /home/yedekler/cpmove-${user}.tar.gz root@DİRECTADMİN_SUNUCU_IP_ADRESİ:/home/yedekler/cpmove-${user}.tar.gz; rm -f /home/yedekler/cpmove-${user}.tar.gz ; }; done
Yani bu, bizim örneğimizde SSH Portumuz 9988, IP adresimiz 93.187.200.200 olduğuna göre aşağıdaki gibidir;
for user in `ls /var/cpanel/users/`; do { /scripts/pkgacct ${user} /home/yedekler; rsync -avt -e "ssh -p 9988" /home/yedekler/cpmove-${user}.tar.gz root@93.187.200.200:/home/yedekler/cpmove-${user}.tar.gz; rm -f /home/yedekler/cpmove-${user}.tar.gz ; }; done
Bu komut, bir kullanıcıyı yedekleyip aktardıktan sonra yedek dosyasını cPanel sunucudan silecek bir komuttur.
Disk alanınız yetersiz geldiğinde bu komut yöntemi kullanarak ta aktarım yapabilirsiniz.
Tebrikler! Artık cPanel yönetim paneli kullanan sunucunuzdan DirectAdmin yönetim paneli kullanan diğer bir sunucunuza nasıl taşıma yapacağınızı biliyorsunuz.
İyi çalışmalar dilerim