Bir geliştirme sunucusu kurma

5 Cevap

PHP uygulamaları geliştirirken, bu size / test geliştirmek bir sunucuya sahip olmak en iyisidir ve hazır bir kez daha sonra canlı bir sunucu her şeyi koymak.

Tamam, ama nasıl?

Eğer bir hosting şirketi aracılığıyla ev sahipliği yapıyorsanız nasıl kurulum kendi geliştirme sunucusu üzerinde test etmek olabilir ki canlı sunucusu olarak taklit tüm LAMP ayarları? Daha sonra canlı bir aynı değildir biri üzerinde test farklılık ise, amaca doğru yendi çünkü?

Daha iyi aynı hosting şirketi aracılığıyla başka bir sunucu kullanmak ve onları geliştirme ve canlı olanları hem de aynı ayarlarını yapmak sorabilir mi?

Ayrıca ne canlı sunucuya onları geri kontrol, sonra "kalkınma sunucu" onlara "canlı sunucu" iş dosyaları kontrol etmek için kullanılacak en iyi iş akışı nedir?

Teşekkürler!

5 Cevap

Benim günlük çalışma iki puan:

Daha iyi aynı hosting şirketi aracılığıyla başka bir sunucu kullanmak ve onları geliştirme ve canlı olanları hem de aynı ayarlarını yapmak sorabilir mi?

Eğer ikinci bir sunucu gelemez, iyi gitmek için en iyi yol olabilir. Ikinci kiralanan sunucunun uzun vadeli maliyetinin bir kısmını, diğer taraftan, bir yerel makine yükseltmek ve irade ile uğraşmak, ve tüm bu. Emin değilseniz, yerel bir makine için gkimlikerdim.

PHP bir çok taşınabilir bir dil olduğunu unutmak istemiyorum. Herhangi bir Linux dağıtımları arasında bir PHP uygulama çalışmaları yapmak, komut satırı araçları veya tamamen egzotik uzantıları belirli, ve hatta kullanmak istemiyorsanız Windows bazı ayarları ve ayrıntılar bir soru, ama gerçekten büyük bir anlaşma daha fazla.

Ayrıca ne canlı sunucuya onları geri kontrol, sonra "kalkınma sunucu" onlara "canlı sunucu" iş dosyaları kontrol etmek için kullanılacak en iyi iş akışı nedir?

Bu alanda pek çok görüş ve uygulamaları vardır. Ben kullandım yerde şahsen benim için, aşağıdaki iş akışı kimlikeal olduğu ortaya çıktı - tüm projelerde kendimi bu uygulama sürecinde ve tüm müşterileri için hala duyuyorum.

  1. IDE yerel dosyalarını düzenleyin

  2. IDE dahili FTP fonksiyonu ile kalkınma sunucuya yüklemek

  3. Geliştirme sunucuda Testi

  4. Bir özelliği test edilmiş ve (yani "bitmiş" oluyor) geliştirme sunucusu üzerinde çalışır sonra, bir Subversion (veya başka) bir depoya bütün paketi kontrol

  5. Canlı sunucuda, bir komut dosyası oluşturma deposundan son revizyon kontrol var revizyon numarasına sahip bir dizine indirmek ve bittiğinde, son birine önceki revizyon işaret sembolik bağlantıyı değiştirmek.

Bu şekilde, canlı çevreye yaptığınız her değişiklik versiyon kontrol sistemi açmış ve önceki revizyon geri dönmeyi bir soru saniye olduğunu edilir. Bana göre, bu her yerde saf FTP ile çalışmaya göre büyük bir rahatlama oldu.

Muhtemelen de ilginç bir soru: Setting up a deployment / build / CI cycle for PHP projects

Sen phpinfo() ile tüm üretim sunucunun kurulumu kontrol ve geliştirme ortamında onları aynı sağlayıcı olması için gerek bunları kopyalayabilirsiniz.

Ben genellikle. Htaccess ile tüm depo bilgi gizleme, üretim ortamında kaynak kontrolü ve çıkış için kod tamamlama, örneğin, bkz here.

Başka bir (az önerilen) seçeneği, sadece gelişim makinesinde ana kaynağı olduğunu, ve hazır FTP o kadar bir zamanlar, sadece değişen dosyaları upload edecek çeşitli ücretsiz araçlar vardır.

As for the server side, you have multiple possibilities. You could use vHosts when you have Apache, with two different DocumentRoots: one for the live version, and one for development. Or you can have the development environment on your local machine, and then the live (+ staging) on your dedicated server / webspace whatsoever.

Mevcut projede üç katmanlı bir sistem var:

geliştirme, evreleme ve yaşamak. Evreleme dev dan yayıyoruz zaman ben herhangi bir sorunları ortadan böylece Sahneleme ve yaşamak, gerçekten hemen hemen aynıdır. Bana yaşamak için yayıyoruz ve sonunda bir şeyler yanlış gitti olduğunu fark etmeden önce başka bir güvenlik katmanı sağlar.

Yayıyoruz için iş akışı göz önüne alındığında, size otomatik olarak URL'ler, tanımlanmış ortam değişkenleri ya da başka bir şey dayalı ortamı seçmek çeşitli uygulama ortamlarında (geliştirme ve üretim) tanımlayabilirsiniz bir uygulama config oluşturmanız gerekir. Yani, örneğin, Zend Framework, bu yapılandırma odaklı davranış uygulamalar içine inşa edilmiştir. Lütfen config.ini dosyasında, bu gibi bir şablon var:

[production]

[staging : production]

[testing : production]

[development : production]

Orada sizin için farklı seçenekler tanımlayabilirsiniz, veritabanı bağlantısı, yani Diyelim

Eğer dev makine üzerinde yaptığınız değişiklikleri sahiplenme içine kontrol ve canlı sistem üzerine dağıtılmasını yaptığınızda Yani, yapılandırmasını değiştirmek zorunda değilsiniz. Bu sadece çalışması gerekir.

Bildiğim kadarıyla iş akışı gider gibi, o küçük siteler için ne tipik bulunuyor. Projenin büyüklüğüne bağlı olsa da, Git veya Subversion gibi versiyon kontrolü kullanmak iyi bir fikir olabilir.

You don't need to go anywhere near as far as asking a hosting company to setup two identical hosting environments for you. The majority of the time they have up to date versions of php, mysql and apache. I develop on a Linux machine, that has a lamp stack setup already, so my workflow is pretty seamless, and I use a svn with post-commit hooks to upload to the live server. If you are worried about incompatibilities between you're 'dev' server and the hosting server, the easiest thing to do is make a phpinfo file,

<?php phpinfo(); ?>

ve sunucu barındırma size dev sunucuda kullanabilirsiniz (ve bu oldukça nadir herhangi bir özel fonksiyonlar yasaklamak olmadığını kontrol etmenizi hosting şirketi bloklar hayati şeyler, ve onlar kolayca desteklemek zaman bir e-posta ve 99% gönderebilirsiniz yoksa onlar Eğer gerektirir. Ama bildiğim kadarıyla dev ortamı kurma gibi, ben (Virtualbox kapma parça aşağı gidin ve ubuntu yükleme, ubuntu bir web sunucusu yapmak için bir öğretici bulur ciddi sadece birkaç apt-ayrıntılar ne olursa olsun sağlamada size yardımcı olacaktır komutları olsun) ve gaz ile sigara olacak!