Apache Yapılandırması
FeedbackPulse SaaS için tam Apache kurulum kılavuzu.
Ön Koşullar
- Apache 2.4+
mod_rewriteetkinmod_headersetkin (güvenlik başlıkları için)- PHP 8.4+ (
mod_phpveya 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.phpolmadan) - 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
- Tüm dosyaları
public_html/feedbackpulse/dizinine yükleyin - cPanel → Domains veya Addon Domains bölümünde belge kökünü
public_html/feedbackpulse/publicolarak ayarlayın - 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
- cPanel'de bir alt etki alanı oluşturun (örn.
feedback.yourdomain.com) - Belge kökünü
public/klasörüne ayarlayın - 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:
- Tüm dosyaları
public_html/dışında bir dizine yükleyin (örn./home/user/feedbackpulse/) public/içeriğinipublic_html/dizinine kopyalayınpublic_html/index.phpdosyası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:
feedbackpulse-saasklasörünüC:\laragon\www\dizinine yerleştirin- Laragon otomatik olarak bir sanal sunucu oluşturur:
feedbackpulse-saas.test - Tarayıcınızda
http://feedbackpulse-saas.testadresini ziyaret edin - 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 olarakpublic/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
- SSL Sertifikaları — HTTPS kurun
- Joker Karakter DNS Kurulumu — kiracı alt etki alanlarını etkinleştirin
- Web Yükleyici Kılavuzu — yükleyiciyi çalıştırın