Author: admin

  • Düşük PHP de LVE Manager Çalıştırmak – CloudLinux

    Selamlar,

    CloudLinux kurulu DirectAdmin bir sunucuda PHP Selector’a ya da LVE Manager’a girmek istediğinizde aşağıdaki hatayı alıyor iseniz;

    Warning: Unexpected character in input: ‘\’ (ASCII=92) state=1 in /usr/local/directadmin/plugins/lvemanager_spa/admin/index.html on line 11 Warning: Unexpected character in input: ‘\’ (ASCII=92) state=1 in /usr/local/directadmin/plugins/lvemanager_spa/admin/index.html on line 11 Parse error: syntax error, unexpected T_STRING in /usr/local/directadmin/plugins/lvemanager_spa/admin/index.html on line 11

    Bu PHP Sürümünüzün min. gereksinim olan PHP 5.4 ten düşük olduğunu gösterir. CloudLinux LVE Manager ve PHP Selector, PHP 5.4 altında çalışmıyor.

    Bunun için Sadece LVE ve PHP Selector’ün farklı bir PHP üzerinden çalışması adına bir takım düzenlemeler yaparak çözüm üretebilirsiniz.

    Öncelik ile kurulu değil ise multiphp kurun. Bu PHP lerden birini kullanacağız.

    yum groupinstall alt-php

    Ardından Hangi PHP sürümünü kullanacak isek JSON’u aktif edeceğiz.

    Mesela PHP 5.6 olsun. Alt-PHP olarak kurulan PHP 5.6 nın veri yolu;

    /opt/alt/php56/usr/bin/php

    Şeklindedir. Json’u açabilmek için de;

    /opt/alt/php56/link/conf/default.ini

    Dosyasını açıp json önündeki ; ibaresini kaldırmamız gerekiyor.

    Ardından;

    LVE MANAGER İÇİN

    2 dosya düzenlenmeli, bu dosyalar;

    /usr/local/directadmin/plugins/lvemanager_spa/admin/index.html

    ve

    /usr/local/directadmin/plugins/lvemanager_spa/admin/index.raw

    Dosyaların en başında aşağıdaki satır mevcut;

    #!/usr/local/bin/php -c/usr/local/directadmin/plugins/lvemanager_spa/php.ini

    Sunucunun native PHP si düşük olduğu için biz PHP ibaresini değiştireceğiz.

    PHP 5.6 için

    #!/usr/local/bin/php -c/usr/local/directadmin/plugins/lvemanager_spa/php.ini

    Satırlarının başlarındaki PHP yolunu

    #!/opt/alt/php56/usr/bin/php -c/usr/local/directadmin/plugins/lvemanager_spa/php.ini

    Olarak düzenlemeliyiz.

    Kabaca yaptığımız, direkt olarak sunucunu native PHP sürümünü kullanarak bu sayfayı sunmak yerine kendi belirlediğimiz PHP 5.6 nın bu sayfayı sunmasını sağlamak.

    PHP SELECTOR İÇİN

    2 dosya düzenlenmeli, bu dosyalar;

    /usr/local/directadmin/plugins/phpselector/user/index.html

    ve

    /usr/local/directadmin/plugins/phpselector/user/index.raw

    Dosyaların en başında aşağıdaki satır mevcut;

    #!/usr/local/bin/php -c/usr/local/directadmin/plugins/lvemanager_spa/php.ini

    Satırlarının başındaki PHP yolunu belirlediğimiz PHP olarak düzenlemeliyiz.

    #!/opt/alt/php56/usr/bin/php -c/usr/local/directadmin/plugins/lvemanager_spa/php.ini

    İşlem bu kadardır, LVE Manager ve PHP Selector çalışacaktır.

    İyi Çalışmalar Dilerim

  • 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

  • IIS Üzerinde Sertifika Yüklemek

    Merhabalar,

    IIS üzerine .cer ya da .pfx uzantılı SSL sertifikalarınızı nasıl kurabileceğiniz konusunda sizleri yönlendirebilmek için bu yazımızı hazırladık.

    Öncelik .cer ve .pfx uzantılı sertifikaları IIS’ene şekilde yükleyebileceğimizi ele alalım, ardından IIS üzerindeki bir siteye nasıl atayacağımızı gözlemleyeceğiz.

    .cer Uzantılı Sertifika Yüklemek

    Internet Information Services (IIS) Manager’a giriş yapınız.

    “Server Certificates” alanına giriş yapınız.

    1

    Ardından, Sağ taraftaki Aksiyon menüsü üzerinden “Complete Certificate Request” alanına giriş yapınız.

    2

    Burada, .cer uzantılı sertifikanızı seçiniz.

    3

    4

    Ardından .cer uzantılı SSL Sertifikanıza IIS üzerinde anılacağı ismi girerek sertifikanızı IIS e tanımlayabilirsiniz.

    5

    Tebrikler! Artık .cer uzantılı SSL Sertifikanız, IIS üzerinde tanımlanmıştır ve herhangi bir siteye tanımlanabilir.

    .pfx Uzantılı Sertifika Yüklemek

    Internet Information Services (IIS) Manager’a giriş yapınız.

    “Server Certificates” alanına giriş yapınız.

    1

    Ardından, Sağ taraftaki Aksiyon menüsü üzerinden “Import” alanına giriş yapınız.

    7

    Burada .pfx uzantılı sertifikanızı seçiniz.

    8

    9

    Ardından, PFX dosyasını oluşturur iken belirlenen dosya şifresini giriniz.

    10

    Tebrikler! Artık .pfx uzantılı SSL Sertifikanız, IIS üzerinde tanımlanmıştır ve herhangi bir siteye tanımlanabilir.

    11

    NOT: .pfx uzantılı sertifikalar, dış bir kaynaktan içe aktarıldığı için sertifikaya özel isim tanımlanamaz, isim kısmı boş kalacaktır.

    IIS Üzerinde Bir Web Sitesine SSL Sertifikası Tanımlamak

    Internet Information Services (IIS) Manager’a giriş yapınız.

    IIS altındaki “Sites” alanına giriş yapınız.

    12

    Burada IIS altındaki tüm Web siteleriniz listelenecektir. SSL Sertifikasının kurulumunu gerçekleştireceğiniz Web sitesi ya da Sub domaine giriş yapınız.

    13

    Ardından, Sağ taraftaki Aksiyon menüsü üzerinden “Bindings…” alanına giriş yapınız.

    14

    Burada halihazırda, http – SSL siz erişimler için kayıtlar bulunmaktadır. Bu kayıtlar üzerinde hiçbir işlem gerçekleştirilmeyecektir.

    Add diyerek https kayıtlarını ekleyeceğiz.

    15

    Type = https
    IP Adress = Siteye tanımlanan özel IP adresi ya da sunucunun paylaşımlı IP adresi
    Hostname = alanadı.com

    Olarak düzenlenmelidir.

    “Require Server Name Indication” seçeneğinin yanındaki tik aktif edilmelidir.

    Düzenleme Öncesi;

    16

    Düzenleme Sonrası;

    17

    Son olarak “SSL certificate” alanında, SSL Sertifikamızı seçeceğiz.

    18

    OK Şeklinde ilerleyerek onayladığınızda, alanadı.com için SSL Sertifikasını tanımlamış oldunuz.

    Tekrar Add şeklinde ilerleyerek aynı işlemleri www.alanadı.com için de yapalım,

    19

    NOT: Bir Subdomain için kurulum sağlıyor iseniz, www için HTTPS Binding oluşturmanıza gerek bulunmamaktadır.

    İşlem sonrası http bağlaçlarımızın yanı sıra, SSL sertifika bilgilerimizi içeren https bağlaçlarımızı da oluşturmuş olduğumuzu gözlemleyebiliriz.

    20

    “Close” şeklinde ilerleyerek Bağlaç Düzenleme ekranından çıkabiliriz.

    21

    Son olarak, Sağ taraftaki Aksiyon menüsü üzerinden “Restart” şeklinde ilerleyerek yeni konfigürasyonu görmesi için siteyi yeniden başlatmalıyız.

    22

    Tebrikler! IIS üzerinde SSL sertifikalarınızı web sitelerinize tanımladınız.

    İyi çalışmalar dileriz.

  • CEPH Storage Kurulumu / Linux – ESXi ye Disk Eklenmesi

    Ceph Storage Kurulum, Ubuntu, CentOS7 Mount ve ESXi Datastore olarak kullanım

    Merhaba Arkadaşlar,

    Bu makalede Ceph Storage için kurulum prosedürlerini ve örnek bir ESXi sistemine datastore olarak nasıl ekleneceğini işleyeceğiz.

    Öncelik ile Bu yapı için, en az 4 sunucu gereksinimimiz olacaktır. Bunlar;

    Admin / Deploy Node

    Monitor Node

    Storage Node 1

    Storage Node 2..

    Gibi olup, Her node ayrı bir sunucuyu belirtmektedir. Storage Node’ları için ihtiyacınız ne ise o şekilde düzenleyebilir, ek sunucular kurabilir yahut çalışan yapıya ihtiyacınız olduğunda rahatlıkla yeni Storage Node’u ekleyebilirsiniz.

    Anlatımlarda 4 sunucunun da halihazırda kurulu ve SSH’ın aktif olduğunu varsayarak ilerleyeceğim.

    Ön Ayarlar

    Herşeyden önce, OS diskiniz ve Ceph Storage üzerinde kullanıma sunmayı planladığınız diskin ayrı olması gerekdiğini belirtmek isterim. OS diskindeki alan kullanımda olmayacaktır. Kullanıma sunmayı planladığınız Storage diskinde ise hiçbir veri olmamalıdır.

    İlk olarak Admin / Deploy Node’unun kurulumunu gerçekleştiriyoruz.

    Ben kurulumlarda Ubuntu 16.04.4 kullandım ancak ihtiyacınıza göre OpenSUSE yahut RHEL/CentOS ta kullanabilirsiniz. Anlatım Ubuntu üzerinden olacaktır,

    Öncelik ile Ceph Release key’i ekliyoruz;

    wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -

    Ardından, repomuza Ceph paketlerini ekliyoruz.

    echo deb https://download.ceph.com/debian-{ceph-stable-release}/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list

    Ardından repomuzu update ederek ceph-deploy kurulumu gerçekleştiriyoruz.

    sudo apt update
    sudo apt install ceph-deploy

    Bu işlemler ile Admin / Deploy nodunun ilk kurulumunu tamamlamış olduk.

    NOT: Secure Linux (Selinux) aktif ise mutlaka devredışı bırakmalısınız. (Ubuntu üzerinde system utils kurmadı iseniz otomatik disable gelir.)
    NOT: Seknronizasyon sorunu yaşanmaması için Tüm node’lara ntp server kurulumunu ihmal etmemeniz gerekiyor.

    apt install ntp
    /etc/init.d/ntp start
    

    Bu aşamada öncelik ile, Admin / Deploy Node’unun sunuculara hostname ile erişebilmesi lazım.

    Ben node’lara,

    Admin Node – ceph

    Monitor Node – monitor

    Storage Node 1 – node1

    Storage Node 2 – node2

    Şeklinde Hostname tanımladım.

    Admin / Deploy nodu üzerinde /etc/hosts içerisine girerek IP – Hostname şeklinde giriyoruz;

    93.187.202.212 monitor ceph.monitor
    93.187.202.235 node1 ceph.node1
    93.187.202.231 node2 ceph.node2

    Erişimi ping node1 diyerek test edebilirsiniz.

    Bu işlemin ardından Monitör ve Storage nodeları üzerinde Admin/Deploy nodunun erişeceği kullanıcıları oluşturuyoruz ve şifrelerini belirliyoruz.

    useradd -d /home/cephusr -m cephusr
    passwd cephusr

    Ve İlgili kullanıcıların sudo yetkisi olduğuna emin oluyoruz. Sudo yetkisi kazandırmak için;

    echo "cephusr ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephusr
    sudo chmod 0440 /etc/sudoers.d/cephusr

    İşlem ardından Şifresiz SSH erişimini bu kullanıcılar için aktif etmemiz gerekecektir. ceph-deploy komutu şifre girmez, bu yüzden ssh key generate etmemiz gerekiyor.

    Admin nodunda ssh-keygen komutunu çalıştırın.

    (passphrase boş bırakılacak)

    ssh-keygen
    
    Generating public/private key pair.
    Enter file in which to save the key (/ceph-admin/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /ceph-admin/.ssh/id_rsa.
    Your public key has been saved in /ceph-admin/.ssh/id_rsa.pub.

    Ardından tüm Node’lara keyi yüklemeliyiz.

    ssh-copy-id cephusr@node1
    ssh-copy-id cephusr@node2
    ssh-copy-id cephusr@monitor

    Şifreleri soracaktır, şifrelerini girmenizin ardından artık Admin nodu, tüm node lara ssh üzerinden şifre gereksinimi olmadan erişim sağlayabilecektir.

    Kontrol için;

    ssh cephusr@monitor

    Komutunu kullanabilir, erişebildiğini doğrulayabilirsiniz.

    Bu işlemin ardından ceph-deploy’un SSH bağlantısında cephusr kullanıcısını çalıştırabilmesi için, Admin / Deploy Node üzerinde config dosyası oluşturuyoruz;

    nano /etc/.ssh/config

    Ve içerisini aşağıdaki şekilde düzenliyoruz;

    Host node1
       Hostname node1
       User {username}
    Host node2
       Hostname node2
       User {username}
    Host node3
       Hostname node3
       User {username}

    Bu benim yapılandırmam için aşağıdaki şekildedir;

    Host monitor
      Hostname monitor
      User cephusr
    Host node1
      Hostname node1
      User cephusr
    Host node2
      Hostname node2
      User cephusr

    Böylece düz SSH ile bağlanmak istediğinde otomatik root a yönlendirilmeyecek, cephusr kullanıcısına yönlendirilecektir.

    Bu işlemler ile ön hazırlıklarımızı tamamlamış olduk. Artık konfigürasyona başlayabiliriz.

    Storage Cluster yapısının oluşturulması

    Admin nodu üzerinde, ceph-deploy komutunun otomatik oluşturduğu konfigürasyon dosyaları ve keylerin tutulması için bir klasör oluşturuyoruz.

    mkdir my-cluster
    cd my-cluster

    NOT: ceph-deploy komutu, çıktıyı bulunduğu klasöre aktaracağı için kullanırken daima my-cluster klasöründe yahut siz cluster adını ne şekilde belirledi iseniz, o klasörde olmalısınız.

    NOT: Başka bir kullanıcı ile giriş yapmış iken sudo kullanmamalısınız.

    Artık Cluster oluşturma işlemine başlayabiliriz.

    Test için ufak bir journal oluşturarak devam ediyoruz.

    /my-cluster/ceph.conf içerisinde, en alta;

    [osd]
    osd_journal_size = 2000

    Şeklinde ekliyoruz.

    Deploy işleminden sonra Journal oluşmuş olmalı. Eğer herhangi bir hata alıyor iseniz conf dosyasında yahut kurulumda yanlışlık gerçekleştirmiş olmalısınız, tekrar kontrol etmeniz gerekmektedir.

    Şimdi deploy işlemini my-cluster klasörü içerisinde iken gerçekleştirerek cluster’i oluşturalım;

    ceph-deploy new monitor node1 node2

    Ben şahsen aşağıdaki hatayı aldım;

    bash: python: command not found
    [ceph_deploy][ERROR ] RuntimeError: connecting to host: monitor resulted in errors: IOError cannot send (already closed?)

    Bunun sebebi de ceph-deploy’un phyton ile çalışması ve sunucularda phyton bulunmamasıdır.

    Tüm sunuculara aşağıdaki komut ile phyton kurulumu gerçekleştiriyoruz;

    sudo apt install python-minimal

    Bu işlemin ardından ceph-deploy new nodex nodex nodex komutunu tekrar uyguluyoruz. Sorunsuzca tamamlanmış olmalı.

    Ardından node’lar üzerine kurulumu sağlıyoruz;

    ceph-deploy install node1 node2 node3

    İşlem tamamlandığında Ceph, her node’a kurulmuş olacaktır.

    Ardından monitör sistemi için ön hazırlık yapıyoruz,

    ceph-deploy mon create-initial

    Bu komut keyleri toplayacaktır ve my-cluster klasörünüzde;

    • ceph.client.admin.keyring
    • ceph.bootstrap-mgr.keyring
    • ceph.bootstrap-osd.keyring
    • ceph.bootstrap-mds.keyring
    • ceph.bootstrap-rgw.keyring
    • ceph.bootstrap-rbd.keyring

    Dosyaları oluşmuş olacaktır.

    Bu aşamada, Konfigürasyon dosyaları ve admin key’i node lar arası haberleşme için Deploy node’undan diğer nodlarınıza konfigürasyonları ile aktarmanız gerekiyor.

    ceph-deploy admin monitor node1 node2

    Ardından Node’larınızdaki diski OSD olarak eklemelisiniz.

    Ekleme komutu;

    ceph-deploy osd create –data {device} {ceph-node}

    Formatındadır. Buradaki Device, Node larınız üzerindeki OS diskiniz değil, Storage yapısına sağlayacağınız 2. diskleriniz olacaktır. Komut benim için;

    ceph-deploy osd create –-data /dev/sdb monitor
    ceph-deploy osd create –-data /dev/sdb node1
    ceph-deploy osd create –-data /dev/sdb node2

    Şeklindedir.

    Eğer bu komut ile OSD leri oluşturamadı iseniz, Manuel olarak zap’lamanız (Formatlamanız) ve hazırlamanız gerekiyor. Bunun için de komut;

    ceph-deploy disk zap {osd-server-name}:{disk-name} Formatında yani;
    ceph-deploy disk zap monitor:sdb

    Gibi. Zap işlemi ardından OSD mizi hazırlıyoruz;

    ceph-deploy osd prepare {node-name}:{data-disk} Formatında yani;
    ceph-deploy osd prepare monitor:sdb
    ceph-deploy osd prepare node1:sdb
    ceph-deploy osd prepare node2:sdb

    Şeklinde.

    Bu işlem sadece OSD leri hazırlamakta olup, aktif etmemektedir. Aktif etmek için;

    ceph-deploy osd activate {node-name}:{data-disk-partition} Formatında Yani;
    ceph-deploy osd activate monitor:/dev/sdb1
    ceph-deploy osd activate node1:/dev/sdb1
    ceph-deploy osd activate node2:/dev/sdb1

    Komutları ile Ceph Storage sistemimizin Storage görevini görecek olan OSD lerimizi yayına alıyoruz.

    Bu aşamada artık Monitör Node’umuza görevini belirtebilir, Sisteme Monitör olarak atayabiliriz.

    ceph-deploy mon add MONITOR-NODE Formatında yani;
    ceph-deploy mon add monitor
    

    Bu, Birden fazla monitör nodu eklemek için;

    ceph-deploy mon add MONITOR-NODE1 MONITOR-NODE2 Formatında yani;
    ceph-deploy mon add monitor1 monitor2
    

    Şeklinde olacaktır.

    NOT: Güvenlik için birden fazla monitör nodu eklemeniz durumunda bu node lar birbirleri ile senkronize olarak quorum oluşturacaklardır.

    Quorum durumunu;

    ceph quorum_status --format json-pretty

    Komutu ile inceleyebilirsiniz.

    NOT: Güvenlik ve Yedeklilik için birden fazla monitör eklemeniz ŞİDDETLE tavsiye edilmektedir. Aksi halde bir monitör fail verdiğinde, monitör sunucusunda herhangi bir sorun oluşur ise Ceph Storage sisteminiz susacak, çalışmayı durduracaktır. En az 2. bir monitör nodu eklemeniz, hasarlı sunucuyu onarana kadar sistemin durmaması için önemlidir. Anlatımı sadeleştirmek ve minimal tutmak için tek monitör kullanılmıştır.

    NOT: Monitor eklemeye çalışır iken;

    accepter.accepter.bind unable to bind to 6789: (98) Address already in use

    Ya da

    [ceph_deploy][ERROR ] GenericError: Failed to add monitor to host: monitor

    Şeklinde hata alır iseniz Monitor node üzerinde

    cd /var/lib/ceph/mon
    rm -rf *

    Komutunu uygulamanız, Admin node’u üzerinde de

    rm -rf /var/run/ceph/ceph-mon.monitor.asok

    Komutunu uygulayarak lock’u silmeniz gerekmektedir. Bu hatalar, bir yerde hatalı konfigürasyon olduğu için monitör ekleyemediğini belirtir. Ardından tekrar;

    ceph-deploy mon add MONITOR-NODE Formatında yani;
    ceph-deploy mon add monitor
    

    Komutu ile monitörünüzü/monitörlerinizi tekrar eklemeyi deneyerek başarılı bir şekilde ekleyebilirsiniz.

    CephFS kurulumu

    ODS lerimizi yarattığımız, monitörümüzü eklediğimize göre artık Linux/Unix sistemlerine mount edilebilen CephFS sistemini oluşturabiliriz.

    Ben Metadata nodu olarak monitör nodumu kullandım. Ancak dilerseniz ek bir sunucuyu, örneğin metadata nodunu sisteme ekleyerek görevi ona da atayabilirsiniz.

    Anlatım sadeliği ve monitöre çok yük düşmediği için ben monitör nodunu tercih ettim.

    Komutumuz;

    ceph-deploy mds create Metadata Node Formatında yani benim için;
    ceph-deploy mds create monitor

    Şeklindedir. İşlem ardından İlgili Node üzerinde,

    ceph mds stat

    Komutunu kullanarak sistemin up olduğunu, standby da beklediğini görebiliyor olmalıyız.

    mds
    Metadata node’unu kontrol

    Ardından Monitör nodumuzda Cephfs için gerekli olan datapool ve metadatayı yaratmalıyız.

    ceph osd pool create cephfs_data 128
    ceph osd pool create  cephfs_metadata 128

    İşlem ardından bu pool’u kullanan mycephsfs isimli bir dosya sistemi yaratmak için aşağıdaki komutu kullanıyoruz;

    ceph fs new mycephfs cephfs_metadata cephfs_data

    Aşağıdaki komut ile oluştuğunu gözlemleyebiliriz;

    ceph fs ls

    Bu işlemler ile Ceph Storage sistemimiz üzerinde, mycephfs adında bir dosya sistemi yaratmış olduk. Artık bu dosya sistemini mount edebiliriz.

    Linux Üzerine Mount Etme

    Bu işlem çok basittir.

    Öncelik ile, Sunucuya ceph-common paketi kurulmalıdır.

    CentOS 7 için;

    CentOS 7 sisteminde ve repolarında ceph yerleşik olarak bulunmamaktadır. Ancak işlem için Epel Reposunu kullanabiliyoruz.

    Aşağıdaki komutlar ile Epel reposu sunucuya tanımlanır,

    yum -y install epel-release
    rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm

    Ardından aşağıdaki komutları kullanarak ceph-common paketini kurabilirsiniz.

    yum -y update
    yum -y install ceph-common

    Bu işlemler ardından öncelik ile /etc/hosts dosyasını Admin / Deploy Node’unda olduğu gibi hostname leri çözümleyecek şekilde düzenlemelisiniz.

    Bu benim için daha önce de belirtmiş olduğum gibi;

    93.187.202.212 monitor ceph.monitor
    93.187.202.235 node1 ceph.node1
    93.187.202.231 node2 ceph.node2

    Şeklindedir.

    Ardından Admin Node’u üzerinde, Admin Secret Key tespit edilir.

    cat /my-cluster/ceph.client.admin.keyring | grep "key =" | awk {'print $3'} > admin.secret

    Bu komut bize admin.secret dosyasını oluşturacaktır.

    Bu admin.secret dosyasını mount edeceğimiz sunucuya aktarıyoruz.

    Ardından komutumuz aşağıdaki gibidir;

    mount -t ceph MONITOR:PORT,NODE:PORT,NODE:PORT,NODE:PORT:/ /KLASÖR/ -o name=admin,secretfile=/VERİYOLU/admin.secret
    

    Şeklindedir. Bu benim oluşturduğum yapı için;

    mount -t ceph monitor:6789,node1:6789,node2:6789:/ /mnt/ -o name=admin,secretfile=/root/admin.secret

    Komutları uygulanacaktır.

    Tebrikler, CentOS 7 artık Ceph Storage’inizi kullanıyor.

    Centos
    Ceph Mount Edildi

    Her reboot işleminde otomatik mount olması için /etc/fstab içerisine;

    NODE:PORT,NODE:PORT,NODE:PORT:/ /MOUNT_EDİLECEK_KLASÖR ceph name=admin,secretfile=/VERİYOLU/admin.secret,_netdev,noatime 0 0

    Şeklinde eklenir. Yani bu benim oluşturduğum yapı için;

    monitor:6789,node1:6789,node2:6789:/ /mnt ceph name=admin,secretfile=/root/admin.secret,_netdev,noatime 0 0

    Şeklindedir. Ardından sunucuyu reboot edip mount olduğunu test edebilirsiniz.

    Ubuntu 16.04 için;

    Aşağıdaki komutları kullanarak ceph-common paketini kurabilirsiniz.

    apt install ceph-common ceph-fs-common -y

    Bu işlemler ardından öncelik ile /etc/hosts dosyasını Admin / Deploy Node’unda olduğu gibi hostname leri çözümleyecek şekilde düzenlemelisiniz.

    Bu benim için daha önce de belirtmiş olduğumdan biraz değişik çünkü bu sefer admin / deploy nodunu da giriyoruz.

    93.187.202.207 ceph ceph.admin
    93.187.202.212 monitor ceph.monitor
    93.187.202.235 node1 ceph.node1
    93.187.202.231 node2 ceph.node2

    Şeklindedir.

    Ardından Admin Node’u üzerinde, Admin Key ve Admin Secret tespit edilir.

    cat /my-cluster/ceph.client.admin.keyring | grep "key =" | awk {'print $3'} > admin.secret

    Bu bize admin.secret dosyasını oluşturacaktır.

    Bu admin.secret dosyasını açarak içindeki Key kodunu alıyoruz.

    Ardından komutumuz aşağıdaki gibidir;

    mount -t ceph NODE:PORT,NODE:PORT,NODE:PORT:/ /MOUNT_EDİLECEK_KLASÖR/ -o name=admin,secret=ADMİN_SECRET_KEY
    

    Ubuntu üzerinde Secret File yerine, direkt Secret Code yani admin.secret dosyasının içeriğindeki kodu ADMİN_SECRET_KEY alanına gireceğiz. Benim oluşturduğum yapıda bu;

    mount -t ceph monitor:6789,node1:6789,node2:6789:/ /mnt/ -o name=admin,secret=AQDfUjxbIshaMBAArKNSraYVhLc+tlqbtS9M1w==

    Şeklindedir ve bu komutları uygulanmıştır.

    Tebrikler, Artık Ceph Storage’iniz Ubuntu sunucunuz tarafından kullanılmaktadır.

    Ubuntu
    Ceph Mount Edildi

    Ubuntu
    Ceph Mount Edildi

    Her reboot işleminde otomatik mount olması için /etc/fstab içerisine;

    NODE:PORT,NODE:PORT,NODE:PORT:/ /MOUNT_EDİLECEK_KLASÖR ceph name=admin,secret=ADMIN_SECRET_KEY,_netdev,noatime 0 0

    Şeklinde eklenir. Yani bu benim oluşturduğum yapı için;

    monitor:6789,node1:6789,node2:6789:/ /mnt ceph name=admin,secret=AQDfUjxbIshaMBAArKNSraYVhLc+tlqbtS9M1w==,_netdev,noatime 0 0

    Şeklindedir. Ardından sunucuyu reboot edip mount olduğunu test edebilirsiniz.

    ESXi Üzerine Datastore Olarak Mount Etme

    Bu işlem standart bir Linux kurulumuna mount etmekten çok daha zahmetlidir. Çünkü Ceph Storage sistemi tek başına ESXi’nin gözlemleyebileceği bir yapıda değildir.

    Bunun için öncelik ile bir iSCSI Gateway sunucusu ya da NFS Gateway sunucusu kurulmalı ve konfigüre edilmeli, CEPH Storage bu sunucu üzerinde ESXi’nin okuyabileceği şekilde ESXi ye mount edilmelidir. Kabaca Ceph için bir aracı, bir Gateway sunucusu kurmamız gerekiyor.

    Bu işlem için de NFS Gateway olarak Ubuntu 16.04.4 kullanacağım. iCSCI için Ubuntu, PetaSAN, OpenSUSE, CentOS/RHEL gibi alternatiflerimiz mevcut ancak iCSCI üzerindeki araştırmalarımda yeterli verim alamadığım için es geçiyorum.

    NFS Gateway

    Bu işlem için Admin/Deploy Node, Monitor Node, Node1 ve Node2 dışında 5. bir sunucunun default olarak hazır kurulu olduğunu varsayıyorum. Anlatımımda Ubuntu’dan yola çıkacağım.

    Öncelik ile,  “Ubuntu 16.04 için” başlığındaki tüm adımları gerçekleştirerek Ceph Storage yapınızı, Ubuntu sunucunuza mount ettiğinizi varsayıyoruz.

    Eğer henüz mount etmedi iseniz, buraya tıklayarak makalede ilgili bölüme ulaşabilirsiniz.

    Öncelik ile sunucumuza NFS Server kuralım;

    apt-get -y install portmap nfs-kernel-server

    Kurulum tamamlandığında /etc/exports dosyasını düzenleyeceğiz.

    Burada, ESXi Sunucumuzun IP Adresini belirterek NFS ye açacağımız klasörü, benim oluşturduğum yapı için /mnt klasörünü belirteceğiz.

    nano /etc/exports

    Dosya içerisine, en altına;

    /NETWORKE_AÇILACAK_KLASÖR_VERİYOLU  000.000.000.000(rw,async,no_subtree_check) Formatında Yani;
    
    /mnt 93.187.202.230(rw,async,no_subtree_check)
    
    

    Formatında ekleyeceğiz.

    NFS
    Mount edilmiş ceph’i NFS ye açmak

    Ardından,

    exportfs -ra

    Komutunu kullanıp NFS Servisimizi restart ediyoruz.

    /etc/init.d/nfs-kernel-server restart

    Tebrikler, Artık CephFS yapınızı NFS üzerinden networke açtınız!

    ESXi Sistemine NFS Disk Ekleme

    Ben kurulum ve testlerimde VMWare 6.7 kullandım. Anlatımı da bunun için gerçekleştireceğim.

    İşlemler için, ESXi Web arayüzünüze giriş yapınız.

    Storage
    > New Datastore

    Şeklinde ilerleyiniz.

    Mount NFS Datastore

    İsim = Datastore adı

    NFS Server = Sunucu IP si

    NFS Share = Veri yolu

    NFS Version = NFS 3

    Ceph Datastore'u NFS olarak eklemek
    Datastore’u eklemek

    Tebrikler! Artık Ceph Storage sisteminizi sorunsuz bir şekilde ESXi Sisteminize Mount etmiş bulunuyorsunuz.

    Ceph Storage'nin Datastore olarak eklenmesi
    Eklenmiş Datastore

    Aslında bu bize yeterli olsa dahi NFS Gateway sunucumuzda oluşacak herhangi bir kesinti, VM’lerin de uçması anlamına gelmektedir. Bu yüzden makalenin ilerleyen kısımlarında çok daha güvenli ve yedekli bir yapı olan iCSCI formatını inceleyeceğiz.

    Önemli Bilgiler

    • Herhangi bir aşamada herhangi bir node’umuzun sorunlu olduğundan şüphelenecek olur isek sağlık durumunu;
    ssh NODE sudo ceph health Formatında Yani;
    ssh monitor sudo ceph health
    ssh node1 sudo ceph health
    ssh node2 sudo ceph health

    Şeklinde öğrenebiliriz. Daha detaylı bir analiz için;

    ssh NODE sudo ceph -s

    Komutu ile analiz sağlayabiliriz.

    • Herhangi bir aşamada geri dönüşü olmayan bir hata yaptığınızı anlarsanız, tüm ceph paketlerini temizleyerek en baştan başlayabilirsiniz.

    Bunun için Komutumuz;

    ceph-deploy purge {ceph-node} [{ceph-node}]
    ceph-deploy purgedata {ceph-node} [{ceph-node}]
    ceph-deploy forgetkeys
    rm ceph.*

    Formatındadır. Ve Admin / Deploy nodunda çalıştırılmalıdır.

    Yani bu benim oluşturduğum yapı için;

    ceph-deploy purge monitor node1 node2
    ceph-deploy purgedata monitor node1 node2
    ceph-deploy forgetkeys
    rm ceph.*

    Formatındadır.

    Kaynakça;

    Ön Hazırlık

    Cluster Deploy

    CephFS

    Ubuntu NFS Gateway Kurulumu

  • MySQL’de Yavaş Çalışan Sorguların Kontrolü

    MySQL’de Yavaş Çalışan Sorguların Kontrolü

    Selamlar,

    MySQL Üzerinde yavaş çalışan sorguları tespit edebilmek için bu sorguların bir listesini çıkarabilirsiniz.

    İşlemi uygulamak için;

    MySQL’e giriş yapın.

    Sırası ile aşağıdaki komutları uygulayın;

    set @@global.log_queries_not_using_indexes = 1;
    set @@global.slow_query_log = 1;
    set @@global.slow_query_log_file = /var/log/mysql-slow.log;
    set @@global.long_query_time = 0.5;

    Ardından bir süre sonra;

    /var/log/mysql-slow.log

    Dosyasını kontrol ederek yarım saniyeyi aşan sorguları tespit edebilir, bu bağlamda siteniz ve sorgularınız üzerinde optimizasyon gerçekleştirebilirsiniz.

    Bir süre sonra bu eklemeyi tekrar normal hale getirmenizi öneririm, aksi takdirde unutulması halinde uzun dönemde gereksiz disk alanı kullanımına sebep olabilir.

    Eski haline almak için ise;

    MySQL’e giriş yapın.

    Sırası ile aşağıdaki komutları uygulayın;

    set @@global.log_queries_not_using_indexes = default;
    set @@global.slow_query_log = default;
    set @@global.slow_query_log_file = default;
    set @@global.long_query_time = default;

    İyi çalışmalar dilerim.

  • Unknown collation: ‘utf8mb4_unicode_520_ci’ Hatasının Çözümü

    Unknown collation: ‘utf8mb4_unicode_520_ci’ Hatasının Çözümü

    Merhabalar,

    Farklı bir sunucudan yedekleriğiniz MySQL veritabanını, sunucunuza yükler iken;

    Unknown collation: ‘utf8mb4_unicode_520_ci’

    Hatasını alıyor iseniz sürüm ve collation farklarından ötürü yaşandığı ve çözümünün basit olduğunu bilmelisiniz.

    Çözüm için, Veritabanını .sql olarak yedekleyin.

    Notepad ++ gibi çoğul olarak bul – değiştir işlemi gerçekleştiren bir program ile veritabanınızı açın.

    utf8mb4_unicode_ci değerlerini utf8_general_ci olarak değiştirin.

    utf8mb4_unicode_520_ci değerlerini utf8_general_ci olarak değiştirin.

    utf8mb4 değerlerini utf8 olarak değiştirin.

    İşlem bu kadardır.

    İyi çalışmalar dilerim.

  • Roundcube – SMTP authentication is required Hatası

    Roundcube – SMTP authentication is required Hatası

    roundcube-smtp-authentication-is-required

    Roundcube webmail arayüzünde ;

    SMTP Hatası (530) : “xxx@xxx.com” alıcısı eklenemedi (SMTP authentication is required

    Hatası almanız durumunda Roundcube webmail sisteminin bulunduğu ;

    config\main.inc.php

    Dosyasını herhangi bir editör ile açıp ;

    $rcmail_config[‘smtp_user’] = ‘ ‘;
    $rcmail_config[‘smtp_pass’] = ‘ ‘;
    $rcmail_config[‘smtp_auth_type’] = ‘ ‘;

    Satırlarını ;

    $rcmail_config[‘smtp_user’] = ‘%u’;
    $rcmail_config[‘smtp_pass’] = ‘%p’;
    $rcmail_config[‘smtp_auth_type’] = ‘LOGIN’;

    Şeklinde değiştirmeniz durumunda muhtemel olarak sıkıntı çözümlenmiş olacaktır.

    İyi çalışmalar dilerim.

  • SSL Sertifikası kurulumu için IP atandığında siteye erişimin kesilmemesi

    SSL Sertifikası kurulumu için IP atandığında siteye erişimin kesilmemesi

    Merhabalar,

    SSL sertifikası kurulacağı zaman sitenin IP adresini Özel bir IP adresi ile değiştirdiğimizde, DNS yayılma sürecine girdiği için maillerde ve sitenin erişiminde bildiğiniz üzere problem oluşmakta.

    Bu sebepten ötürü, Eski IP adresini 2. bir IP adresi olarak ekleyerek erişim problemlerinin üstesinden gelmekteyiz.

    Özel IP adresini atamamızdan itibaren aşağıda Bu işlemin nasıl yapılacağını detaylıca anlatacağım;

    LINUX

    Ben Linux yönünde DirectAdmin üzerinden örnek vereceğim, Hosting sunucularımız DirectAdmin olduğu için anlatım yeterli, ancak buradan edindiğiniz bilgilerden yola çıakrak apache, apache2, litespeed, ngnix kullanan tüm sunucularda bu işlemi yapmanız mümkün.

    Öncelik ile Her zamanki gibi Özel IP’nin atamasını yapıyoruz.

    Böylece SSL kurulumu yapabilmek için Sitemizi Özel IP adresine alıyoruz.

    Sonrasında, İlgili sunucuya giriş yapıyoruz.

    İşlem yapacağımız kullanıcının httpd.conf dosyasını favori text editörümüz ile açıyoruz.

    Burada, VirtualHost satırını arıyoruz. Sitemiz, DNS kayıtları uyuştuğu sürece sadece bu satırda belirtilen IP adresinden çalışacaktır, eğer bu satırda belirtilen IP adresi, DNS kayıtlarındaki A kayıdından farklı ise ya da bu satırdaki IP hatalı ise, “Apache is Functioning Normally” hatasını alırsınız.

    Görselde gözlemleyebileceğiniz üzere Buradaki sunucunun paylaşımlı IP adresi, özel IP ile değişmiş durumda yani herşey düzgün ilerliyor.

    Ancak, bu esnada DNS yayılma süreci tamamlanana kadar 2-12 saat içerisinde müşterimizin sorgulama problemlerinden ötürü sitesinin açılmaması, Apache is Functioning Normally hatası vermesi mümkün.

    Bu gibi durumlar ile karşılaşmamak için, Özel IP adresinin ardına bir virgül ekleyerek eski yani Sunucunun Paylaşımlı IP adresini de yazmamız gerekiyor.

    Bu işlemi yaptığımızda, DNS yayılma süreci içerisinde yeni kayıdı çekmemiş ve eski IP ile siteye ulaşmak isteyen kullanıcılar da erişimde problem yaşamadan siteye erişebiliyor, yeni Özel IP üzerinden de kullanıcılar siteye erişebilir hale geliyor.

    httpd.conf dosyasında bu satırdan ilgili kullanıcı altında bulunan her site için iki, her subdomain için de extradan iki tane bulunuyor.

    İlki Normal Web erişimi, :80 portu için, 2.si ise SSL erişimi, :443 portu için.

    SSL erişimi için gerekli konfigürasyonu barındıran 443 portu için mevcut kayıt üzerinde de aynı eklemeyi yapmayı ihmal etmiyoruz.

    Bu işlemlerden sonra tek yapmamız gereken, sunucuda aktif çalışan Web Servisini restart etmek.

    lsof -i tcp:80

    Yukarıdaki komut ile sunucuda çalışan Web servisi gözlenebilir.

    İşlem tamamlanmıştır, bu aşamadan sonra site 2 IP adresine de yanıt verecektir.

    İşlemi not alınız ve ortalama 48 saat sonra Paylaşımlı IP Adresini httpd.conf üzerinden kaldırınız.

    WINDOWS

    Elimde örnek bir site olmadığı için direkt IIS üzerinde çalıştım, İşlemleri siz Plesk Panel, Maestro Panel üzerinden Özel IP atamanızın ardından başlıyor gibi düşünürseniz problem olmayacaktır.

    IIS’e giriş yapıyoruz,

    İlgili sitemizi buluyoruz ve sağdaki Bindings sekmesine tıklıyoruz.

    Gözlemleyebileceğiniz üzerine hem http, hem de https için www li ve www siz bir şekilde Özel IP adresi ile beraber kayıtlar oluşmuş durumdadır.

    Bizim yapacağımız, eski IP adresini kullanarak bu kayıtları replike etmek denebilir.

    http kısmında pek fazla dikkat etmemiz gereken bir konu yok, www li ve www siz bir şekilde kayıtları oluşturuyoruz.


    Sonrasında SSL için kayıtları oluşturacağız, bu konu hassasiyet gerektiren bir konudur.

    https’i seçtikten sonra ek olarak bir de SSL Certrificates şeklinde bir kısım açılmakta, ben Default sertifikayı kullandım ancak mutlaka ilgili sitenin SSL sertifikasını kullandığınıza emin olun.

    Aynı şekilde https’i ve sitenin SSL sertifikasını seçerek Binding ekliyoruz;


    Ardından işlemlerimiz neredeyse tamamlanmış oluyor. ipv4.domain.com gibi kayıtlar görebilirsiniz, bu kayıtları es geçebilir hatta dilerseniz silebilirsiniz. Bu kayıtları replike etmenize gerek yoktur. İşlemlerimizi tamamladığımızda Bindings ekranımız aşağıdaki gibi her kayıttan 2 IP için de içerecektir;

    Ardından tek yapmamız gereken IIS te bu sitemizi restart etmek.

    İşlem tamamlanmıştır, bu aşamadan sonra site 2 IP adresine de yanıt verecektir.

    İşlemi not alınız ve ortalama 48 saat sonra Paylaşımlı IP Adresini IIS üzerinden Bindings sekmesinden kaldırınız.

    Bu dökümandaki işlemleri uygulayarak, Kesintisiz Kolaylık ilkesini yakalamaya artık bir adım daha yakınız.

    Hepinize iyi çalışmalar dilerim.

  • Avast Kurulumu

    Avast Kurulumu

    Merhabalar,

    Kurulum dosyalarını aşağıdaki adreslerden temin ettikten sonra yazının devamında kurulum hakkında bilgi bulabilirsiniz.

    libavastengine-4.7.6-i586.tar.gz
    avast4server-3.2.1-i586.tar.gz 

    Dosyaları sunucunuza çektikten sonra aşağıdaki komutlar ile tar.gz’den çıkartıyoruz.

    tar -zxvf avast4server-3.2.1-i586.tar.gz
    tar -zxvf libavastengine-4.7.6-i586.tar.gz

    Daha sonra libavastengine klasörüne giriş yapınız.

    cd libavastengine-4.7.6-i586

    sh mkinstall.sh

    Komutu ile kurulumu başlatabilirsiniz. Herhangi bir değişiklik yapmadan Enter’a basarak devam ediyoruz. 1 kaç dakika kurulum sürebilir.

    Kernel kurulumu tamamlandıktan sonra

    cd ..
    cd avast4server-3.2.1-i586

    kurulum klasörüne girdikten sonra   sh mkinstall.sh komutunu tekrar çalıştırıyoruz. Yine herhangi bir değişiklik yapmadan Enter’a basarak kurulumu tamamlıyoruz.

    Ekstra bir ayar yapmadan kurulumu tamamlamış olduk.

    Kullanımı

    avastcmd taranacak alan

    Komutu taramalar için kullanılır. Komutu kullandığınızda tarayıp geçer, sonuçları ayrı bir dosyaya yazdırmak için > bileşenini kullanmalıyız.

    avastcmd / > /root/tarama.txt

    Bu komut, tarama tamamlandığında sonuçlarını root altında oluşturacağı tarama.txt dosyasına yazar.

    Avast, tarama.txt dosyasına taradığı bütün dosyaları sadece bildirir. Aradan incelemek için infected yani zararlı bulaşmış dosyaları ayırmamız lazım. Bunun için ise;

    cat /root/tarama.txt |grep infect > /root/taramainfected.txt

    Tarama tamamlandığında bu komutu kullanın, sadece virüslü dosyaları /root/taramainfected.txt dosyasına ayriyetten yazar.

    DİKKAT

    -bash: /usr/bin/avastcmd: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

    Yukarıdaki gibi bir hata alacak olur iseniz glibc kütüphanesinin sunucunuzda yüklü olmamasından kaynaklanır.

    yum install glibc.i686
    ya da
    yum install glibc.i386

    Komutları ile kurabilirsiniz.

    WARNING: your SHM block limit is set to 4294967295.
    The value is too small for the latest versions of VPS file.
    Please enlarge ‘kernel.shmmax’ value (see sysctl( 8 )).

    Şeklinde hata alacak olur iseniz aşağıdaki komutu çalıştırmanız yeterlidir;

    sysctl -w kernel.shmmax=128000000

    İyi çalışmalar

  • Plesk Panel Üzerinde Admin Şifresi Öğrenme / Değiştirme

    Plesk Panel Üzerinde Admin Şifresi Öğrenme / Değiştirme

    Merhabalar,

    Plesk Panelinizin admin şifresini unuttu isenz merak etmeniz gereken herhangi bir durum bulunmamaktadır.

    Sunucunuza SSH erişimi sağladığınız sürece, bu şifreyi tekrar öğrenebilir hatta direkt olarak komutlar üzerinden değiştirebilirsiniz.

     

    Plesk Panel 9.x için admin şifresi öğrenmek;

    cat /etc/psa/.psa.shadow

    Plesk Panel 10/11/12 için admin şifresi öğrenmek;

    /usr/local/psa/bin/admin –show-password

    Plesk Panel 10/11/12 için SSH üzeridnen Admin şfiresi değiştirmek

    /usr/local/psa/bin//init_conf -u -passwd <yeni_şifre>

    Plesk Panel Onyx – 17 için şifresiz giriş linki oluşturmak

    plesk login

    Plesk Panel Onyx – 17 için admin şifresi sıfırlamak;

    plesk bin admin –set-admin-password -passwd “Yeni Şifre”

    İyi çalışmalar dilerim.