Welcome to IT How-To Documents

cPanel sunucudan DirectAdmin sunucuya taşıma gerçekleştirmek

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üm.

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 gerekebilmektedir. (Detaylı bilgilendirme makalenin devamında sunulmuştur)

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.

Örneğin, Pratik bir şekilde Kullanıcı adı karakter limitini örneğin 20 yapmak için;

/usr/local/directadmin/directadmin set max_username_length 20 ; service directadmin restart

Komutunu kullanabilirsiniz.

Ö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 önermekteyim. 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

Bu komut, bütün hesapların yedeğini /home/yedekler klasörüne almaya başlayacaktır. Komut tamamlandığı zaman;

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/admin/admin_backups

Ö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/admin/admin/backups

Ş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 üzerine Restore etmeden önce doğru izinleri tanımlamalıyız. Sahipliği atamak için komutumuz;

cd /home/admin/admin_backups ; chown admin.admin *

Şeklindedir.

2) Ardından DirectAdmin’e cPanel yedeklerini yükleyebilmesi için gerekli Conversion aracını yüklememiz gerekiyor.

Bunun için komutlarımız;

cd /usr/local/directadmin/custombuild
./build update
./build cpanel_to_da
chown -R admin. /home/admin/converted_user_backup

Şeklindedir.

Artık ilgili cpanel yedeğini, sanki normal bir DirectAdmin yedeğiymiş gibi DirectAdmin sunucunuza kontrol paneli üzerinden geri yükleyebilirsiniz.

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/admin_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 burada yer alacaktır.

NOT: Yedekleri görmüyor iseniz Nereden – From Where alanında /home/admin/admin_backups klasörünü gösterdikten sonra Güncelleme butonunu kullandığınızda gözlemleyebiliyor olmalısınız. (Update Files)

Eğer işlem sonrası hala gözlemleyemiyor iseniz sahiplik izinlerini admin.admin vermemiş olmanızdan kaynaklanacaktır, “DirectAdmin Sunucu” kısmındaki 1. adımı gerçekleştirmeniz yeterlidir.

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, public_html içerisinde eski veritabanı adı ve eski veritabanı kullanıcı adı geçen alanları arar ve bulduklarını otomatik olarak düzeltir. Yani temel olarak veritabanı adı değiştiği durumlarda aksiyon almanız gerekmez ancak veritabanı bilgileriniz şfireli ise, ya da uzaktan erişiliyor ise kontrol sağlamanız gerekecektir. 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ğlamanız gerekmektedir. Eski 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.

Veritabanı bağlantı bilgileriniz, ioncube / base64 vb. yöntemler ile şifrelendi ise bu dosyaları manuel olarak düzenleyerek tekrar şifreleyerek aktarmanız gerekecektir.

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


Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!


Linux Sunucuya Disk Ekleme

Merhabalar,

Bu yazımızda Linux işletim sistemine sahip bir sunucuya nasıl yeni disk ekleyeceğimizi inceleyeceğiz.

Öncelik ile diski sunucumuza takalım.

fdisk -l

Komutunu kullandığımızda yeni diskimizi görebiliyor olmalıyız

Yeni diskimiz /dev/sdb

Gözlemleyebileceğiniz üzere /dev/sda altında sda1, sda2 gibi bölmeler (partition) mevcut iken sdb diskimiz yeni bir disk olduğu için üzerinde hiçbir partition tablosu bulunmuyor.

Öncelik ile disk üzerinde bu partition’u açalım.

fdisk /dev/sdb

İlgili komut ile fdisk i başlatalım. Burada;

n = New yani Yeni Partition
p = Primary yani Ana Partition
1 = 1 numaralı Partition ( /dev/sdb1 olması için)
2048 = Diskteki ilk sektör, öntanımlı olarak 2048 gelir ve bu şekilde bırakılmalıdır
41943039 = Diskteki son sektör, Öntanımlı gelen değer ne şekilde ise o şekilde bırakılmalıdır
w = Write. İlgili ayarları diske yazar

Şeklinde ilerlemeliyiz.

fdisk üzerinde partition oluşturma

Bu işlemin ardından partition oluşmuş olacaktır.

