Elle apc_compile_file kullanarak tüm app için opcode önbellek doldurarak, daha sonra yeni sürüme geçiş

2 Cevap php

Herkes gibi başlık diyor yapmak için harika bir sistem, ya da herhangi bir fikirleri var mı?

1235 sürümden 1234 dan, ama bundan önce, opcode önbellek (APC) zaten tüm dosyaları var - PHP ile yazılmış ve Apache tarafından sunulan - Ben web uygulaması üretim versiyonu geçmek istiyorum. Sonra anahtarından sonra, serbest 1234 den dosyaları için eski önbellek girdilerini kaldırın.

Bildiğim kadarıyla Aklıma gibi atomik bir sürümden diğerine geçiş üç kolay yolu vardır.

  1. Canlı örneğin / için, her zaman belge kök ama bir sürümünden sonraki işaret değiştirilir, sembolik bir bağlantı var.
  2. Benzer şekilde, bir directory / kullanımı her zaman belge kök yaşamak, ama var

    mv oldversion canlı && mv newversion canlı

    yeni sürüme geçmek için.

  3. Newversion için belge kök değiştirmek için apache yapılandırmasını düzenlemek, daha sonra apache yeniden başlatın.

Ben bunu 3 yapmak zorunda değil tercih olduğunu düşünüyorum, ama tüm php dosyalarını derleme ve serbest geçiş için 1 veya 2 kullanmak zaten düşünemiyorum.

Yani birisi iki seçenekte 3 güveniyor, ya da ne kadar 1 veya 2 ile çalışmak bana, ya da ben düşünme değilim bazı başka seçeneği ortaya çıkarmak için bana onun tamam ikna edebilir?

2 Cevap

Tam olarak neden bunu yapmak istiyorsun?

Ben yeni bir sürüme geçiş yaptığınızda, ben sadece benim Apache durdurmak benim VCS'den gelen ödeme yoluyla sunucu üzerinde PHP dosyalarını değiştirmek ve Apache yeniden başlatın. Çoğunlukla, hatta script var, bu koparmak için en az 30 saniye sürer. Tüm bu az ya da hiçbir kullanıcı bir anda yürütülür. Bundan sonra, opcode önbellek boş ve kısa sürede birisi dosyaları kullanır olarak kendini dolduracaktır.

Belki ilk birkaç isabet optimum performans olmaz ama bu kadar kötü olmamalı. Benim üretim sistemleri üzerinde hiçbir kimse bu kısa performans düşüşü fark ettim. Ve aralarında bazıları gerçekten ağır yük sistemleri vardır.

Kullanıcılara herhangi bir rahatsız edici hata mesajları önlemek için dosyaları değiştirirken bile sunucu üzerinde "... Yakında döneceğim yükseltme" ekranı basit yerleştirebilirsiniz.

Then after the switch, remove the old cache entries for files from release 1234.

Sadece tüm önbelleği veya hiç yok temizleyebilirsiniz. Bu seçici bir süreç değil. Bu soruna yaklaşım değişebilir. Ön derleme şeyden önemlidir Eğer geçiş sırasında sunucu aşağı getirmek zorunda kalabilirsiniz.