Pardus'ta /var/www Yerine /srv Kullanmak: Neden ve Nasıl?
Pardus üzerinde web sunucunuzun kök dizinini /var/www/html yerine /srv/www altına taşımak, profesyonel sunucu standartlarına uyum sağlamak adına harika bir adımdır.
1. Hazırlık: Dizin ve İzinlerin Ayarlanması
Öncelikle verilerimizin duracağı yeni yuvayı oluşturalım ve Pardus'un web servis kullanıcısı olan www-dataya gerekli izinleri verelim.
# Dizinleri oluştur
sudo mkdir -p /srv/www/projem
# Test için basit bir index dosyası atalım
echo "<h1>Pardus /srv Dizininden Merhaba!</h1>" | sudo tee /srv/www/projem/index.html
# Sahiplik izinlerini düzenle
sudo chown -R www-data:www-data /srv/www/projem
sudo chmod -R 755 /srv/www/projem
2. Apache Yapılandırması
Apache'de varsayılan "VirtualHost" ayarlarını güncellememiz gerekiyor.
Yapılandırma dosyasını açın:
sudo nano /etc/apache2/sites-available/000-default.confŞu satırları bulun ve değiştirin:
DocumentRoot /var/www/html->DocumentRoot /srv/www/projem
Dizin erişim iznini ekleyin:
Dosyanın içine (VirtualHost bloğunun sonuna doğru) şu bloğu ekleyin:
Apache:<Directory /srv/www/projem> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>Servisi yeniden başlatın:
sudo systemctl restart apache2
3. Nginx Yapılandırması
Nginx'te yapılandırma daha kompakttır.
Yapılandırma dosyasını açın:
sudo nano /etc/nginx/sites-available/defaultrootsatırını güncelleyin:root /var/www/html;->root /srv/www/projem;
Servisi yeniden başlatın:
sudo systemctl restart nginx
4. Değişikliği Doğrulama
Tarayıcınızın adres çubuğuna localhost veya sunucu IP adresinizi yazdığınızda, az önce /srv/www/projem/index.html içine yazdığımız mesajı görüyorsanız işlem başarıyla tamamlanmıştır.
Neden Önemli?
Bu yönlendirme sayesinde, işletim sistemine ait loglar veya sistem dosyaları ile web sitenizin dosyaları fiziksel/mantıksal olarak birbirinden ayrılmış olur. Yarın bir gün disk alanınız dolarsa, sadece /srv dizinine yeni bir disk bağlayıp mount etmek (bağlamak) çok daha kolay olacaktır.
Pardus üzerinde web sunucunuzu /srv dizinine yönlendirdikten sonra, kapıları kilitlemek yani bir Güvenlik Duvarı (UFW - Uncomplicated Firewall) yapılandırmak en kritik güvenlik adımıdır.
UFW, Linux dünyasında güvenlik duvarını yönetmenin en basit ve etkili yoludur. İşte adım adım sunucunuzu dış dünyaya karşı koruma altına alma rehberi:
Pardus'ta UFW ile Sunucu Güvenliği
1. UFW'yi Kurun ve Durumunu Kontrol Edin
Pardus'ta genellikle yüklü gelir, ancak emin olmak için:
sudo apt update && sudo apt install ufw -y
sudo ufw status
2. Temel Kuralları Belirleyin (Çok Önemli!)
Her şeyi engellemeden önce, kendi erişiminizi kesmediğinizden emin olmalısınız.
SSH Erişimine İzin Verin: Eğer sunucuya uzaktan bağlanıyorsanız bunu yapmadan UFW'yi aktif etmeyin!
sudo ufw allow sshWeb Trafiğine İzin Verin:
Apache için:
sudo ufw allow 'Apache Full'(Hem 80 hem 443 portunu açar)Nginx için:
sudo ufw allow 'Nginx Full'Manuel Port Açma (Alternatif):
sudo ufw allow 80/tcpvesudo ufw allow 443/tcp
3. Güvenlik Duvarını Aktif Edin
Şimdi kuralları devreye alabiliriz:
sudo ufw enable
(Gelen uyarıya y diyerek onay verin.)
4. Yapılan Ayarları İnceleyin
Hangi kapıların açık olduğunu görmek için:
| Port | Protokol | Servis | Durum |
| 22 | TCP | SSH | İZİNLİ |
| 80 | TCP | HTTP | İZİNLİ |
| 443 | TCP | HTTPS | İZİNLİ |
Görmek için komut: sudo ufw status numbered
Profesyonel İpucu: IP Sınırlama
Eğer web sunucunuzun yönetim panelini (örneğin /srv/www/admin) sadece belirli bir IP'den erişilebilir yapmak isterseniz şu komutu kullanabilirsiniz:
sudo ufw allow from [SİZİN_IP_ADRESİNİZ] to any port 22
Özet: Güvenlik Kontrol Listesi
[ ] SSH portu (22) açık mı?
[ ] Web portları (80, 443) açık mı?
[ ] Gereksiz tüm portlar kapalı mı? (UFW varsayılan olarak diğerlerini engeller)
Sunucunuz artık hem düzenli bir dosya yapısına (/srv) hem de sağlam bir kalkanına (UFW) sahip.
Pardus sunucunuzu /srv dizinine yönlendirdiniz ve UFW ile koruma altına aldınız. Şimdi ise bu yapıyı Let's Encrypt kullanarak ücretsiz bir SSL sertifikasıyla (HTTPS) şifreleme vakti.
HTTPS, hem veri güvenliği sağlar hem de Google arama sonuçlarında (SEO) sitenizi daha yukarı taşır.
Pardus'ta Let's Encrypt (Certbot) Kurulumu
Pardus/Debian tabanlı sistemlerde bu işlem için en yaygın araç Certbot'tur.
1. Certbot'u Kurun
Öncelikle sisteminize Certbot ve kullandığınız web sunucusuna uygun eklentiyi yükleyin:
# Apache kullanıyorsanız:
sudo apt install certbot python3-certbot-apache -y
# Nginx kullanıyorsanız:
sudo apt install certbot python3-certbot-nginx -y
2. SSL Sertifikasını Alın
Certbot, web sunucunuzun yapılandırma dosyasını (artık /srv dizinine işaret eden dosya) otomatik olarak tarayacak ve sertifikayı yerleştirecektir.
Apache için:
sudo certbot --apacheNginx için:
sudo certbot --nginx
İşlem Sırasında Size Şunlar Sorulacaktır:
E-posta: Yenileme bildirimleri için geçerli bir adres girin.
Kullanım Koşulları:
A(Agree) ile onaylayın.Alan Adı: Sitenizin adını seçin (örneğin:
pardusprojem.com).Yönlendirme (Redirect): Genellikle
2(Redirect) seçeneğini seçmeniz önerilir. Bu sayedehttpüzerinden gelen herkes otomatik olarak güvenlihttpsbağlantısına aktarılır.
3. UFW Ayarlarını Güncelleyin
Hatırlarsanız bir önceki adımda portları açmıştık. SSL sertifikası 443 portunu kullanır. Eğer "Full" profilini seçmediyseniz emin olmak için şu komutu çalıştırın:
sudo ufw allow 443/tcp
4. Sertifika Yenileme Testi
Let's Encrypt sertifikaları 90 gün geçerlidir. Pardus, bu sertifikaları otomatik yenilemek için arka planda bir "cron" işi oluşturur. Bunun düzgün çalışıp çalışmadığını şu komutla test edebilirsiniz:
sudo certbot renew --dry-run
"Congratulations, all simulated renewals succeeded" mesajını görüyorsanız her şey yolundadır!
Sonuç: Tam Donanımlı Pardus Sunucunuz!
Şu ana kadar şunları başardık:
Dosya Yapısı: Web dosyalarınız artık profesyonel standart olan
/srv/wwwaltında.Erişim: Apache/Nginx bu yeni dizine göre yapılandırıldı.
Güvenlik (Kalkan): UFW ile sadece gerekli kapılar açıldı.
Güvenlik (Şifreleme): Let's Encrypt ile siteniz
https://protokolüne taşındı.
Pardus sunucunuzun hızını artırmak için yapacağınız en etkili iki dokunuş Gzip Sıkıştırması ve Tarayıcı Önbellekleme (Browser Caching) ayarlarıdır. Bu ayarlar, sitenizin yüklenme hızını %50'ye kadar artırabilir ve sunucu bant genişliğinden tasarruf sağlar.
İşte /srv dizinindeki verilerinizi daha hızlı sunmak için yapmanız gerekenler:
1. Nginx İçin Performans Optimizasyonu
Nginx kullanıyorsanız, /etc/nginx/nginx.conf veya siteye özel yapılandırma dosyanızda şu ayarları güncelleyin:
Gzip Sıkıştırma
Sunucu, dosyaları göndermeden önce sıkıştırır ve kullanıcının tarayıcısı bunları açar. Bu, veri transferini inanılmaz derecede azaltır.
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml;
gzip_proxied any;
gzip_min_length 1000;
Önbellekleme (Caching)
Statik dosyaların (resim, css, js) her seferinde sunucudan istenmemesi için tarayıcıya "bunu bir süre sakla" talimatı veririz:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
2. Apache İçin Performans Optimizasyonu
Apache tarafında bu işlemleri .htaccess dosyası üzerinden veya ana yapılandırma dosyanızdan yapabilirsiniz.
mod_deflate (Gzip) Aktif Etme
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
</IfModule>
mod_expires (Önbellekleme) Aktif Etme
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 month"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
</IfModule>
3. Değişiklikleri Uygulama
Hangi sunucuyu kullanıyorsanız onu yeniden başlatarak ayarları devreye alın:
Nginx:
sudo systemctl restart nginxApache:
sudo systemctl restart apache2
Performans Testi: Nasıl Anlarım?
Yaptığınız bu ayarların çalışıp çalışmadığını şu yöntemlerle test edebilirsiniz:
Google PageSpeed Insights: Sitenizin hız skorunu ölçer.
GTmetrix: Sıkıştırma ve önbellekleme hatalarını gösterir.
Tarayıcı Konsolu: F12 tuşuna basıp "Network" sekmesine gelin. Sayfayı yenilediğinizde dosyaların yanında "from disk cache" veya "gzip" ibarelerini görmelisiniz.
Son Hali
Şu an elimizde devasa bir rehber var:
Dizin Yapısı:
/srv(Düzenli)Güvenlik: UFW (Güçlü)
Şifreleme: SSL (Güvenli)
Performans: Gzip & Cache (Hızlı)
Hem zamandan tasarruf etmenizi sağlayacak hem de hata payını minimize edecek otomatik kurulum betiğini (Bash Script) aşağıda hazırladım.
Bu script, az önce konuştuğumuz tüm adımları (Dizin oluşturma, UFW, Nginx yapılandırması ve Gzip ayarları) Pardus üzerinde tek seferde yapar.
🚀 Pardus Otomatik Sunucu Yapılandırma Betiği
Aşağıdaki kodları bir dosyaya kaydedin (örneğin: kurulum.sh) ve çalıştırın.
#!/bin/bash
# --- DEĞİŞKENLER ---
DOMAIN="projem.yerel" # Kendi alan adınızı buraya yazın
SRV_PATH="/srv/www/pardus_projem"
echo "--- Pardus Sunucu Yapılandırması Başlıyor ---"
# 1. Dizin ve İzinler
sudo mkdir -p $SRV_PATH
echo "<h1>Pardus /srv Dizininden Merhaba!</h1>" | sudo tee $SRV_PATH/index.html
sudo chown -R www-data:www-data $SRV_PATH
sudo chmod -R 755 $SRV_PATH
# 2. Nginx Kurulumu ve Yapılandırması (Örnek Nginx)
sudo apt update && sudo apt install nginx -y
cat <<EOF | sudo tee /etc/nginx/sites-available/default
server {
listen 80;
server_name $DOMAIN;
root $SRV_PATH;
index index.html;
# Performans Ayarları (Gzip)
gzip on;
gzip_types text/plain text/css application/javascript;
# Önbellekleme
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
}
}
EOF
# 3. Güvenlik Duvarı (UFW)
sudo apt install ufw -y
sudo ufw allow ssh
sudo ufw allow 'Nginx Full'
echo "y" | sudo ufw enable
# 4. Servisleri Yeniden Başlat
sudo systemctl restart nginx
echo "--- İşlem Tamamlandı! ---"
echo "Web dizini: $SRV_PATH"
echo "Güvenlik Duvarı: Aktif"
Script Nasıl Kullanılır?
Dosyayı oluşturun:
nano kurulum.shKodları içine yapıştırın ve
CTRL+O,ENTER,CTRL+Xile kaydedin.Çalıştırma izni verin:
chmod +x kurulum.shBetiği çalıştırın:
./kurulum.sh
Sunucu Mimarisi Görsel Özeti
Bu betiği çalıştırdığınızda sunucunuzun dosya ve güvenlik katmanları şu şekilde organize edilmiş olur:
Tebrikler! Artık Pardus üzerinde profesyonel standartlarda çalışan bir web sunucunuz var.
Sunucu yönetimi söz konusu olduğunda, "Yedeklenmeyen veri, yok hükmündedir." Bu yüzden, /srv dizinindeki web dosyalarınızı ve konfigürasyonlarınızı korumak için hızlı ve etkili bir yedekleme scripti hazırladım.
Bu script, verilerinizi sıkıştırır, tarih damgası vurur ve belirlediğiniz bir yedekleme klasörüne (veya harici bir diske) aktarır.
💾 Pardus Otomatik Yedekleme Betiği (Backup Script)
Aşağıdaki kodları yedekle.sh adıyla kaydedebilirsiniz:
#!/bin/bash
# --- AYARLAR ---
BACKUP_SOURCE="/srv/www/pardus_projem" # Yedeklenecek kaynak
BACKUP_DEST="/home/$USER/yedekler" # Yedeklerin saklanacağı yer
CONF_SOURCE="/etc/nginx/sites-available" # Yapılandırma dosyaları
DATE=$(date +%Y-%m-%d_%H%M%S) # Tarih damgası
FILENAME="sunucu_yedek_$DATE.tar.gz"
# Yedekleme dizini yoksa oluştur
mkdir -p $BACKUP_DEST
echo "--- Yedekleme İşlemi Başlıyor: $DATE ---"
# 1. Dosyaları Sıkıştır ve Yedekle
# Hem web dosyalarını hem de sunucu ayarlarını tek bir pakete koyar
sudo tar -czvf $BACKUP_DEST/$FILENAME $BACKUP_SOURCE $CONF_SOURCE
# 2. İzinleri Düzenle (Kullanıcının erişebilmesi için)
sudo chown $USER:$USER $BACKUP_DEST/$FILENAME
echo "--- Yedekleme Başarıyla Tamamlandı! ---"
echo "Dosya konumu: $BACKUP_DEST/$FILENAME"
# 3. İsteğe Bağlı: 30 günden eski yedekleri sil (Disk dolmasın diye)
# find $BACKUP_DEST -type f -mtime +30 -name "*.tar.gz" -exec rm {} \;
Bu Scripti Otomatize Edin (CronJob)
Yedekleme işleminin her gece saat 03:00'te otomatik çalışması için Pardus'un zamanlanmış görevlerini kullanabilirsiniz:
Terminalde
crontab -ekomutunu çalıştırın.Dosyanın en altına şu satırı ekleyin:
00 03 * * * /home/kullanici_adiniz/yedekle.sh
💡 Profesyonel İpucu: 3-2-1 Kuralı
Sunucunuzun güvenliği için 3-2-1 kuralını unutmayın:
Verinizin 3 kopyası olsun.
Bu kopyaları 2 farklı medya türünde (Disk ve Bulut gibi) saklayın.
Kopyalardan 1 tanesi mutlaka sunucudan farklı bir fiziksel konumda (başka bir şehir veya bulut servisi) olsun.
Böylece Pardus sunucunuzda /srv dizini üzerinde kurduğunuz yapı tam anlamıyla kurumsal bir seviyeye ulaştı.

Yorumlar