Rails

2010-05-21 15 views
5

'daki üretim sunucusundaki hata ayıklama, beta/üretim sunucusunda olsun, canlı sunucuda raylarda nasıl hata ayıklama yapıyorsunuz? Rails

sunucuda dosyayı doğrudan değiştirme ve uygulamayı yeniden başlatmayı çalıştı, ancak değişikliklerin etkili görünmüyor, ya da (önbelleğe?) Ben de yapmaya çalıştım

"komut dosyası için uzun zaman alır/server production "yerel olarak, ancak bu çok yavaştır.

Diğer seçenek kodlamak ve dağıtmaktır, ancak bu çok verimsizdir.

Bunu verimli bir şekilde nasıl gerçekleştirdikleri konusunda herhangi bir kavrayışı var mı?

cevap

7

Ben sorunuza cevap verecektir

Öncelikle, sunucuyu yeniden başlatıldığını gerçekten emin misin? Günlük dosyalarını tarayarak kontrol et.

Değiştirilen kodunuz tarafından görüntülenen görünüm önbelleğe alınabilir. Önbelleğe alınan sayfalar tmp/cache klasörünün altında bulunur. Dosyayı el ile silmeyi deneyebilirsiniz ya da rake tmp:cache:clear yapabilirsiniz ve hepsi silinecektir. Neyse, log/production.log dosyanızı doldurarak neler olduğunu tam olarak görebilirsiniz ('önbelleğe alınıyor ...' gibi bir şey söyleyecektir).

Başka bir nokta: Bazı veriler de oturumda saklanır. Ayrıca oturumunuzu silmeye (veya tüm oturumları silmeye; EG oturumlarınızı DB'de tutuyorsanız, rake db:sessions:clear çalıştırabilirsiniz)

+0

harika ipuçları: cache: 1) atık günlük dosyaları (i can kuyruk melez yanı kaydeder) 2) tmp komisyon! berrak (TEŞEKKÜRLER) PS: Ben doğrudan deneme sunucusundan kodunu düzenlemek için Coda kullanın. =) –

2

deneyin üretim modunda yerel sunucuyu çalıştırmak için:

RAILS_ENV=production script/server 

veya

script/server --environment=production 

problem, aynı zamanda gerçek üretimde WEBrick/melez sunucusu kullanmıyorsanız, Bunu yapmak tam olarak gerçek üretim yapılandırmanızı (muhtemelen Apache veya Yolcu? kullanarak) çoğaltmayacaktır. Ayrıca, sorunlarınıza neden olabilecek ortamlarda ince farklılıklar olabilir.

Orada bir şeyleri değiştirdiğinizde üretim ortamınızı nasıl yeniden başlatıyorsunuz? Bu, nasıl dağıtıldığına bağlıdır ve uygulamanızın/tmp'inizde bir restart.txt dosyasının düşürülmesi veya uygulamanızı sunan Apache veya Mongrel süreçlerinin yeniden başlatılması kadar zor (gerçekten değil) kadar basit olabilir. Bunu yaptığınızda değişikliklerin görünmesi uzun sürüyor.

Üretim modunda bir sorun oluştuğunda, yalnızca bir düzeltme yönüne işaret eden production.log dosyasını kontrol ediyorum. Bunu geliştirmede uyguluyorum ve sonra yeniden konuşlandırıyorum. Bu genellikle bir şeyler ile ilgilenir. Kurulumunuz benimkinden çok daha karmaşık değilse, Capistrano'yu kullanmak sadece 3 komutu (bir taahhüt, bir itme ve dağıtım) gerektirmektedir. Ben sunucu kodu :) Anında düzeltme bu şekilde aynı fikirde olmasa bile

+0

Ne demek istiyorsunuz restart.txt? Kurulumum da çok basit, ancak sorun bazen üretim ortamını kullanarak DEBUG'a ihtiyacım var, bu da sık sık yapmam gereken anlamına geliyor. =) –

+0

Yolcu (raylar dağıtımı için bir Apache modülü) altında uygulamayı/tmp dizininde bir restart.txt dosyası oluşturarak uygulamayı yeniden başlatırsınız. Belgeyi buradan kontrol edin: http://www.modrails.com/documentation/Users%20guide.html # _redeploying_restarting_the_rack_application – Roadmaster