fdisk -l

Komutunu kullandığınızda /dev/sdb1 partitionunu görebiliyor olmalısınız.

Yeni oluşturduğumuz /dev/sdb1 bölümü

Şimdi sırada bu diski formatlamak var.

EXT4 Veri sistemi oluşturma

/dev/sdb1 bölmesi üzerinde ext4 veri sistemi oluşturmak için;

mkfs.ext4 /dev/sdb1

Komutunu kullanıyoruz.

sdb1 bölümünü ext4 olarak formatlamak

İşlem ardından /dev/sdb1 bölümü ext4 olarak biçimlendirilmiştir. Dilediğiniz herhangi bir klasöre mount edilebilir.

XFS Veri sistemi oluşturma

/dev/sdb1 bölmesi üzerinde xfs veri sistemi oluşturmak için;

mkfs.xfs /dev/sdb1

Komutunu kullanıyoruz.

sdb1 bölümünü xfs olarak formatlamak

XFS dosya sisteminde;

  • Veri Alanı
  • Log Alanı (journal)
  • Gerçek zaman kısmı (Realtime)

Mevcuttur. Bunların her biri el ile ayrı bir şekilde belirtilebilir. (Dilerseniz log alanı farklı bir diske vs belirtilebilmekte) ancak bizim kullanımlarımız için bunların hepsini default bırakarak direkt olarak xfs veri sistemi oluşturmak yeterlidir.

Disk mount etmek

Oluşturmuş olduğumuz /dev/sdb1 bölümünü artık istediğimiz herhangi bir klasöre mount edebiliriz.

Bunun için;

mount /dev/sdb1 /veri_yolu/klasör_adı

Şeklinde ilerlemeniz yeterlidir.

/dev/sdb1 bölümünün /root/test klasörüne mount edilmesi

Yukarıdaki örnekte göreceğiniz üzere;

mount /dev/sdb1 /root/test/

Komutu ile diskimiz /root/test dizinine mount edilebilmektedir.

Mount eder iken özellikle veri sistemini (ext4/xfs) belirtmeniz gerekmemektedir, sunucu bunu algılayabilecek kapasitededir.

Her Restart sonrası otomatik mount olmasını sağlamak

Buraya kadar diskte bölüm oluşturmayı, ihtiyacımız olan dosya sisteminde biçimlendirmeyi ve herhangi bir klasöre mount etmeyi inceledik. Bu aşamada otomatik olarak mount olabilmesi adına gerekli çalışmayı gerçekleştireceğiz.

Linux işletim sistemlerinde hangi bölümün hangi yapıya ya da klasöre mount olacağına /etf/fstab dosyası üzerinden emir edilmektedir.

Öncelik ile diskimizin UUID’sini alalım;

blkid

Disklerin UUID’leri

Bu örnekde UUID değeri 525e0fbc-a53c-4467-a682-56e6db2f89c8 imiş.

Dosyamızı açalım;

nano /etc/fstab

Dosya içeriği aşağıdakine benzer şekilde olacaktır;

Ubuntu’ya ait örnek bir /etc/fstab içeriği

Burada ekleme aşağıdaki şekilde yapılır;

Disk UUID – Mount Klasörü – FS (File System) Yapısı – Bağlama Seçenekleri – Dump

Detaylı bilgi için buraya tıklayarak inceleme sağlayabilirsiniz.

Ben fstab’a XFS olan diskimi aşağıdaki şekilde ekliyorum;

/dev/disk/by-uuid/525e0fbc-a53c-4467-a682-56e6db2f89c8 /root/test xfs defaults 0 0

XFS diskin fstab’a eklenmesi

Eğer diskim ext4 olarak biçimlendirilmiş olsa idi, aşağıdaki şekilde ekleyecek idim;

/dev/disk/by-uuid/525e0fbc-a53c-4467-a682-56e6db2f89c8 /root/test ext4 defaults 0 0

EXT4 diskin fstab’a eklenmesi

İşlem ardından diskin sağlıklı bir şekilde mount olup olmayacağını kontrol etmem gerekiyor.

