Ubuntu server üzerinde Xampp kurulumu yapacağız, aslında normalde linux üzerinde hep apache kurup üstüne mysql, php ve ftp kuracak şekilde ilerlerdik ama bu sefer tüm paketleri içinde barından ve bana göre stabil bir sitem olan Ubuntu servere xampp kurulumu yaparak php, mysql, ftp, phpmyadmin gibi tüm servisleri çalıştıracağız.
Kurulum
Kuruluma geçemeden önce sunucunun tüm güncellemelerini tamamladıktan sonra kurulum aşamasına geçeceğiz.
Hazırlık
Sunucuda gerekli güncellemeleri yapmak için ubdate ve upgrade komutlarrını çalıştırınız, ilk önce sudo su ile root yetkisi alıyoruz.
sudo su apt-get update && apt-get upgrade
Update ve upgrade işlemleri tamamlandıktan sonra reboot diyerek sunucumuzu yeniden başlatalım.
Sunucumuzu reboot edip sunucumuza eriştikten sonra gerekli xampp sürümünü indirelim.
Xampp resmi sitesinden https://www.apachefriends.org/download.html istediğiniz sürümünü indirelim. Herhangi bir sürümü seçip bağlantı adresini kopyalayıp ssh panelden wget yardımı ile kurulum dosyasını sunucumuza çekiyoruz.
Dosya adresini kopyaladık.
wget https://sourceforge.net/projects/xampp/files/XAMPP%20Linux/8.2.4/xampp-linux-x64-8.2.4-0-installer.run
Komutu yardımı ile xampp kurulum dosyasını sunucumuza çektik.
Önce indirdiğimiz xampp kurulum dosyasına gerekli yetkileri verip kurulumu başlatıyoruz, gelen uyarı ekranlarına Y diyerek onaylayınız.
chmod 755 xampp-linux-x64-8.2.4-0-installer.run ./xampp-linux-x64-8.2.4-0-installer.run
Ubuntu Servere Xampp Kurulumu sunucunuzun özelliklerine göre biraz zaman alabilir, kurulum bitene kadar bekliyoruz. Kurulum tamamlandıktan sonra xampp servisini çalıştıralım.
/opt/lampp/lampp start
Ubuntu serverde xamp kurulumu tamamladık, ve servisi aktif ettik, kontrol edelim, sunucumuza erişebilecek miyiz? Bu arada 443 ve 80 portlarını açmanız gerekmektedir, güvenlik duvarı kullanıyorsanız.
80 portu ile sunucumuza erişim sağladık, şimdi phpmyadmin erişmek için gerekli izinleri ayarlayalım.
Phpmyadmine girmeye çalışınca yukardaki gibi bir hata aldık, şimdi gerekli config dosyasını düzenleyelim.
nano /opt/lampp/etc/extra/httpd-xampp.conf
Require local yazan kısmı Require all granted olarak değiştiriniz kaydedin ve ardından xampp reset edelim.
/opt/lampp/lampp restart
Resetledikten sonra tekrar phpmyadmine girmeye çalışalım direk açılacaktır, şimdi güvenlik ayarlarını yapalım.
/opt/lampp/xampp security
Son olarak tekrar xampp resetleyelim ve tekrar phpmyadmine erişince belirlediğimiz root şifresi ile girebileceğiz.
/opt/lampp/lampp restart
Adres satırına https://sunucuipadresi/phpmyadmin/ girdiğimizde şifre giriş ekranı karşıladığını göreceksiniz.
Bu aşamaya kadar ubuntu servere xampp kurulumunu gerçekleştirdik, mysql ve phpmyadmin için gerekli güvenlik ayarlarını yaptık, şimdi host oluşturup web sitemizi xampp sunucumuza yönlendireceğiz, ardından ssl sertifikası tanımlayıp adresimizi güvenli hale getireceğiz.
Xampp Vhost İşlemleri
Bu aşamada sunucuo.zulfumehmet.com domain adresimizi bu sunucumuza yönlendirerek işlemlere başlıyoruz.
Host Oluşturma
Dosyalarımızı barındırmak için /opt/lampp/htdocs dizini altında bir klasör oluşturalım
mkdir /opt/lampp/htdocs/sunucuo.zulfumehmet.com
Klasörümüzü oluşturduk log ve erişim için iki farklı klasör daha oluşturalım
mkdir /opt/lampp/htdocs/sunucuo.zulfumehmet.com/html mkdir /opt/lampp/htdocs/sunucuo.zulfumehmet.com/log
/opt/lampp/htdocs/sunucuo.zulfumehmet.com/html /opt/lampp/htdocs/sunucuo.zulfumehmet.com/log Bu iki yolu kaydedelim, ilerde vhost aşamasında lazım olacaktır.
/opt/lampp/htdocs/sunucuo.zulfumehmet.com/html dizinini içinde bir adet index.html dosyası oluşturalım.
echo "sunucuo.zulfumehmet.com" > /opt/lampp/htdocs/sunucuo.zulfumehmet.com/html/index.html
Vhostu aktif edelim aşağıdaki komut yardımı ile,
nano /opt/lampp/etc/httpd.conf
#Include etc/extra/httpd-vhosts.conf başındaki # (sharp) simgeyi kaldırınız, dosyayı kaydedip çıkınız.
Domaini tanımlamak için aşağıdaki komutu kullanarak httpd-vhosts.conf dosyasını düzenleyelim
nano /opt/lampp/etc/extra/httpd-vhosts.conf
<VirtualHost *:80> ServerAdmin sunucuo.zulfumehmet.com DocumentRoot "/opt/lampp/htdocs/sunucuo.zulfumehmet.com/html" ServerName sunucuo.zulfumehmet.com ServerAlias sunucuo.zulfumehmet.com ErrorLog "/opt/lampp/htdocs/sunucuo.zulfumehmet.com/log/error_log" CustomLog "/opt/lampp/htdocs/sunucuo.zulfumehmet.com/log/access_log" common </VirtualHost>
Kendi yapınıza göre kayıtları düzenleyiniz. Dosya yolu olarak yukarda not aldığımız dosya yolunu kullanacağınızı unutmayınız. Dosyayı kaydedip çıktından sonra xampp resetleyelim.
/opt/lampp/lampp restart
Tarayıcıdan sunucuo.zulfumehmet.com yazdığımızda web sitemize erişmemiz gerekmektedir.
Ubuntu Servere Xampp kurulumu yaptık ve host ekleme işlemini de tamamladık, sıradaki işlemimiz https erişimini aktif etmek olacaktır.
SSL Yükleme ve HTTPS aktif etmek
Cerbot kullanarak Let’s Encrypt den domain adresimiz için alınacak sertifikayı hostumuza tanımlayacağız.
Https protokolü 443 portundan çalıştığı için güvenlik duvarı kullanıyorsanız 443 portunu açmayı unutmayınız.
Cerbot kurulumu için gerekli paketleri kuralım
sudo snap install core; sudo snap refresh core
Yüklü eski sürüm bir cerbot varsa kaldıralım
sudo apt remove certbot
Cerbot kurlumuna geçelim
sudo snap install --classic certbot
Yoolumuzu bağlayalım
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Kurulumu tamam şimdi sertifikamızı oluşturalım. İlk önce xampp durduralım ve ardından sertifikamızı oluşturalım
/opt/lampp/lampp stop
Sertifikamızı oluşturalım
sudo certbot certonly --standalone -d sunucuo.zulfumehmet.com
Yukardaki şekilde cevapladıktan sonra verilen sertfika yolunu bir yere not alalım ve xampp çalıştıralım.
/opt/lampp/lampp start
Sertifikaları hostumuza tanımlamak için aşağıdaki komutu giriniz.
nano /opt/lampp/etc/extra/httpd-ssl.conf
Sayfanın en altına gelip aşağıdaki kodları kendinize göre yapılandırıp giriniz.,
<VirtualHost *:443> ServerAdmin sunucuo.zulfumehmet.com DocumentRoot "/opt/lampp/htdocs/sunucuo.zulfumehmet.com/html" ServerName sunucuo.zulfumehmet.com ServerAlias sunucuo.zulfumehmet.com ErrorLog "/opt/lampp/htdocs/sunucuo.zulfumehmet.com/log/error_log" CustomLog "/opt/lampp/htdocs/sunucuo.zulfumehmet.com/log/access_log" common SSLEngine on SSLCertificateFile "/etc/letsencrypt/live/sunucuo.zulfumehmet.com/fullchain.pem" SSLCertificateKeyFile "/etc/letsencrypt/live/sunucuo.zulfumehmet.com/privkey.pem" </VirtualHost>
Yukardaki şekilde kendinize göre düzenleyip kaydedip çıkınız. Ardından xampp resetleyelim.
/opt/lampp/lampp restart
Siteye https protokolü ile erişmeye çalışalım.
Gördüğünüz gibi sitemiz güvenli ve sertifikamız tanımlı.
Sertifika Yenileme İşlemi
Oluşturduğumuz sertifika 90 gün geçerli olacağı için biz bunu otomatik olarak nasıl yenilebiliriz. Son adımda bu konuya değineceğiz. Aşağıdaki komut yardımı ile domainimizi yenilemek için tanımlayalım
nano /etc/letsencrypt/renewal/sunucuo.zulfumehmet.com.conf
En alt satıra aşağıdaki komutu ekleyiniz.
renew_hook = systemctl reload your_service
Kaydedip çıkalım.
Şimdi test edelim.
/opt/lampp/lampp stop && certbot renew --dry-run && /opt/lampp/lampp start
Yeni sertifikalarımız oluştu, şimdi yukarda girdiğimiz komutu 3 ayda bir otomatik çalışacak şekilde cronjob servisine ekleyelim. Cron görev litesini açmak için aşağıdaki komutu giriniz.
crontab -e
Açılan sayfanın en altına şu kuralı ekleyelim.
/opt/lampp/lampp stop && certbot renew --dry-run && /opt/lampp/lampp start
Bu şekilde 3 ayda bir çalışacak olan komutumuz önce xampp servisini durduracak, sertifikaları yenileyip geri xampp servisini aktif edecektir.
FTP Yapılanması
Dosya upload etmek, silmek ve düzenlemek için ftp aracılığı ile bağlantı kuracağız, bunun için ftp yapılanmasını yapalım.
Ftp ile erişim sağlamak için güvenlik duvarından 21 portunu açmanız gerekmektedir.
İlk olarak ftp adında bir grup oluşturalım.
groupadd ftp
Ftp için bir zmehmet adında bir kullanıcı oluşturalım.
useradd zmehmet
Kullanıcıya bir şifre tanımlayalım
passwd zmehmet
Oluşturduğumuz zmehmet kullanıcısını ftp grubuna alalım,
usermod -a -G ftp zmehmet
Klasörümüzü eşleştirelim
chow zmehmet.ftp /opt/lampp/htdocs/sunucuo.zulfumehmet.com/html chmod 775 /opt/lampp/htdocs/sunucuo.zulfumehmet.com/html
Ardından xampp reboot edelim.
/opt/lampp/lampp restart
Ftp bağlantımızı sağlayalım
Ftp bağlantımızı da oluşturduk.
Değineceklerim bu kadar, tüm aşamaları tek tek yaparak anlatmaya çalıştım, takıldığınız yerleri yorum kısmına yazarsanız yardımcı olmaya çalışacağım.
https://tr.wikipedia.org/wiki/Cron
https://tr.wikipedia.org/wiki/Let%27s_Encrypt