Baştan Sona VPS Sunucu Kurulumu

Baştan Sona VPS Sunucu Kurulumu

Merhabalar. Yazıma böyle genel bir başlık vermek istedim. Yapılacakları bu şekilde toplamadığım sürece bu çok uzun sürecek yazımı yazmaya başlayamıyordum. Size, kendime ait dört siteyi ve mail hesaplarımı barındırdığım, aynı zamanda içerisinde VPN Sunucusu da bulunan VPS’imi (Virtual Private Server) nasıl kurduğumu adım adım anlatacağım. VPS sunucu kurulumu için gerekenler liste olarak bu konuda bulunacak ve bağlantılar ile ilgili konulara yönlendirileceksiniz. Kendi not defterimde bulundurduğum, VPS sunucuyu baştan sona oluşturmak için gereken adımları aşağıda görebilirsiniz.

VPS Sunucu Özellikleri

Bu adımları tamamladığınızda elinizde CentOS 7.2 64-bit işletim sistemi üzerinde OpenVPN, VestaCP (Web Hosting Control Panel), Varnish HTTP Cache, NetData Monitoring, ownCloud ve Transmission Torrent Client gibi programlar bulunan 1 CPU, 512 MB RAM ve 20 GB SSD disk özelliklerinde bir sunucunuz olacak. Sunucuyu DigitalOcean’dan aylık $5 ücret ile kiraladım. Sunucumun özellikleri düşük olduğu için VestaCP (Web Hosting Control Panel) kurulumunu SpamAssassin (Mail spam filtresi) ve ClamAV (Antivirüs) olmadan yaptım. Otomatik kurulum yaptığınızda sunucunuzun özelliklerini kendisi kontrol ederek kurulumu gerçekleştirmekte. Bu ikisini isterseniz kurulum komutunu değiştirerek dahil edebiliyorsunuz.

VPS Sunucumda Kurulu Olan Programların Listesi

  • VestaCP (Web Hosting Control Panel) – Web sitelerinin ve güvenlik duvarının yönetildiği panel
  • OpenVPN – Açık kaynak VPN sistemi
  • NetData Monitoring – Tüm sunucu verilerinin görüldüğü ve bize sorunları E-Posta yoluyla bildirim olarak gönderen sistem
  • ownCloud – Bulut sistemi
  • Transmission Torrent Client – Torrent dosyalarını indirebildiğimiz sistem
  • Varnish HTTP Cache – HTTP önbellekleme ile sitelerin açılışlarını hızlandıran bir sistem

Ucuz VPS Sunucunun Kapasitesi

Sunucu özellikleri araştırmalarım sonucu günlük 30-40 bin gösterim alan sitelere bile yetiyor fakat bunun garantisini verememekteyim. Bu yazıyı kullanarak yaptıklarınızdan siz sorumlusunuz. Ben çok az gösterim almama rağmen başlarda sorun yaşadım. Sorun Apache sunucusundaydı. Aslında sorun değil fakat 512 MB RAM’li sunucum Apache’nin RAM açlığını doyuramadı. Apache ayarlarında ufak düzeltmeler sorunu çözdü. Fazla uzatmadan bu girişi bitirip yazıma başlıyorum. Ben yeterince sorun yaşadım fakat siz sorun yaşamayın, keyfini çıkarın diye bu yazıyı yazmaya karar verdim. 🙂 Yanlışlarım olabilir. Yorumlarınızı beklerim. Keyifli kurulumlar.

