How to correctly deploy applications from development to production and how to deal with multiple site configurations. All my development are done thru svn located at var/svn/myapp/trunk and the actual production code is in /var/www/myapp.
I check out the latest code to my local machine into a directory called "myapp_latest_svn". I have site and location specific code in my main settings.php, which has H_PATH = 'http://myapp.com' & db config settings for db_host, db_user_name and db_password which is as you know different in local machine settings ( where localhost/myapp.com is just an Apache alias) & on the production ( live site runs on myapp.com) server.
Ayrıca. Htaccess dosyası üretim sunucusunda farklıdır. Kısacası, dev ve üretim arasındaki farkların vardır.
I keep all my work in SVN. Every morning i use SVN Update which updates the latest code to my local svn repository. When I am ready to go live, I build a release with svn Commit.
Then in the release I have to remember to change all the appropriate dev files to their production counterpart. Now I had to manually edit the production settings.php & .htaccess to reflect the site specific changes.
I am looking for an automated way to go from dev to production complete with versioning and no manually editing of files which is error prone and bad practice.
One way is making the production version of files read only (0444). That way when I do a svn export, they are not overwritten by the dev version of the files and I don't have to worry about editing files on each move from dev to production. But that's bad way of doing things like continuous integration.
Also by making multiple copies of the settings.php (one for localhost, beta, and prod). Then using a shell script that exports from svn, and then once the export is done, it replaces the settings.php with the correct settings.php, depending on the location that we are deploying to. That way everything is automated. But this is also a lame way to go.
Son yoludur
if( eregi ("myapp.com$", $_SERVER['HTTP_HOST']) ){
define('H_PATH', 'myapp.com');
} else {
define('H_PATH', 'localmyapp.com');
}
This is fine as far as settings.php is concerned. But what abt the .htaccess, u cannot check like the above in .htaccess.
Ben istemiyorum Ne ayarlarını değiştirmek zorunda Ben sitemde dağıtmak her zaman yapıyor sonunda.
Benim DB şema yani db, benimle sadece settings.php ve. Htaccess bir sorun değildir sürüm kontrolü değil.
Also how can i tell svn not to update some directories since that is also site specific (/log, /cache, /assets, /downloads). Also i need to preserve the apache ( www_data) write access intact for the above files as well.
Son olarak i verdiğinizde üretim sunucusuna boş gövde dizini ve. Svn dosyaları kopyalamak istemiyorum.
Nasıl üretim sunucularına SVN oluştururken bu konularda herhangi bir neden olmadan entegre Phing hatta bir kabuk komut dosyası kullanabilirsiniz.
Bu orada vahşi birçok wannabe uygulama geliştiriciler için yararlı olabilir.
Teşekkür peşin,
ocptime