PHP projesinin çalışması için dosya yüklemenin yanında doğru PHP sürümü, uzantılar, Composer bağımlılıkları ve belge kökü gerekir. Bu rehber public klasörünü giriş noktası yapan bir projeyi örnekler; mevcut projenizin dizin yapısını okumadan değiştirmeyin.
1. Gereksinimleri ölçün
SSH'de site kullanıcısıyla proje dizinine geçin:
php -v
php --ini
php -m
composer check-platform-reqs
Bağımlılıklar henüz kurulmadıysa check-platform-reqs kurulum sonrasında tekrarlanır. Panelde seçili web PHP ile CLI farklı olabilir; Composer ve cron'u doğru binary ile çalıştırın. composer.json içindeki ext-* ve PHP sürüm gereksinimlerini kontrol edin.
2. Üretim bağımlılıklarını yükleyin
Güvenilir kaynaktan gelen projenin Composer scriptlerini gözden geçirdikten sonra:
composer install --no-dev --prefer-dist --optimize-autoloader
composer check-platform-reqs
php -l public/index.php
Canlıda composer update ile bağımlılık sürümlerini rastgele değiştirmeyin. Lock dosyasından kurulmuş sonucu test edin. php -l yalnız sözdizimini kontrol eder; veritabanı veya form işlevini sınamaz.
3. Document root ve dosya izinleri
| Yol | HTTP erişimi |
|---|---|
| /srv/app/public/ | Document root; index.php ve açık assetler |
| /srv/app/vendor/ | Doğrudan yayınlanmaz |
| /srv/app/storage/ | Özel log/cache; gerekli kullanıcıya yazma |
| /srv/app/config/ | Özel yapılandırma; secret dışarıya açılmaz |
Plesk/CyberPanel'de ilgili domain'in belge kökünü projenin public dizinine ayarlayın. Bütün projeye chmod 777 vermeyin. Upload klasörü PHP çalıştırmamalı; hangi dosyaların indirilmesine izin verildiği sunucuda denetlenmeli.
4. Üretim hata ayarları
Panelin ilgili PHP ayarından veya gerçekten okunan ini dosyasından:
display_errors = Off
log_errors = On
Error logun yeri web kökü dışında ve yetkili erişimli olsun. Framework debug modu ayrıca kapatılır. .env dosyası yalnız var diye PHP tarafından yüklenmez; projenin config mekanizmasını izleyin.
5. İşlev ve gizlilik testi
Giriş, arama, DB yazma, dosya yükleme ve cron için birer kontrollü test yapın. Anonim istekle /.env, /composer.json, /.git/config ve /storage/logs/ yollarından hassas içeriğin dönmediğini doğrulayın; 200 durum kodu tek başına yeterli değil, uygulama fallback'i olabilir. Kurulum bitince geçici phpinfo/test dosyalarını kaldırın.
Sorun halinde
500'de aynı saate ait PHP uygulama loguna bakın; “could not find driver” eksik PDO sürücüsü, “Class not found” autoload/bağımlılık sorunu olabilir. Önceki dosya sürümüne dönerken DB migration uyumluluğunu kontrol edin. Yeni siparişleri kaybettirecek tam SQL geri yüklemesini rutin rollback saymayın.
Bilgiyi uygulanabilir projeye dönüştürelim.
İhtiyacınızı teknik, operasyonel ve ticari açıdan değerlendirip doğru çözüm yol haritasını birlikte oluşturalım.
Projenizi Anlatın



