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