Öncelik ile diskim herhangi bir klasöre bağlı mı kontrol ediyorum;

mount |grep /dev/sdb1

/dev/sdb1 diski herhangi bir klasöre mount durumda mı kontrolü

Gözlemleyebileceğiniz üzere /root/test klasörüne mount durumda imiş.

umount /dev/sdb1

Ya da

umount /root/test

Komutlarından herhangi birisi ile bu diski klasörden ayırabilmekteyiz.

umount /dev/sdb1 komutu ile diski test klasöründen ayırdık

Mount olup olmadığını test edebilmek için fstab ta geçen bütün direktifleri tek seferde mount edebilmek adına;

mount -a

Komutunu kullanabiliriz. Aşağıdaki görselde gözlemleyebileceğiniz üzere disk mount durumda değil iken “mount -a” komutu sonrasında otomatik olarak /etc/fstab dosyanızdaki direktifler ile birlikte mount olmuş durumdadır.

mount -a komutu ile sorunsuzca mount olan disk

İşlemler bu kadardır.

İyi çalışmalar dilerim.


cPanel Zor Şifre Prosedürünü Aktif Etme

Merhabalar,

Bu yazımızda cPanel için Zor şifre protokolünü aktif etmeyi gözlemleyeceğiz.

Öncelik ile, Arama alanımıza Password yazıyoruz.

Böylece, Security Center altında, Password Strength Configuration alanını gözlemleyebileceğiz. Bu kısıma giriş yapıyoruz.

Menü

Ardından, Default Required Password Strength kısmını 100’e çıkarıyoruz.

Default değer 100 olarak düzenleneceği için, diğer kısımları Default olarak bırakabiliriz.

Şifre Zorluk Alanı

Ardından Save butonuna basarak ayarı kayıt ediyoruz.

Bu işlem sayesinde, Oluşturulacak her şifre yüksek güvenlik gerektiren &y6’^3jGH@BK% gibi bir şifre olacaktır.

Önemli Not: Webmailler üzerinden bu şifreler değiştirilememektedir. Daha basit bir şifre ile değişim sağlayabilmek için kullanıcının shell (SSH) erişimi olması şart.

İyi çalışmalar.


Linux Plesk üzerinde tüm domainler için Logrotate tek seferde ayarlama

Selamlar,

plesk bin domain -l| while read dom_name; do /usr/local/psa/bin/domain -u $dom_name -log-bytime weekly; done

Bu komutu kullanarak tüm domainler için logrotate aktif ederek haftalık olarak ayarlayabilirsiniz.

İyi çalışmalar dilerim


DirectAdmin mssql_connect (FreeTDS) Kurulumu

Selamlar arkadaşlar,

DirectAdmin’in derlediği PHP, default hali ile mssql veritabanlarına bağlanmamaktadır.

Bunun için freetds kurulmalı.

http://www.freetds.org/

Siteden Stable Release’in URL sini alıyoruz.

ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz

Sunucu üzerinde,

wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
tar -zxvf freetds-patched.tar.gz
cd freetds-1.00.86/ (Bu sürüm build numarası değişebilir)
./configure --prefix=/usr/local/freetds
make
make install

Komutlarını uyguluyoruz.

Ardından, DirectAdmin Custombuild’e PHP de MSSQL lib’lerinin de derlenmesini istediğimizi belirtmeliyiz.

cd /usr/local/directadmin/custombuild/configure/ap2

Şeklinde ilerleyin. Burada, sunucuda hangi PHP kurulu ise (Hangi conf dosyası kullanılacağı) ona göre seçmeliyiz.

Örnek sunucuda php -v komutu ile php 5.5 kurulu olduğunu tespit ediyorum, yani configure.php55 dosyasını düzenlemeliyim.

Dosya içerisinde, en son satırı diğer satırlarda gördüğümüz gibi \ ekleyerek devam belirtip hemen altına

--with-mssql=/usr/local/freetds

Şeklinde ekliyoruz.

Ardından,

cd /usr/local/directadmin/custombuild
./build clean
./build php d

Komutlarını kullanıyoruz.

İşlem bu kadar!

phpinfo üzerinde yahut SSH üzerinde;

