Our preferred method of deploying Drupal 7 is through Linux, Apache, mod_php and PostgreSQL (sometimes sqlite!). This functions as our base system; there are loads of other fancy add-ons that will not be mentioned here, for the sake of focus.
Installing Drupal
This process couldn't be easier; because we're installing this direct from source and working out-side the distributions package manager the installation goes into /opt
~ # cd /opt ~ # curl -qs 'http://ftp.drupal.org/files/projects/drupal-7.12.tar.gz' | tar -zx ~ # chown apache:apache ./drupal-7.12/sites/default/files
Configuring Apache
We're not keen on using the .htaccess files, so we configure Drupal settings in the Apache config. Here is an example Directory and VirtualHost configuration.
# # Configure Drupal Directory Settings <Directory /opt/drupal-7.12> AllowOverride None # php_flag set('allow_call_time_pass_reference',false); // perdir # php_flag ('display_errors',true); # php_flag ('display_startup_errors',true); # php_flag set('error_append_string',null); # php_flag ('error_log',dirname(__FILE__).'/var/log/error.log'); # php_flag set('error_prepend_string',null); # php_flag set('error_reporting'); # php_flag ('html_errors', php_sapi_name()=='CLI' ? false : true ); php_flag ignore_repeated_errors true php_flag ignore_repeated_source true # php_flag ('implicit_flush',false); php_value date.timezone America/Los_Angeles RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule .* /index.php </Directory>
Installing Modules
Manualling installing modules requires shell access; also the Drupal method requires that we have FTP access and FTP is teh sux. The list below is just some of our favourites.
~ # cd /opt/drupal-7.12/sites/all/modules ~ # curl http://ftp.drupal.org/files/projects/rules-7.x-2.0.tar.gz | tar -zx ~ # curl http://ftp.drupal.org/files/projects/arthemia-7.x-1.x-dev.tar.gz | tar -zx ~ # curl http://ftp.drupal.org/files/projects/token-7.x-1.0-rc1.tar.gz | tar -zx ~ # curl http://ftp.drupal.org/files/projects/memcache-7.x-1.0.tar.gz | tar -zx ~ # curl http://ftp.drupal.org/files/projects/commerce-7.x-1.2.tar.gz | tar -zx ~ # curl http://ftp.drupal.org/files/projects/ctools-7.x-1.0-rc1.tar.gz | tar -zx ~ # curl http://ftp.drupal.org/files/projects/relation-7.x-1.0-beta3.tar.gz | tar -zx ~ # curl http://ftp.drupal.org/files/projects/token-7.x-1.0-rc1.tar.gz |tar -zx ~ # curl http://ftp.drupal.org/files/projects/views-7.x-3.1.tar.gz | tar -zx ~ # curl http://ftp.drupal.org/files/projects/entityreference-7.x-1.0-beta4.tar.gz | tar -zxv ~ # curl http://ftp.drupal.org/files/projects/video-7.x-2.4.tar.gz | tar -zx ~ # curl http://ftp.drupal.org/files/projects/jquery_update-7.x-2.2.tar.gz | tar -zxv ~ # curl http://ftp.drupal.org/files/projects/video-7.x-2.4.tar.gz | tar -zx ~ # curl http://ftp.drupal.org/files/projects/jquery_update-7.x-2.2.tar.gz | tar -zxv
Installing Themes
~ # cd /opt/drupal-7.12/sites/all/themes ~ # curl http://ftp.drupal.org/files/projects/adaptivetheme-7.x-2.2.tar.gz | tar -zx