Önce uygulamanın bağımlılıklarını çıkarın
composer.json ve kilit dosyasından uygulamanın PHP ve uzantı gereksinimlerini belirleyin. Geliştirme bilgisayarındaki PHP ile IIS FastCGI motorunun aynı sürüm ve uzantıları kullandığını varsaymayın. Hazırlanan pakette üretim bağımlılıkları ve derlenmiş ön yüz varlıkları bulunmalıdır.
Kullandığınız Laravel sürümünün dağıtım belgesini esas alın. Linux’a özel süreç, yol veya sistem aracı kullanan paketlerin Windows üzerinde çalışmasını test edin. Uyumlu olmayan bir bağımlılık panel ayarıyla kendiliğinden düzelmez.
Web kökü ve yazma izinleri
| Konum | Beklenen yaklaşım |
|---|---|
| public | IIS üzerinden yayınlanan giriş noktası ve statik varlıklar. |
| .env ve uygulama kaynakları | Doğrudan web kökünün dışında; hassas ayarlar yayın paketince ezilmez. |
| storage ve bootstrap/cache | Uygulama kimliğinin gerekli yazma izni bulunur. |
| Kullanıcı dosyaları | Erişim politikası ve çalıştırılabilir dosya kısıtları ayrıca doğrulanır. |
IIS yönlendirmesini ve ortamı test edin
Ana sayfa yanında gerçek bir Laravel rotasını ve var olmayan bir yolu deneyin. Apache için hazırlanmış .htaccess dosyasının IIS tarafından uygulanacağını düşünmeyin; IIS kuralı uygulamanın giriş noktasına uygun olmalıdır.
Üretimde ayrıntılı hata gösterimini kapalı tutun. Mevcut uygulama anahtarını ve ortam dosyasını güncellemede koruyun; anahtarı gelişigüzel yenilemek şifrelenmiş veriye erişimi etkileyebilir. Önbelleğe alınan yapılandırmayı dağıtım sırasının parçası olarak yenileyip kullanılan değerleri güvenli biçimde doğrulayın.
Kuyruk ve zamanlanmış işleri ayrı değerlendirin
- Uygulamanın hangi işleri HTTP isteği dışında çalıştırdığını listeleyin: e-posta, rapor, bildirim veya dosya dönüştürme.
- Her iş için yürütülebilir PHP yolunu, çalışma klasörünü, hesabı ve ortam ayarlarını kaydedin.
- Mevcut Windows görevi veya hizmeti varsa aynı işi ikinci bir yöneticiyle başlatmayın; tek sahip belirleyin.
- Test işini kuyruğa ekleyip gerçekten tamamlandığını ve hata kaydının izlenebildiğini doğrulayın. Web sayfasının açılması işleyicinin çalıştığını kanıtlamaz.
Yayın öncesi son kontrol
Giriş, oturum, veritabanına yazma, dosya yükleme ve bir arka plan işini birlikte sınayın. .env ve özel depolama dosyalarının URL ile indirilemediğini kontrol edin. Beklenen 404 sayfasının gerçekten 404 döndürdüğünü de doğrulayın.
Şema değişikliği içeren yayında yedek ve geri dönüş kararını önce hazırlayın. Test ortamında gerçek alıcılara posta, ödeme veya webhook göndermeyi engelleyin; başarılı denemeyi sürüm ve tarih bilgisiyle kaydedin.
Sık sorulan sorular
Laravel proje kökü IIS fiziksel yolu olabilir mi?
Genel yaklaşım public klasörünü web kökü yapmaktır. Uygulama kaynaklarını ve .env dosyasını doğrudan yayınlamak yerine erişim sınırını dizin yapısıyla kurun.
.htaccess IIS üzerinde yeterli mi?
Hayır. Apache kuralları IIS’e kendiliğinden uygulanmaz. Gerçek uygulama rotalarıyla IIS yönlendirmesini doğrulayın.
Site açılıyor ama işler çalışmıyor, neden?
HTTP süreci ile kuyruk işleyicisi farklıdır. İşleyicinin hesabını, PHP yolunu, ortamını ve hata kaydını ayrı kontrol edin.
Güncellemede .env yeniden oluşturulur mu?
Mevcut üretim ayarlarını koruyun. Yeni değişkenleri kontrollü ekleyin; örnek ortam dosyasını üretim dosyasının üzerine kopyalamayın.