How to Deploy a Drupal Site on a Web Farm? - deployment

I would like to know how I should deploy a Drupal site when I'm using three servers?
Is it possible to deploy it with a Drupal module or something? If it is, how does that work?
Thanks.
update: I would like to know about the deployment of files and the configuration of the servers.

you should consider using drush.
among other useful things (automatic download and update of the modules)
it has a rsync wrapper that lets you synchronize files between hosts (./drush sync)
it's also used by the project aegir which is "a set of modules for Drupal that helps you maintain several Drupal sites."

Related

Deploy a project in local machine in server

I'm using Fedora and I deploy Symfony projects in my local machine using virtual hosts. How can I deploy my projects in server to public which others can view it through their machines?
Thanx...
You have several way to deploy you symfony project. I will avoid ftp, svn up on prod, etc .. So, here is 2 good ways.
The built-in deploy task
Symfony comes with a built-in depoy task that has been used when symfony 1.4 was released. I think it's less and less used now (because there is better tool).
The simplest way to deploy your website is to use the built-in project:deploy task. It uses SSH and rsync to connect and transfer the files from one computer to another one.
Using capifony, which use Capistrano
Capistrano is an open source tool for running scripts on multiple servers. It’s primary use is for easily deploying applications.
capifony is a deployment recipes collection that works with both symfony and Symfony2 applications.
This way is far better than the previous one because you can automate many script when deploying (like testing your code, start a fresh built lib, upgrade database, share config file). But the most important one (from my POV) is that you can easily rollback a bad deployement. It's damm easy.

Orchard cms multiple deployment environments

I've recently started to develop some sites using orchard, which is great so far, however I'm a bit confused about how to set up my deployment environments properly.
Normally I would set up local dev site, test, staging and live. using web.config transforms to alter connection strings and other app settings
I've recently been using AppHarbor for hosting and I think they are brillant.
There's a guid to setting up Orchard on AppHarbor here
Although I have to agree with comment here about all the post I've read expecting me to want to use and love Web Matrix!
Although most development in Orchard, will be done by creating modules. I think for at least one site they will want at least staging and live environments.
Whats the best way to set up and migrate from one environment to the next?
I've looked at the multi tenancy project, but that seem to address a different issue
I'd be interested to know what other have done. As well as any recommendations for modular Orchard development and in house source control - for those modules only.
I use the import-export module for exporting and importing content in my DTAP environments. Make sure to implement/override Importing and Exporting in your drivers (see: Custom part properties missing in export Orchard 1.6 /plug ;) )
Widgets however should be done manually AFAIK. They don't export and import well with that module.
As for modules and themes: just copy the folder. Same goes for media.

Using PEAR to deploy a PHP web app?

Is it possible to package a PHP web app into PEAR format for automatic deployment? Like this:
pear install myPackage
and, to upgrade:
pear upgrade myPackage
But because I have a web app, I also need this to activate my web app on Apache config files.
From what I'm aware of, PEAR mostly contains libraries - but I've heard that it can be used to deploy complete web applications too. There's no information I could find regarding the subject. So I want to know is it possible that PEAR can also interact with web servers like Apache to manage creation of virtual hosts depending on my application?
Anyone already doing this?
Will appreciate your answers. Thanks
The PEAR installer is not directly able to modify your Apache vhost files, but you can write your own plugin that does that and gets automatically called when installing/upgrading.
Files in a PEAR package have a "role", for example php, test, doc and www. www is the one you want to use for public HTML, javascript and CSS files.
Apart from that, you can use your own roles and do things when files with that role get installed. Alternatively, you can also use post-install scripts in packages to restart your webserver or so.
Examples of a web applications deployed with PEAR are:
The PEAR website itself, http://pear.php.net/package/pearweb/
SemanticScuttle, a bookmark manager: http://semanticscuttle.sourceforge.net/pirum.html

Best way for deploying websites?

How do you deploy your websites?
For example: I am developing a site with a php framework and have it under version controle with git with all my local configs. When I want to put it on a web server for testing or updating the live application i have to copy it onto the server, change the config files, delete my test stuff etc.
So how do you handle these tasks?
I thought about using ant and write a deployment script for this.
Does there already exists a common solution for this "problem"? Because I don't think im the only one who need something like this.
There are quite a bunch of stuff available, but you might like Phing (like ANT for java).
Questions related to PHP+Phing:
Do you use Phing?
How do you manage your build [using Phing] process?
Setting up a deployment / build / CI cycle for PHP projects
what can Phing do that Ant can't?
Also read this questions sounds very interesting How To Deploy Your PHP Applications Correctly?
There is a specific question (a possible duplicate of your questions) has been answered a while ago, take a look at it Deploy a project using Git push
It seems you are using php, you should be good to go with capistrano. It is very easy to use capistrano for deployment with rails but it can also be tricked a bit to use for php.
Basically what you do with capistrano is -
Tell it which is you application server
Tell you database server
Tell web server (in most cases web server, app server and db server are same)
Specify you git repository with branch you want to deploy from
Once configured, you can deploy with capistrano with single command. You can even rollback your deployments from some of backup releases created by capistrano.
Now form some the repetitive tasks like, copying configs files like database configs (which generally are ignored in git), you create some tasks, which just creates symlinks or copies the files at appropriate location. These tasks will be called with deploy_hookes e.g. after_symlink hook.
You can find more about capistrano here - https://github.com/capistrano/capistrano/wiki
It comes with very good documentation, after getting overview, you may search for your framework specific approach to do this.

Is it possible to deploy an already built Drupal site?

I'm a Drupal newbie. Is it possible to set up everything and deploy Drupal on the server? I mean things like putting in the content, setting up the modules, etc..., then you put it all up to the production server?
Of course.
copy all the files
edit the database credentials (sites/default/settings.php)
export the database content via mysqldump or phpMyAdmin (supposing you use MySQL)
import the database content at the target server
I've done it several times.