Adım Adım VPS Sunucu Kurulumu

  • Başlamadan bilinmesi gerekenler;
  • DigitalOcean Üyeliği – VPS Kurulumu & PuTTY İle Bağlantı Kurma
    • 1 CPU, 512 MB RAM ve 20 GB SSD özelliklerinde $5 ücretli CentOS 7.2.1511 64-bit sunucu (Droplet) oluşturulması
    • Sunucu oluşturulurken konum seçilmesi gerekmekte. Araştırmalarım ve DigitalOcean sunucularına attığım Pingler sonucu ben sunucumu Frankfurt/Almanya’dan seçtim. 77 ms ping vermekte. Tüm DigitalOcean sunucuları yurt dışında olduğu için Türkiye’ye en az ping’i Frankfurt lokasyonu verdi.
  • VestaCP (Web Hosting Control Panel) Kurulumu
    • VestaCP kullanırken SSL sertifikası oluşturma kısmında kendiliğinden Lets Encrypt desteklediğini fark ettim. Fakat kullanmak istediğimde hata verdi. Bu hatayı PuTTY ile bağlanıp yum install vim-common komutu ile çözebiliyoruz.
  • CentOS 7.2’de Zaman Dilimi (Timezone) ve Ağ Zaman Protokolü (NTP) Ayarları
  • CentOS 7’de Swap File Oluşturulması ve İnce Ayarları
  • Kullanıcı Oluşturulması
    • Root yetkileri verilmesi
    • Root kullanıcısının SSH kapatılması (Güvenlik Duvarında 22 portunu herkese açmazsak buna gerek yok)
    • Yeni kullanıcıya Visudo verilmesi (WinSCP için.)
  • OpenVPN (Bir açık kaynak VPN Sunucusudur. VPN ihtiyacınız olmasa bile sunucuya bu kanaldan ulaşmak güvenlik sebebiyle tavsiyem ve tercihimdir.)
    • Kullanacağınız cihazlara OpenVPN sertifikasının konulması
    • OpenVPN’i aynı kullanıcı adıyla birden fazla cihazda kullanmak için gereken Duplicate Key ayarının yapılması
  • Root FTP, phpMyAdmin, SSH kullanıcılarının ve bilgilerinin not alınması
  • VestaCP Firewall (Güvenlik Duvarı) Ayarları
  • Site Dosyalarının Taşınması
  • Site Veritabanlarının Taşınması
  • phpMyAdmin 2 MB Olan Yükleme Sınırının Arttırılması
    • /etc/php.ini post_max_size = 50Mupload_max_size = 50M, apachetl restart
  • NetData Monitoring Kurulumu
  • Varnish HTTP Cache (Varnish en sevdiğim konu. Siteleriniz bu program sayesinde ışık hızında açılmakta. Varnish özetle sitenizin son halini önbelleğe alıyor (Disk veya RAM üzerine) ve bunu sunuyor. Sitede değişiklik olduğunda tabi ki bu tekrar oluşturuluyor ve artık yeni hali sunuluyor.)
    • Varnish 80 portundan yayın yapmakta 8085’ten dinlemekte, Nginx 8080’den dinlemekte 8085’ten yayın yapmakta ve Apache 8080’den yayın yapmakta.
  • Hostname
  • SPF (Mail kayıtları)
  • Apache (PHP optimizasyonları yapılacak. RAM’i tüketmesi sorunu çözülecek.)
  • Adım adım WordPress ve OpenCart Kurulumu
  • DigitalOcean Düzenli Sunucu Yedekleme & Snapshot
  • Virtual Host Dosyalarında php_admin_value open_basedir none Ayarının Eklenmesi
  • htop Kurulumu
  • ownCloud Kurulumu (Dropbox, Google Drive vb. gibi)
  • MySQLTuner ile MariaDB Optimizasyonu
  • CentOS’a Transmission Torrent Client Kurulumu
  • NGINX Optimizasyonu
  • phpMyAdmin’i “.htaccess” ile Güvenlik Altına Almak
  • VestaCP’ye (Web Hosting Control Panel) Sonradan SpamAssassin Kurulumu

Aşağıya sunucum ve sitelerimle ilgili bazı görüntüler ekliyorum. Sizin de benim gözümden görmenizi istedim. Bazı hız testleri de (Google PageSpeed) mevcut. Gerekli optimizasyonlarla sunucu aşağıdaki gibi olmakta.

Güncelleme: Sunucumda ve sitemde yaptığım günlerce süren iyileştirmeler sonucunda aşağıdaki puanları da yükseltmiş durumdayım. Güncellenmiş görselleri kısa sürede ekleyeceğim.

Test Yaptığım Siteler

Bu siteleri test yapmak, testler sonucunda sitemin hız puanlamasını öğrenmek ve optimizasyonlar yapmak için kullanıyorum. Siz de faydalanabilirsiniz.


VPS Sunucuyu CentOS 7.2 den 7.3 Sürümüne Güncelleme (02/02/2017)