php -m|grep mssql

Komutu ile kurulumu teyid edebilirsiniz.

İyi çalışmalar dilerim.


Windows üzerinde “Stopping” şeklinde takılı kalan servisi durdurmak

Merhabalar,

Son zamanlarda IIS te sık gözlenmekte olan bir sorun olan, genel olarak kapattığınızı sandığınız bir servis kapanıyor – statüsünde takılı kalması durumunu inceleyeceğiz.

Başlat
Çalıştır
Services.msc

Şeklinde ilerleyerek servislere girin.

Burada, Stopping statüsünde takılmış olan servisi bulun.

Servise sağ tıklayıp Properities / Özellikler şeklinde devam edin.

Burada servis adı yer almaktadır. IIS için – W3SVC

İşlemlerimde Spooler adındaki bir servisi göstereceğim.

Şimdi CMD yi açalım;

Başlat
Çalıştır
cmd.exe

İsmini tespit ettiğimiz servisin Process ID’sini öğrenmeliyiz. Spooler

sc queryex SERVİS_ADI

Yani;

sc queryex Spooler

Yazarak detaylarını listeletebiliriz. PID kısmında Process ID yer alır. Bu şu anki örneğimde 3908 şeklinde.

Bu Process’i Kill ediyoruz;

taskkill /pid PID /f

Yani;
taskkill /pid 3908 /f

Bu şekilde Stopping – Durduruluyor statüsünde kalan servisi durdurabilir, ardından sağlıklı bir şekilde yeniden başlatabilirsiniz.

NOT: Eğer process’i bu şekilde kill edemez iseniz, Görev yöneticisinde bulun. Spooler için tam executable’nin adı spoolsv.exe

Aşağıdaki komut ile kapatabilirsiniz;

wmic process where name=”spoolsv.exe” call terminate

İyi çalışmalar dilerim.


Installatron Warning: json_encode(): Invalid UTF-8 sequence in argument hatası çözümü

Merhabalar,

Installatron, dil olarak Türkçe seçili iken kurulabilir app lara tıklandığında hiçbir tepki göstermiyor ve,

/var/installatron/logs/error_log dosyasında andığınız hata;

2018-10-17 23:28:27.45195700 Linux PHP 5.2.17 /usr/local/installatron/lib/boot.php(13179): Warning: json_encode(): Invalid UTF-8 sequence in argument
#0 /usr/local/installatron/lib/boot.php(35): __i_error_handler()
#1 /usr/local/installatron/lib/boot.php(13179): __i_error_handler(2, ‘json_encode(): …’, ‘/usr/local/inst…’, 13179, Array)
#2 /usr/local/installatron/lib/gui/browser.php(1184): i_lib::json_encode()
#3 /usr/local/installatron/lib/gui/init.php(1356): i_gui_browser->main()
#4 /usr/local/installatron/lib/boot.php(23738): i_gui_default->display()
#5 /usr/local/installatron/lib/boot.php(29958): itron::init()
#6 {main}
2018-10-17 23:28:27.45223700 Linux PHP 5.2.17 /usr/local/installatron/lib/boot.php(13179): Warning: json_encode(): Invalid UTF-8 sequence in argument
#0 /usr/local/installatron/lib/boot.php(35): __i_error_handler()
#1 /usr/local/installatron/lib/boot.php(13179): __i_error_handler(2, ‘json_encode(): …’, ‘/usr/local/inst…’, 13179, Array)
#2 /usr/local/installatron/lib/gui/browser.php(1205): i_lib::json_encode()
#3 /usr/local/installatron/lib/gui/init.php(1356): i_gui_browser->main()
#4 /usr/local/installatron/lib/boot.php(23738): i_gui_default->display()
#5 /usr/local/installatron/lib/boot.php(29958): itron::init()
#6 {main}
2018-10-17 23:28:27.45246700 Linux PHP 5.2.17 /usr/local/installatron/lib/boot.php(13179): Warning: json_encode(): Invalid UTF-8 sequence in argument
#0 /usr/local/installatron/lib/boot.php(35): __i_error_handler()
#1 /usr/local/installatron/lib/boot.php(13179): __i_error_handler(2, ‘json_encode(): …’, ‘/usr/local/inst…’, 13179, Array)
#2 /usr/local/installatron/lib/gui/browser.php(1440): i_lib::json_encode()
#3 /usr/local/installatron/lib/gui/init.php(1356): i_gui_browser->main()
#4 /usr/local/installatron/lib/boot.php(23738): i_gui_default->display()
#5 /usr/local/installatron/lib/boot.php(29958): itron::init()
#6 {main}
2018-10-17 23:28:27.45262300 Linux PHP 5.2.17 /usr/local/installatron/lib/boot.php(13179): Warning: json_encode(): Invalid UTF-8 sequence in argument
#0 /usr/local/installatron/lib/boot.php(35): __i_error_handler()
#1 /usr/local/installatron/lib/boot.php(13179): __i_error_handler(2, ‘json_encode(): …’, ‘/usr/local/inst…’, 13179, Array)
#2 /usr/local/installatron/lib/gui/browser.php(1459): i_lib::json_encode()
#3 /usr/local/installatron/lib/gui/init.php(1356): i_gui_browser->main()
#4 /usr/local/installatron/lib/boot.php(23738): i_gui_default->display()
#5 /usr/local/installatron/lib/boot.php(29958): itron::init()
#6 {main}

