Charm: precise/drupal6
Revision: 2
Hook: db-relation-changed
#!/bin/bash
set -eu
hostname=`unit-get public-address`
drupal_install_path="/var/www/drupal"
config_file_path="$drupal_install_path/sites/default/settings.php"
database=`relation-get database`
user=`relation-get user`
password=`relation-get password`
host=`relation-get private-address`
if [ -z "$database" ] ; then
exit 0
fi
# not used just yet, future enhancement
secret_key=`pwgen 10 1`
source "/usr/share/charm-helper/sh/net.sh"
juju-log "Writing Drupal config file $config_file_path"
# Write the Drupal config
cat > $config_file_path <<EOF
<?php
\$obstart = function ()
{
if (extension_loaded('gzip')) {
if (!ob_start('ob_gzhandler')) {
ob_start();
}
} else {
ob_start();
}
};
if (!defined('DRUPAL_ROOT')) {
define('DRUPAL_ROOT', getcwd());
}
global \$conf, \$db_url, \$drupal_db, \$cookie_domain, \$update_free_access, \$db_prefix;
error_reporting(E_ALL ^ (E_NOTICE | E_WARNING));
\$update_free_access = false;
\$cookie_domain = \$_SERVER['HTTP_HOST'];
\$conf['pressflow_smart_start'] = true;
ini_set('zend.enable_gc', 0);
ini_set('display_errors', 0);
ini_set('timezone.default', 'UTC');
ini_set('date.timezone', 'UTC');
ini_set('realpath_cache_size', '64m');
ini_set('realpath_cache_ttl', '1800');
ini_set('arg_separator.output', '&');
ini_set('magic_quotes_runtime', 0);
ini_set('magic_quotes_sybase', 0);
ini_set('session.cache_expire', 200000);
ini_set('session.cache_limiter', 'none');
ini_set('session.cookie_lifetime', 2000000);
ini_set('session.gc_maxlifetime', 200000);
ini_set('session.save_handler', 'user');
ini_set('session.use_cookies', 1);
ini_set('session.use_only_cookies', 1);
ini_set('session.use_trans_sid', 0);
ini_set('url_rewriter.tags', '');
//\$conf['cache_inc'] = 'sites/all/modules/contrib/cache_backport/cache.inc';
//\$conf['cache_backends'] = array('sites/all/modules/contrib/apc/drupal_apc_cache.inc');
//\$conf['cache_default_class'] = 'DrupalAPCCache';
//\$conf['page_cache_without_database'] = TRUE;
//\$conf['page_cache_invoke_hooks'] = FALSE;
\$drupal_db = array(
'type' => 'mysql',
'server' => '$host',
'name' => '$database',
'user' => '$user',
'pass' => '$password',
'prefix' => 'pf_',
);
\$db_url = \$drupal_db['type'] . '://' . \$drupal_db['user'] . ':' . \$drupal_db['pass'] . '@' . \$drupal_db['server'] . '/' . \$drupal_db['name'];
\$db_prefix = \$drupal_db['prefix'];
//include_once(DRUPAL_ROOT . '/sites/default/bootstrap.inc.php');
EOF
chmod 0644 $config_file_path
juju-log "Enabling Nginx on $hostname"
chown -R www-data.www-data $drupal_install_path
# Restart nginx
juju-log "Restarting web service"
service php5-fpm restart
service nginx restart
open-port 80/tcp
open-port 8080/tcp
pub=`unit-get public-address`
juju-log "Drupal site is now available on $pub"