Sunucumu bugün 2-3 saat süren çalışmalar sonucu CentOS 7.2 sürümünden 7.3 sürümüne yükseltmiş bulunmaktayım. yum update komutuyla sunucuda yüklü olan her şeyi bir kerede güncelledim. Yaklaşık 300 MB ve 400 paketten oluşan bir güncelleştirme gerçekleşti.  Bu işlemlerin sonunda NGINX, Virtual Host dosyaları, httpd, Dovecot Mail Sunucusu ve Varnish ayarlarını baştan yapmam gerekti. Tüm bu ayarlar sıfırlanmıştı. Sıfırlanma sebebi benden kaynaklı da olabilir. Sorun çıkmasın diye Vesta Web Panel’den kullanıcımı tekrar oluşturdum. Tekrar oluşturmak bir tuş ile Vesta üzerinden oluyor. Ezbere çoğu ayarı yapabildim fakat Dovecot dosyalarını ne kadar uğraşsam da düzeltemedim. Dovecot’ta sıkıntı varken Roundcube sunucu ile bağlantı kuramadığına dair hata vermekteydi. Sunucumu güncellemeden önce Snapshot’ını almıştım. Bu Snapshot’ı kullanarak yeni bir sunucu oluşturdum ve Dovecot dosyalarını (sunucumun güncellenmeden önceki halinden) bundan kurtardım. Oradan aldığım dosyaları yerine koyduğum an sorun çözüldü. Sunucu işi gerçekten büyük bir sorumluluk. Sıklıkla Log dosyaları arasında kayboluyorum.


VPS Sunucuda Varnish Cache Problemi (05/02/2017)

Varnish Cache ile bir ay süren zahmetli uğraşlarım sonucu az önce yollarımı ayırdım. 512 MB sunucumun RAM azlığı ve Varnish’in önbellek kısmını SSD’ye taşımama rağmen hala 20% gibi bir RAM kullanımı olduğu için sistem neredeyse çalışmamaktaydı. MariaDB, NGINX, Apache vb. gibi tüm sunucularda günlerce optimizasyon çalışmaları yaptım fakat yinede olmadı. Şimdilik yoluma Varnish’siz devam edeceğim. En azından 1 GB RAM’li bir sunucuya geçersem bunu kurabilirim. Sorunla ilgili biraz daha bilgi vermek gerekirse, sunucu RAM kullanımı Varnish varken 80%’i geçmiyordu. Varnish bu kalan 20%’yi tutuyor ve bırakmıyor gibiydi. Zaten kullanabildiğim 80% üzerinde de 20% kullanımı vardı. Bu yüzden sistem Swap belleğe yani SSD üzerine yazmaya başlıyordu. SSD olduğu için Swap çokta korkunç değil fakat Varnish varken Swap’a geçildiğinde sistem kitleniyor, saniyede 1 GB gibi bir disk okuması gözlemliyordum. Bir sorun vardı fakat bu sorun Varnish kullanılırken Swap’a geçildiğinde olduğu için bence benden kaynaklı değildi.

Problem RAM azlığı gibi görünse de aslında Varnish’in RAM’in 20%’sine el koyması, kalan 80%’den zaten 20% kullanıyor olması, haliyle RAM’in tükenmesi ve Swap’a geçilmesi, normalde Swap’a geçildiğinde ciddi sorunlar yaşanmazken Varnish varken saniyede 1 GB gibi disk okumaları görülmesi. Bu haliyle faydadan çok zararı olduğu için Varnish’i devre dışı bıraktım. Bu yüzden anlatımını gerçekleştirmeyi düşünmüyorum.


VPS Sunucuda PHP 7 Güncellemesi (08/02/2017)

