CentOS 6'da Capistrano ile PHP dağıtımları kurdum ve ilginç bir sorunla karşılaştım. yolu capistrano işleri, böyle klasörleri kurar:Capistrano Symlinks Önbellekleniyor mu?
- /var/www/myapp.com/
- bültenleri paylaşılan
- akım (In/bültenleri son sürümü sembolik bağın)
"Geçerli" bağlantı bağlantısına baktığımda, en son sürüme işaret eder. İlk başta, web uygulamamı açarken her şey iyi çalıştı. Yeni bir sürümü dağıttıktan sonra, geçerli klasörü, yeni sürüme doğru şekilde işaret eder, ancak web uygulaması eski sürümden (Capistrano temizleme işleminde silinmiş olan) dosyaları yüklemeye çalışır. Ayrıca, sanal konak, /var/www/myapp.com/current/Public adresinde işaret edecek şekilde yapılandırılmıştır.
Symlinks herhangi bir şekilde önbelleğe alınmış mı?
(benim çerçeveyi başlatır) başarısız belirli PHP kodu şudur: Şu anda /var/www/app.com/current/Public bulunan index.php içindedir
require_once dirname(dirname(__FILE__)) . '/App/App.php';
App\App::run();
/index.php.
Benim Apache hata günlükleri gösterir:
PHP Fatal error: require_once(): Failed opening required '/var/www/myapp.com/releases/20130826172237/App/App.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/myapp.com/releases/20130826172237/Public/index.php
Ve akım sembolik link şovları: ikincisi önceki sürümü oldu
Açıkçası 20130826172641current -> /var/www/zverse/releases/20130826172641
= 20130826172237!.
Bakabileceğim herhangi bir fikir veya alan var mı?
Bir hıçkırık olmuş gibi görünüyor. Yaklaşık 10 dakika bekledim ve tekrar denedim ve işe yaradı. Bir çeşit Apache optimizasyonu olup olmadığını merak ediyorum? –
PHP'nin gerçek yol önbelleğini devre dışı bırakın veya [mod_realdoc] (https://github.com/etsy/mod_realdoc) kullanın ve bu sorun sunucuyu yeniden başlatmaya gerek kalmadan gider. – Mahn
Centos'taki nginx sunucusuyla aynı sorun, 'geçerli' sembolik bağlantı, en yenisine güncellenmeyecek. – Nimbosa