CodeIgniter: Geliştirme ve Üretim Ortamı

2 Cevap php

Ben CodeIgniter PHP çerçeve öğrenme sürecinde şu anda duyuyorum. Geçerli Şu anda ben bir DEV çevre ve ÜRETİM ortam olması arıyorum. Tamamen C ve JAVA arka plandan geliyor, ben (versiyon kontrolü ile) lokal olarak her şeyi olan alışkınım, ama ben bir web sitesinde ÜRETİM tarafı var çünkü, ben farklı bir kaç şey merak ediyorum:

  1. Yerel olarak DEV çevreyi korumak için daha iyi mi?
  2. (DEV env yerel olduğunu varsayarak) ÜRETİM tarafına onları almak için DEV tarafında değişiklik yaparken Ne iyi (ve kolay) yolu olurdu?
  3. Bu mümkün mü (ve eğer öyleyse, nasıl?) Kurulum CodeIgniter bir DEV & var Aynı KodAralığı PROD ortamı (sunucu üzerinde ancak farklı veritabanları tablolar ile demek)?
  4. Ben Çerçevesinde yaratacak bir uygulama üzerinde Sürüm Kontrolü kullanırken, sadece benim uygulama için oluşturduğunuz dosyalar var, ya da bütün Framework (Framework sürüm ile uyumlu kod tutmak için) eklemek için tavsiye edilir?

Ben önceden herhangi bir düşünce ya da önerileriniz için teşekkür ederiz.

Teşekkürler!

2 Cevap

