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.

Bash:
# 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.

  1. Yapılandırma dosyasını açın:

    sudo nano /etc/apache2/sites-available/000-default.conf

  2. Şu satırları bulun ve değiştirin:

    • DocumentRoot /var/www/html -> DocumentRoot /srv/www/projem

  3. 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>
    
  4. Servisi yeniden başlatın:

    sudo systemctl restart apache2


3. Nginx Yapılandırması

Nginx'te yapılandırma daha kompakttır.

  1. Yapılandırma dosyasını açın:

    sudo nano /etc/nginx/sites-available/default

  2. root satırını güncelleyin:

    • root /var/www/html; -> root /srv/www/projem;

  3. 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:

Bash:
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 ssh

  • Web 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/tcp ve sudo ufw allow 443/tcp

3. Güvenlik Duvarını Aktif Edin

Şimdi kuralları devreye alabiliriz:

Bash:
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:

PortProtokolServisDurum
22TCPSSHİZİNLİ
80TCPHTTPİZİNLİ
443TCPHTTPSİ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

  1. [ ] SSH portu (22) açık mı?

  2. [ ] Web portları (80, 443) açık mı?

  3. [ ] 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:

Bash:
# 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 --apache

  • Nginx için: sudo certbot --nginx

İşlem Sırasında Size Şunlar Sorulacaktır:

  1. E-posta: Yenileme bildirimleri için geçerli bir adres girin.

  2. Kullanım Koşulları: A (Agree) ile onaylayın.

  3. Alan Adı: Sitenizin adını seçin (örneğin: pardusprojem.com).

  4. Yönlendirme (Redirect): Genellikle 2 (Redirect) seçeneğini seçmeniz önerilir. Bu sayede http üzerinden gelen herkes otomatik olarak güvenli https bağ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:

Bash:
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:

Bash:
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:

  1. Dosya Yapısı: Web dosyalarınız artık profesyonel standart olan /srv/www altında.

  2. Erişim: Apache/Nginx bu yeni dizine göre yapılandırıldı.

  3. Güvenlik (Kalkan): UFW ile sadece gerekli kapılar açıldı.

  4. 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.

Nginx:
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:

Nginx:
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

Apache:
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
</IfModule>

mod_expires (Önbellekleme) Aktif Etme

Apache:
<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 nginx

  • Apache: 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:

  1. Google PageSpeed Insights: Sitenizin hız skorunu ölçer.

  2. GTmetrix: Sıkıştırma ve önbellekleme hatalarını gösterir.

  3. 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.

Bash:
#!/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?

  1. Dosyayı oluşturun: nano kurulum.sh

  2. Kodları içine yapıştırın ve CTRL+O, ENTER, CTRL+X ile kaydedin.

  3. Çalıştırma izni verin: chmod +x kurulum.sh

  4. Betiğ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:

Bash:
#!/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:

  1. Terminalde crontab -e komutunu çalıştırın.

  2. 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

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Etap 23 Yazıcı Kurulumu