Hosting bir sistemdir: bir şeyi değiştirmeden önce gerçekleri belirleyin
Bir barındırma sorunu kolayca “betik bozuk” gibi görünebilir; gerçek neden PHP sürümü, eksik eklenti, dolu dosya sistemi, izinler, ağ yolu veya posta iletimi olabilir. Önce gerçekten sahip olduğunuz ortamı tanımladığınızda tanılama çok daha sakin ve sistemli ilerler.
Aynı proje başka bir sunucuda farklı davranabilir
Dosyalar aynı olabilir ama çalışma ortamı aynı değildir. PHP sürümü, yüklü eklentiler, dosya sistemi sınırları, sahiplik, izinler, saat, ağ erişimi ve sunucu politikası uygulamanın ne yapabileceğini etkiler.
Bu yüzden ilk yararlı soru “neyi değiştirmeliyim?” değil, “bu hangi ortamda çalışıyor?” sorusudur. Terminal bu belirsiz ortamı incelenebilir gerçeklere dönüştürür.
Bir ekranlık gerçekle başlayın
Sağlıklı bir özet, her uygulamanın sağlıklı olduğunu kanıtlamaz. Bu bir başlangıç çizgisidir: daha derine inmeden önce makine, Core veya çalışma ortamının beklediğiniz şey olmadığını hızlıca fark etmenin yoludur.
coredoctor -qsys hostsys uptimeBir PHP özelliği yalnızca bu çalışma ortamı gerçekten sağlıyorsa vardır
Eksik bir özellik, yanlış komutla aynı şey değildir. Rastgele geçici çözüm yerine açık özellik hatasını tercih edin: önce eklentiyi doğrulayın, sonra etkinleştirme, başka araç seçme veya işi başka ortama taşıma kararını verin.
php versionphp modulesphp info memory -cdoctor extensionsBoş alan, dizin kullanımı ve izinler farklı sorulardır
Her şeyi yazılabilir yaparak “izinleri düzeltmeyin”. Sahibi ve erişim modunu inceleyin, yalnızca değişmesi gereken en küçük hedefi değiştirin ve tekrar doğrulayın. İzinler yerel erişim sınırıdır; kimlik doğrulama veya şifreleme yerine geçmez.
disk .disk . -rstat .Silmeden, yeniden başlatmadan veya tahmin etmeden önce günlükleri okuyun
Yararlı bir günlük satırında bağlam vardır: zaman, bileşen, istek veya işlem ve gerçek hata. “Temizlemeden” önce bu bağlamı koruyun. Hatanın tam olarak ne zaman başladığını ve o sırada neyin değiştiğini söyleyebildiğinizde birçok zor sorun sıradanlaşır.
log -lOrtam değerleri ve e-posta ayrı alt sistemlerdir; ayrı ayrı test edin
env server SERVER_ADDRenv TMPmailDüzeltmeden önce başlangıç durumunu kaydedin
PHP ayarları ve modüller, izinler veya barındırma yapılandırması değiştirilmeden önce kompakt raporları diagnostics/ içine yönlendirin. Değişiklikten sonra aynı raporları yeniden toplayın ve “şimdi daha iyi gibi” hissi yerine gerçekleri karşılaştırın.
Bu alışkanlık lil-terminal’in çok ötesine taşınır. Linux, macOS, Windows, konteynerlerde ve kontrol panellerinde iyi tanı aynı sırayı izler: ortamı belirle, katmanı izole et, kanıt topla, bir şeyi değiştir, doğrula.
md diagnosticsdoctor -j > diagnostics/doctor.json -rsys > diagnostics/system.txt -rphp version > diagnostics/php.txt -rBunu betik olarak saklayın
Bunu hosting-baseline.lil olarak kaydedin. Uygulama verisini değiştirmeden diagnostics/ içine kompakt bir tanı anlık görüntüsü toplar. Barındırma değişikliğinden önce ve sonra anlık görüntüleri saklayın; karşılaştırma çoğu zaman hafızadan daha değerlidir.
#lil
@install md doctor sys php disk log env
md diagnostics
core > diagnostics/core.txt -r
doctor -q > diagnostics/doctor.txt -r
sys > diagnostics/system.txt -r
php version > diagnostics/php.txt -r
disk . > diagnostics/disk.txt -r
log -l > diagnostics/logs.txt -r
env server SERVER_ADDR > diagnostics/server.txt -r