Şeklinde bir hata ise PHP sürümü, Installatronun güncellenmesinin ardından yetersiz kalıyor demektir.

Çözüm için aşağıdaki kodları sırası ile çalıştırmak yeterlidir;

mkdir -p /usr/local/installatron
cd /usr/local/installatron
curl -O http://php.net/distributions/php-5.6.33.tar.gz
tar xzf php-5.6.33.tar.gz
cd php-5.6.33
./configure –prefix=/usr/local/installatron/php –disable-libxml –disable-dom –disable-simplexml –disable-xml –disable-xmlreader –disable-xmlwriter –enable-posix –enable-mbstring –enable-ftp –enable-sockets –without-pear –without-iconv –with-zlib –with-gd –with-jpeg-dir –with-png-dir –with-mysql=mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –with-gettext
make
make install
cd ..
rm -fr php-5.6.33 php-5.6.33.tar.gz /usr/local/installatron/bin

Ardından Installaton’u tamir etmeliyiz.

rm -fr /usr/local/installatron/lib /usr/local/installatron/etc/php.ini
curl -O https://data.installatron.com/installatron-plugin.sh
chmod +x installatron-plugin.sh
./installatron-plugin.sh -f –quick

Problem giderilmiş olacaktır.

İyi çalışmalar dilerim.


DMARC Kaydı Nedir? Nasıl Konfigüre Edilir?

Merhabalar,

DMARC (Domain bazlı mesaj  raporlama / doğrulama)  Kaydı, spoof olarak gönderimin önüne geçmek için tasarlanmış bir kimlik doğrulama ve rapor protokolüdür. SPF ve DKIM kayıtlarının ardından eklenmesi gerekmektedir ve bu kayıtlardan yararlanarak kimlik doğrulama konusundaki hataları rapor içerisinde geçen adrese iletir ve daha güvenilir bir mail göndericisi olarak algılanmanızda ve SPAM Skorunuzu düşürmenizde rolü vardır.

https://mxtoolbox.com/DMARCRecordGenerator.aspx

Yukarıdaki URL üzerinden otomatik DMRAC Kaydı oluşturabilirsiniz.

2 tür DMARC kaydı mevcuttur.

Basic DMARC
Gelişmiş DMARC
Bu ayrımı daha rahat anlamak için ben sağladım, normalde isim isim ayrılmıyor.

Şöyle ki, Basic DMARC kaydında sadece toplam raporlar için bir rapor adresi belirtiyorsunuz.

Örneğin örnek.com için;

_dmarc  TXT  v=DMARC1; p=none; sp=none; rua=mailto:rapor@örnek.com

Gibi. Ancak Gelişmiş DMARC kaydı üzerinde, Başarısız / Hatalı raporlar ve toplam raporlar şeklinde de belirtilmektedir.

Örneğin örnek.com için;

