Ana içeriğe geç

Apache Yapılandırması

FeedbackPulse SaaS için tam Apache kurulum kılavuzu.


Ön Koşullar

  • Apache 2.4+
  • mod_rewrite etkin
  • mod_headers etkin (güvenlik başlıkları için)
  • PHP 8.4+ (mod_php veya PHP-FPM ile)

Gerekli Modülleri Etkinleştirin

sudo a2enmod rewrite headers ssl
sudo systemctl restart apache2

Temel Sanal Sunucu

Yeni bir sanal sunucu dosyası oluşturun:

sudo nano /etc/apache2/sites-available/feedbackpulse.conf

Şunu yapıştırın:

<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/feedbackpulse-saas/public

<Directory /var/www/feedbackpulse-saas/public>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>

# Günlük kaydı
ErrorLog ${APACHE_LOG_DIR}/feedbackpulse-error.log
CustomLog ${APACHE_LOG_DIR}/feedbackpulse-access.log combined
</VirtualHost>

Siteyi etkinleştirin ve yeniden başlatın:

sudo a2ensite feedbackpulse.conf
sudo a2dissite 000-default.conf # Varsayılan siteyi devre dışı bırakın (isteğe bağlı)
sudo systemctl restart apache2

HTTPS Sanal Sunucusu (Let's Encrypt ile)

Bir SSL sertifikası aldıktan sonra:

<VirtualHost *:443>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/feedbackpulse-saas/public

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem

<Directory /var/www/feedbackpulse-saas/public>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>

# Güvenlik Başlıkları
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set X-XSS-Protection "1; mode=block"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

ErrorLog ${APACHE_LOG_DIR}/feedbackpulse-ssl-error.log
CustomLog ${APACHE_LOG_DIR}/feedbackpulse-ssl-access.log combined
</VirtualHost>

# HTTP'yi HTTPS'ye yönlendirin
<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
Redirect permanent / https://yourdomain.com/
</VirtualHost>

Joker Karakter Alt Etki Alanı Desteği (İsteğe Bağlı)

acme.yourdomain.com gibi kiracı alt etki alanları istiyorsanız:

<VirtualHost *:443>
ServerName yourdomain.com
ServerAlias *.yourdomain.com
DocumentRoot /var/www/feedbackpulse-saas/public

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem

<Directory /var/www/feedbackpulse-saas/public>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

Önemli: Ayrıca bir joker karakter DNS kaydına (*.yourdomain.com) ve joker karakter SSL sertifikasına ihtiyacınız var. Bkz. Joker Karakter DNS Kurulumu ve SSL Sertifikaları.


.htaccess Dosyası

FeedbackPulse, public/ dizininde bir .htaccess dosyasıyla birlikte gelir. Bu dosya şunları yönetir:

  • URL yeniden yazma (güzel URL'ler, index.php olmadan)
  • HTTPS zorlama
  • Güvenlik başlıklarını ayarlama

.htaccess çalışmıyorsa, sanal sunucu yapılandırmanızda AllowOverride All ayarlandığından emin olun.

Varsayılan .htaccess şunları içerir:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

Ve public/.htaccess içinde:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

cPanel / Paylaşımlı Barındırma

cPanel ile paylaşımlı barındırma kullanıyorsanız:

Seçenek A: public_html'e Yükleyin

  1. Tüm dosyaları public_html/feedbackpulse/ dizinine yükleyin
  2. cPanel → Domains veya Addon Domains bölümünde belge kökünü public_html/feedbackpulse/public olarak ayarlayın
  3. Belge kökünü değiştiremiyorsanız şu yöntemi kullanın:

public_html/ kökünüzde bir .htaccess oluşturun:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ feedbackpulse/public/$1 [L]
</IfModule>

Seçenek B: Alt Etki Alanına Yükleyin

  1. cPanel'de bir alt etki alanı oluşturun (örn. feedback.yourdomain.com)
  2. Belge kökünü public/ klasörüne ayarlayın
  3. Tüm FeedbackPulse dosyalarını alt etki alanı dizinine yükleyin

Seçenek C: public/ İçeriklerini Taşıyın

Kısıtlayıcı barındırmada son çare olarak:

  1. Tüm dosyaları public_html/ dışında bir dizine yükleyin (örn. /home/user/feedbackpulse/)
  2. public/ içeriğini public_html/ dizinine kopyalayın
  3. public_html/index.php dosyasını düzenleyin — yolları güncelleyin:
// Bunu değiştirin:
require __DIR__.'/../vendor/autoload.php';
// Şununla:
require '/home/user/feedbackpulse/vendor/autoload.php';

// Bunu değiştirin:
$app = require_once __DIR__.'/../bootstrap/app.php';
// Şununla:
$app = require_once '/home/user/feedbackpulse/bootstrap/app.php';

Uyarı: Seçenek C, her güncellemeden sonra yolları güncellemeyi gerektirir. Mümkünse Seçenek A veya B'yi kullanın.


Laragon (Windows Yerel Geliştirme)

Laragon bunu inanılmaz derecede kolaylaştırır:

  1. feedbackpulse-saas klasörünü C:\laragon\www\ dizinine yerleştirin
  2. Laragon otomatik olarak bir sanal sunucu oluşturur: feedbackpulse-saas.test
  3. Tarayıcınızda http://feedbackpulse-saas.test adresini ziyaret edin
  4. Laragon otomatik olarak public/ dizinine işaret eder!

Laragon otomatik sanal sunucu: Laragon, www/ dizinindeki her klasör için Apache sanal sunucuları oluşturur. Belge kökü, o dizin varsa otomatik olarak public/ olarak ayarlanır.


Apache Yapılandırmasını Doğrulayın

# Yapılandırma sözdizimini test edin
sudo apachectl configtest

# mod_rewrite'ın etkin olup olmadığını kontrol edin
apache2ctl -M | grep rewrite

# Sitenin etkin olup olmadığını kontrol edin
ls /etc/apache2/sites-enabled/

# Apache'yi yeniden başlatın
sudo systemctl restart apache2

https://yourdomain.com adresini ziyaret edin — FeedbackPulse açılış sayfasını veya yükleyiciyi görmelisiniz.


Sonraki Adımlar