Ben CodeIgniter'ı kullanmayın, bu yüzden tüm soruları cevaplamak için mümkün olmayabilir; ama, yine, burada birkaç işaretçiler:

  • Development environment : I like when each developper has it's own environment ; and it's generally easier / faster when it's on his machine
    • geliştirme makineleri pencereleri çalışan ve size üretim sunucusu Linux çalıştıran olacak eğer yine, bu (harf duyarlılığı gibi bu ikisi arasında bir kaç farklılık dosya isimleri vardır) bazı sorunlar getirebilir
    • Bu durumda, bir minimalist Virtual Machine (with Linux+Apache+PHP+MySQL on it ; the code source is on it too, exported via a samba share) iyi bir çözüm olabilir çalıştırmak için VMware ya da VirtualBox kullanarak, yeterince güçlü bir bilgisayara sahip sağlanan - ben birkaç yarısından fazlasını bir yıl yapıyor oldum ne, ve oldukça iyi çalışıyor
  • Pushing changes from dev to prod :
    • bir çözüm üretim sunucusunda oturum ve "svn update" yapmak için; ama gerçekten böyle (if some files have been modified directly on the production server -- yes, this sometimes happens), çatışmaları ve benzeri karşılaşabilirsiniz yok; o ^ ^ siteyi kırmak olabilir ve bu, tüm kesinlikle eğlenceli değil
    • Sevdiğim bir solutioon daha (takes more time to deploy, but if you deploy only, say, once a week, it's quite OK -- and definitly more secure) bir katran / zip / ne olursa olsun arşiv oluşturmak, dev makinelerin birinde "svn verme" kullanımı ve eşya sunucuya yüklemektir. Sonra, yeni bir dizine ayıklamak; Bittiğinde ve bu yeni dizine kök dizini işaret etmek için sembolik bağlantıyı değiştirmek. Güzel bir şey: Eğer üretim sunucusunda eski kaynaklarını tutmak ve dağıtılan ne feci bir problem varsa, sadece bir önceki sürüme dönmek için geri değiştirmek için bir sembolik bağlantı var - ^ ve bu bazen gün kaydedebilirsiniz ^
    • oh, ve, bir dipnot düşmek gibi: sizin için otomatik olarak yapmak için bir komut dosyası yazmak gerekir: bu ine adım bir gün karıştırmasını önlemek olacaktır, elle yaparken (and will help for the day when the guy that always does that is in holidays ^^ )
  • About using one instance of the sources for both environments : even if you plan on doing this only for the framework, I wouldn't recommend it :
    • kötü olduğu, aynı makine üzerinde dev ve eşya sahip demektir: gelişme komut hala bazı deli olur ve kötü şeyler ne olur? Ne bir geliştiricilerin tür yanlış dizinde "rm-Rf" bazı kinf olur?
    • Farklı veritabanları tablolar (I'd rather go with different databases ; with different users, to avoid anyone doing any bad request on the wrong database !) düşündüm, ama bu tek şey değil: ne geçici dosyaları hakkında? Örneğin önbellek,?
    • Gerçekten tam örneklerini ayrılmış zorunda tercih ediyorum; ve ben gerçekten iki farklı makineleri olan tavsiye ederim - kaynaklar / çerçeve iki makinede var demektir bile!
  • About having the framework on SVN :
    • SVN, yeni bir geliştirme ortamı kurmak için en kolay üzerindeki fazla şeyler: ideal, sadece bir "svn checkout", ve sadece ekibine katılan yeni developper için hazır yeni bir ortam var; Bir Virtal Makinası ile birleştiğinde size (copied from another's machine), sen düzine birkaç dakika içinde proje üzerinde çalışmak için geliştiricilerin hazır olabilir ona verebilir - güzel ;-)
    • Yine SVN'de Çerçeve sahip güncellemek için bir PİDE: Eğer, onu yeniden işlemek yerine, onu silmek zorunda ...
    • Svn kullanma: her zaman güncel olması için iyi bir şey olabilir, olabilir, Externals (if you can -- depends on your setup / your framework) çerçevenin SVN sunucusuna kendisini işaret (mutlaka BAŞ işaret değil, bir etiket veya bir dal kullanarak yeterince iyi olabilir Senin için).

Hope these few notes help...
Have fun !

1) Ben Pascal MARTIN katılıyorum - en iyi herkesin kendi yerel dev bir ortam olması için; bu şekilde birbirlerinin ayak üzerinde atlama olmadan oynayabilirsiniz. Bu ekip üyeleri (ve proje paydaşları) entegre, ilerleme kodunu görebilirsiniz testi veya hazırlama ortamında bir tür olmasını istiyorsanız, o zaman, anlamına gelebilir.

Eğer bir veya daha fazla ortamlara dağıtmak / otomatikleştirmek nasıl soruyorsun gibi 2, 3) Daha genel olarak, bu sesler. Bunu yapmak için çeşitli ticari ve açık kaynak kodlu seçenek vardır. Biz son zamanlarda Capistrano (http://www.capify.org) kullanmaya başladım ve sonuçlar gerçekten çok mutlu olmuştur. Bu bir yakut aracı ve yakut-on-raylar-izm kullanılarak yazılmıştır. Bu (ben değil) aşina değilseniz bunu anlamaya okuma ve google'da biraz sürer. Ancak, onun kalbinde sadece uzak sunucularda komut dosyaları tanımlamak ve çalıştırmak için bir araçtır. Bu komut (biz, örneğin, PHP kullanmak) dağıtım her türlü kullanılabilir. Sorunuza cevap Capistrano iki büyük şeyler:

  • Bu sürüm kontrolü hakkında bilir; Eğer SVN, git, ya da başkalarının kullanmak ister, o deposundan son kodu aşağı çekerek ve uzak sunucu (lar) güncelleştirmek için gerekli her türlü yapmanın (çeşitli yollar) bilir.
  • Bu işlemleri yapar, bu yüzden bir şey build / dağıtmak işlemi ile yanlış giderse, otomatik olarak bir önceki sürüme geri alma yapabilirsiniz

4) Bu muhtemelen simplist model; sadece CodeIgniter kurulumunu indirmek ve uygulamalar / dizininde kod yazmak. Bazı yeni sıcak özellikten yararlanmak için CI yükseltmek istiyorsanız bu güçlük birgün olabilir. Onlar güncelleme zaman, o da senin koduna yuvarlandı alır böylece, CodeIgniter dış linki: Bir svn tanımlayarak toparlamaya gerekir. Bkz: http://svnbook.red-bean.com/nightly/en/svn.advanced.externals.html daha fazla bilgi için ...