_dmarc TXT v=DMARC1; p=none; rua=mailto:rapor@örnek.com; ruf=mailto:rapor@örnek.com; fo=1

Gibi. Ancak burada ince bir detay bulunuyor;

İşlemler sadece örnek.com için, örnek.com uzantılı bir mail adresi kullanacaksanız bu kadardır. Eğer örnek.com için, teknoas.net uzantılı bir mail adresini DMARC kaydınızda kullanmak istiyor iseniz, bu sefer teknoas.net’in DNS yapısı üzerinde bunu onaylayan bir kayıt girmeniz gerekecektir.

Bunun için de aşağıdaki şekilde bir TXT kaydı girilebilir;

MAİL_DOMAİN._report._dmarc.DMARC_DOMAİN. TXT ANA_DMARC_KAYDI

Yani Basic için;

teknoas.net._report._dmarc.örnek.com. TXT _dmarc  TXT  v=DMARC1; p=none; sp=none; rua=mailto:rapor@örnek.com

Gelişmiş için;

teknoas.net._report._dmarc.örnek.com. TXT _dmarc TXT v=DMARC1; p=none; rua=mailto:rapor@örnek.com; ruf=mailto:rapor@örnek.com; fo=1

Şeklinde.

İyi çalışmalar dilerim.


CloudLinux LVE Manager sürekli dönüyor, hata veriyor ise

Merhabalar,

DirectAdmin de LVE Manager’a girmeye çalıştığınızda sürekli girmeye çalışıyor gibi dönüyor ancak aşağıdaki hataları vererek loop’a giriyor ise;

Platform error

It seems your session expired. Please log in to the platform. You will be redirected to login page.

Ya da

Error

Parameter “key” required

LVE Manager’in safe mode açık iken sağlıklı çalışamamasından ötürü sorun yaşanmakta olması olasıdır.

Bu durumda;

/usr/local/directadmin/plugins/lvemanager_spa/php.ini

Dosyasını açarak içerisine;

safe_mode = Off

Yerleştirmek ve web servisini restart etmek yüksek ihtimal problemi giderecektir.

NOT: Ayrıca “/usr/share/l.v.e-manager/version” dosyasının sahiplik değerlerinin diradmin.diradmin olduğunu da kontrol etmelisiniz.

İyi çalışmalar dilerim.


Parola Gereksinimi olmadan SSH yapabilmek

Merhabalar,

Bu yazıda Linux bir sunucunun diğer Linux bir sunucuya nasıl şifre gereksinimi olmadan SSH bağlantısı sağlayabileceğini ileteceğim.

A Sunucusunun, B, C ve D sunucularına şifresiz bağlanmasını istiyoruz diyelim.

Sunucu IP leri de aşağıdaki şekilde olsun;

A – 1.1.1.1
B – 1.1.1.2
C – 1.1.1.3
D – 1.1.1.4

Öncelik ile, A sunucusuna, şifresiz bağlantı sağlayacak sunucuya giriş yapın.

ssh-keygen

Komutunu çalıştırın ve yönetgeleri izleyerek bir private key oluşturun.)

ssh-rsa şeklinde başlayan uzun bir key olacaktır.

Ardından ssh-copy-id komutunu kullanarak private key’imizi şifresiz bağlanacağımız sunuculara aktaracağız.

Bunun için A sunucusu üzerinde;

ssh-copy-id root@B
ssh-copy-id root@C
ssh-copy-id root@D

Komutlarını çalıştırıyoruz. Yani;

ssh-copy-id root@1.1.1.2
ssh-copy-id root@1.1.1.3
ssh-copy-id root@1.1.1.4

Şeklinde. Key dosyasını aktarabilmek için ilgili sunucuların root şifrelerini soracaktır, şifreleri girmeniz yeterlidir.

Tebrikler! Artık A sunucusu, B,C ya da D sunucusuna SSH bağlantısı gerçekleştirir iken şifre sormayacaktır.

NOT: Erişim sağlayamıyor iseniz iptables içeriğini yahut hosts.allow/deny içerisinde engel olup olmadığını kontrol etmelisiniz.

İyi çalışmalar dilerim