Sunucumun PHP sürümünü 5.6 dan 7.0.15’e yükselttim. replace komutuyla yükseltmeyi gerçekleştirdiğim için hali hazırda kullanılan bir sistemin yükseltmesini minimum zararla başardım. Tek sorun Roundcube Webmail’de çıktı. Roundcube 1.2.3 sürümü PHP 7’yi desteklese de ısrarla bu yüklemeyi yaparken uyumsuz olduğunu belirterek silmek istedi. Sildiği tüm dosyaları bulup isimlerini değiştirdim silemesin diye, aslında buna da gerek yok. Config klasörü dışında pek birşey gerekmiyor. Roundcube’ün Config klasörünü sağlama aldıktan sonra yükseltmeyi başlattım ve bu yükseltme Roundcube’ü sildi yani sildiğini sandı. PHP 7 yükseltmesi başarılı olmuştu sistem inanılmaz hızlanmış ve RAM tüketimi ciddi derecede azalmıştı. Fakat Roundcube 1.2.3 HTTP 500 hatası verdi. Bende Roundcube’ü 1.3 beta sürümüne yükselttim ve o da şuan çalışmakta. Bunla ilgili bir yazı yazmayı düşünmüyorum çünkü fazlasıyla karışık. Düzgün bir şekilde anlatabileceğimi düşünmüyorum ve her aşamada sorun çıkabilir bunları da çıktıkça çözmek lazım. PHP sürümünü güncellemek kadar Roundcube’ü yükseltmekte zor bence. Sırada MariaDB’yi 10’a yükseltmek var.


VPS Sunucuda MariaDB 10 Güncellemesi (08/02/2017)

MariaDB’yi 10.1.21 sürümüne güncelledim. Bu güncelleme kolay oldu. PHP 7 ile birlikte bir yazı yazabilirim. MariaDB 10 güncellemesinden sonra Log tutmayı durdurdu. my.cnf dosyasında yaptığım değişiklik ile bunu çözdüm.


WordPress Sitelerde Eklentilerin PHP Sürümüyle Uyum Kontrolü (09/02/2017)

PHP 7 ve MariaDB 10 güncellemelerinden sonra sitelerimi detaylı bir şekilde kontrol ettim. İki adet WordPress sitem mevcut. Bu ikisine PHP Compatibility Checker adlı eklentiyi kurarak temalarımın ve tüm eklentilerimin PHP 7 desteklerini kontrol ettim. Favicon’larımı yönettiğim All In One Favicon bir kaç hata verdiği için bunu  Favicon by RealFaviconGenerator ile değiştirdim. Bunun dışında başka bir problem yoktu.


VPS Sunucuda Varnish Cache Problemi Çözüldü! (19/05/2017)

Merhabalar. Varnish kullandığımda sunucumda bazı sıkıntılar yaşamıştım. Bugün akşam saatlerinde Varnish’i tekrar aktifleştirdim. Şimdiye kadar bir sorun yaşamadım. Sorun yaşamamamın nedeni sanırım Swap dosyasında yaptığım iyileştirmeler oldu. Son yaptığım ayarları bu yazımdan okuyabilirsiniz. Bu ayarlarım sonrasında RAM kullanımında o kadar iyi gelişmeler oldu ki bende Varnish’i tekrar aktif etmek istedim. Sayfalarım tekrar en başta anlattığım gibi hızlanmış durumda. Gelişmeleri tekrar bildiririm.


Varnish Cache Neden SSL Desteklemiyor? (25/05/2017)

Merhabalar. Son zamanlarda sunucumdaki bütün siteleri Let’s Encrypt ile SSL lisansına kavuşturmayı planlıyordum. İki adet sitemi bugün itibariyle SSL’e geçirdim. Fakat HTTP ve HTTPS portları farklı olduğundan HTTP kısmında çalışabilen Varnish Cache haliyle HTTPS kısmında çalışmıyor. Bazı araştırmalarımda SSL portuna da Varnish eklemeyi başaranlar var fakat Varnish HTTP Cache SSL desteklemiyor hatta kendi sitelerinde neden SSL desteklemediklerine dair bir yazı yazmış durumdalar. Bu yazıya buradan ulaşabilirsiniz.

Böyle bir durum olduğu için bende Varnish Cache kullanmaktan tekrar vazgeçmek zorunda kalacağım. Şimdilik tüm sitelerimin geçişini tamamlayacak vakit bulamadığım için kalan sitelerimde hala Varnish aktif durumda.

İlgilenen olursa İngilizce olan bu yazıda Varnish Cache’e SSL desteği eklemenin yolunu gösteriyorlar.

Baştan Sona VPS Sunucu Kurulumu
5 üstünden 5 puan (100%) | Toplam 2 oy kullanıldı.
Kategoriler: Bilgi, Sunucu, Teknoloji Etiketler: , , , , , , , , , , , ,

🎓 Elektrik ve Elektronik Mühendisi 💾 Webmaster 🖋 Blogger 🖥 Kurucu @wpustasi