Skip to content

Instantly share code, notes, and snippets.

@airways
Created November 1, 2011 00:44
Show Gist options
  • Star 35 You must be signed in to star a gist
  • Fork 10 You must be signed in to fork a gist
  • Save airways/1329538 to your computer and use it in GitHub Desktop.
Save airways/1329538 to your computer and use it in GitHub Desktop.
Simple, single ExpressionEngine configuration file to override almost all paths and server settings. As used by @airways and @litzinger.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
// Simple, single configuration file to override almost all paths and server settings. As used by @airways
// and @litzinger.
// Only check in the default as dist.config.php, set your version control system to ignore config.php so that
// local users and each instance (staging, production) can have their own settings.
// These config files are mainly meant to be used on a shared development server used by all developers,
// although it works almost as well for local development as well.
// After setting this up, if you are on a shared dev server, set all of your upload preferences to use uploads
// based in the staging site as configured here to ensure everyone has access to the same uploaded files in
// development.
// Path and URL variables. Replace uppercased values accordingly
$config['dev_domain'] = 'server.domain.net';
$config['site_url'] = 'http://server.domain.net/~USER/PROJECT/';
$config['site_path'] = '/home/USER/public_html/PROJECT/';
$config['staging_url'] = 'http://PROJECT.domain.net/';
$config['staging_path'] = '/vweb/PROJECT.domain.net/docs/';
// Debugging and performance
$config['is_system_on'] = 'y';
$config['show_profiler'] = (isset($_GET['D']) AND $_GET['D'] == 'cp') ? 'n' : 'y'; # y/n, only shows for Super Admins when logged in
$config['template_debugging'] = 'y'; # y/n
$config['debug'] = '2'; # 0: no PHP/SQL errors shown. 1: Errors shown to Super Admins. 2: Errors shown to everyone.
$config['email_debug'] = 'n'; # y/n
$config['save_tmpl_files'] = 'y'; # Save templates to file system? Set to 'n' and Syncronize templates on the production site.
$config['template_debugging_globals'] = 'n';
// Caching options
$config['disable_all_tracking'] = 'y'; # y/n
$config['enable_sql_caching'] = 'y'; # Cache Dynamic Channel Queries?
$config['disable_tag_caching'] = 'n'; # If cache="yes" and refresh="XX" is set on tags only. See $default_global_vars global:cache_tag in config_common.php
$config['new_posts_clear_caches'] = 'y';
// Include the real config options
require 'config_common.php';
<?php
$config['app_version'] = '231';
$config['install_lock'] = "y";
$config['license_number'] = 'xx';
$config['doc_url'] = 'http://expressionengine.com/user_guide/';
$config['cp_url'] = $config['site_url'] . "admin.php";
$config['site_label'] = 'EE2 Core';
$config['cookie_prefix'] = '';
$config['autosave_interval_seconds'] = "300"; # Disabling entry autosave
$config['allow_extensions'] = "y";
$config['multiple_sites_enabled'] = "n";
$config['hidden_template_indicator'] = '_';
$config['daylight_savings'] = date('I') ? 'y' : 'n';
$config['server_timezone'] = 'UTC';
$config['daylight_savings'] = 'n';
$config['honor_entry_dst'] = 'y';
// Disable robot easter egg - obscure colorful config value name:
$config[str_rot13('xvyy_nyy_uhznaf')] = 'disable';
// Set a prefix to use in all URL Helper variables
$config['url_helper']['prefix'] = 'url:';
// Sets the profile trigger word, e.g. site.com/members to a random string. Don't ever
// use /members, as spammers know this, and will attempt to member spam your site.
// If you need to have a members section, choose a different name.
$config['profile_trigger'] = md5(mt_rand());
// This is pretty important. EE2 caches tags pretty hard. EE 1.6 didn't have this problem.
$config['disable_tag_caching'] = 'y';
// Template Prefs
$config['tmpl_file_basepath'] = $config['site_path'] . 'templates/';
$config['snippet_file_basepath'] = $config['site_path'] . 'snippets/';
// System Prefs
$config['member_theme'] = 'default';
$config['cp_theme'] = 'default';
$config['theme_folder_path'] = $config['site_path'] . 'themes/';
$config['theme_folder_url'] = $config['site_url'] .'themes/';
$config['captcha_path'] = $config['site_path'] . 'images/captchas/';
$config['captcha_url'] = $config['site_url'] . 'images/captchas/';
// Member Prefs
$config['emoticon_path'] = $config['site_url'] . 'images/smileys/';
$config['avatar_path'] = $config['staging_path'] . 'images/avatars/';
$config['avatar_url'] = $config['staging_url'] . 'images/avatars/';
$config['photo_path'] = $config['staging_path'] . 'images/member_photos/';
$config['photo_url'] = $config['staging_url'] . 'images/member_photos/';
$config['sig_img_path'] = $config['staging_path'] . 'images/signature_attachments/';
$config['sig_img_url'] = $config['staging_url'] . 'images/signature_attachments/';
$config['prv_msg_upload_path'] = $config['staging_path'] . 'images/pm_attachments/';
$config['prv_msg_upload_url'] = $config['staging_url'] . 'images/pm_attachments/';
$config['board_upload_path'] = $config['staging_path'] . 'images/forum_attachments/';
$config['board_upload_url'] = $config['staging_url'] . 'images/forum_attachments/';
// Tracking preferences
$config['enable_online_user_tracking'] = 'n';
$config['dynamic_tracking_disabling'] = '500';
$config['enable_hit_tracking'] = 'n';
$config['enable_entry_view_tracking'] = 'n';
$config['log_referrers'] = 'n';
// Login/additional preferences. Use for debugging or if you are having issues logging in.
// $config['cookie_domain'] = ".example.com";
// $config['admin_session_type'] = "c";
// $config['user_session_type'] = "c";
// $config['require_ip_for_login'] = "n";
// $config['require_ip_for_posting'] = "n";
// $config['secure_forms'] = "n";
// Using REQUEST_URI to avoid funky server configs that may not use PATH_INFO, thus requiring .htaccess changes
// REQUEST_URI should be available on any server, so this should be immune to EE .htaccess re-write issues.
$request_uri = $_SERVER['REQUEST_URI'];
// When using GET and POST you MUST set a NULL/blank value or it will print in the template as {post:foobar}
// Since these are added to assign_to_config, they are put through the global xss filter, so you can be confident they are clean.
$default_global_vars = array(
// Tag parameters
'global:disabled_params' => 'trackbacks|pagination',
'global:disabled_params_strict' => 'trackbacks|pagination|member_data|category_fields',
'global:disabled_params_all' => 'trackbacks|pagination|member_data|category_fields|categories|custom_fields',
// Date and time
'global:date_time' => '%g:%i %a',
'global:date_short' => '%F %d, %Y',
'global:date_full' => '%F %d %Y, %g:%i %a',
// Add this to your exp:channel:entries and other tags, e.g. {exp:channel:entries entry_id="123" {global:cache_tag}}
'global:cache_tag' => 'cache="yes" refresh="240"', // refresh in minutes
// Common GET vars
'get:category' => preg_match("~category=(.*)$~", $request_uri, $matches) ? $matches[1] : NULL,
'get:year' => preg_match("~year=(.*)$~", $request_uri, $matches) ? $matches[1] : NULL,
'get:month' => preg_match("~month=(.*)$~", $request_uri, $matches) ? $matches[1] : NULL,
'get:day' => preg_match("~day=(.*)$~", $request_uri, $matches) ? $matches[1] : NULL,
'get:page' => preg_match("~page=(.*)$~", $request_uri, $matches) ? $matches[1] : NULL,
'env:local' => (isset($_SERVER['SERVER_NAME']) AND $_SERVER['SERVER_NAME'] == $config['dev_domain']) ? TRUE : FALSE,
// To link all uploaded images/assets from the staging site
'asset_url' => $config['staging_url'],
// Link to external CDNs or other external resources with something like "{http}://use.typekit.com/something.js"
'http' => (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https' : 'http'
);
// Make this global, then add our default_global_vars to the config variables here
global $assign_to_config;
if(!isset($assign_to_config['global_vars'])) $assign_to_config['global_vars'] = array();
$assign_to_config['global_vars'] = array_merge($assign_to_config['global_vars'], $default_global_vars);
/* --------------------------------------------------------------------------
Normal ExpressionEngine config follows.
-------------------------------------------------------------------------- */
/*
|--------------------------------------------------------------------------
| Base Site URL
|--------------------------------------------------------------------------
|
| URL to your CodeIgniter root. Typically this will be your base URL,
| WITH a trailing slash:
|
| http://example.com/
|
*/
$config['base_url'] = $config['site_url'];
/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
|
| Typically this will be your index.php file, unless you've renamed it to
| something else. If you are using mod_rewrite to remove the page set this
| variable so that it is blank.
|
*/
$config['index_page'] = "";
$config['site_index'] = "";
/*
|--------------------------------------------------------------------------
| URI PROTOCOL
|--------------------------------------------------------------------------
|
| This item determines which server global should be used to retrieve the
| URI string. The default setting of "AUTO" works for most servers.
| If your links do not seem to work, try one of the other delicious flavors:
|
| 'AUTO' Default - auto detects
| 'PATH_INFO' Uses the PATH_INFO
| 'QUERY_STRING' Uses the QUERY_STRING
| 'REQUEST_URI' Uses the REQUEST_URI
| 'ORIG_PATH_INFO' Uses the ORIG_PATH_INFO
|
*/
$config['uri_protocol'] = 'PATH_INFO';
/*
|--------------------------------------------------------------------------
| URL suffix
|--------------------------------------------------------------------------
|
| This option allows you to add a suffix to all URLs generated by CodeIgniter.
| For more information please see the user guide:
|
| http://codeigniter.com/user_guide/general/urls.html
*/
$config['url_suffix'] = '';
/*
|--------------------------------------------------------------------------
| Default Language
|--------------------------------------------------------------------------
|
| This determines which set of language files should be used. Make sure
| there is an available translation if you intend to use something other
| than english.
|
*/
$config['language'] = 'english';
/*
|--------------------------------------------------------------------------
| Default Character Set
|--------------------------------------------------------------------------
|
| This determines which character set is used by default in various methods
| that require a character set to be provided.
|
*/
$config['charset'] = 'UTF-8';
/*
|--------------------------------------------------------------------------
| Enable/Disable System Hooks
|--------------------------------------------------------------------------
|
| If you would like to use the "hooks" feature you must enable it by
| setting this variable to TRUE (boolean). See the user guide for details.
|
*/
$config['enable_hooks'] = FALSE;
/*
|--------------------------------------------------------------------------
| Class Extension Prefix
|--------------------------------------------------------------------------
|
| This item allows you to set the filename/classname prefix when extending
| native libraries. For more information please see the user guide:
|
| http://codeigniter.com/user_guide/general/core_classes.html
| http://codeigniter.com/user_guide/general/creating_libraries.html
|
*/
$config['subclass_prefix'] = 'EE_';
/*
|--------------------------------------------------------------------------
| Allowed URL Characters
|--------------------------------------------------------------------------
|
| This lets you specify which characters are permitted within your URLs.
| When someone tries to submit a URL with disallowed characters they will
| get a warning message.
|
| As a security measure you are STRONGLY encouraged to restrict URLs to
| as few characters as possible. By default only these are allowed: a-z 0-9~%.:_-
|
| Leave blank to allow all characters -- but only if you are insane.
|
| DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!!
|
*/
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\\-';
/*
|--------------------------------------------------------------------------
| Enable Query Strings
|--------------------------------------------------------------------------
|
| By default CodeIgniter uses search-engine friendly segment based URLs:
| example.com/who/what/where/
|
| You can optionally enable standard query string based URLs:
| example.com?who=me&what=something&where=here
|
| Options are: TRUE or FALSE (boolean)
|
| The two other items let you set the query string "words" that will
| invoke your controllers and its functions:
| example.com/index.php?c=controller&m=function
|
| Please note that some of the helpers won't work as expected when
| this feature is enabled, since CodeIgniter is designed primarily to
| use segment based URLs.
|
*/
$config['enable_query_strings'] = FALSE;
$config['directory_trigger'] = 'D';
$config['controller_trigger'] = 'C';
$config['function_trigger'] = 'M';
/*
|--------------------------------------------------------------------------
| Error Logging Threshold
|--------------------------------------------------------------------------
|
| If you have enabled error logging, you can set an error threshold to
| determine what gets logged. Threshold options are:
|
| 0 = Disables logging, Error logging TURNED OFF
| 1 = Error Messages (including PHP errors)
| 2 = Debug Messages
| 3 = Informational Messages
| 4 = All Messages
|
| For a live site you'll usually only enable Errors (1) to be logged otherwise
| your log files will fill up very fast.
|
*/
$config['log_threshold'] = 0;
/*
|--------------------------------------------------------------------------
| Error Logging Directory Path
|--------------------------------------------------------------------------
|
| Leave this BLANK unless you would like to set something other than the default
| system/logs/ folder. Use a full server path with trailing slash.
|
*/
$config['log_path'] = '';
/*
|--------------------------------------------------------------------------
| Date Format for Logs
|--------------------------------------------------------------------------
|
| Each item that is logged has an associated date. You can use PHP date
| codes to set your own date formatting
|
*/
$config['log_date_format'] = 'Y-m-d H:i:s';
/*
|--------------------------------------------------------------------------
| Cache Directory Path
|--------------------------------------------------------------------------
|
| Leave this BLANK unless you would like to set something other than the default
| system/cache/ folder. Use a full server path with trailing slash.
|
*/
$config['cache_path'] = '';
/*
|--------------------------------------------------------------------------
| Encryption Key
|--------------------------------------------------------------------------
|
| If you use the Encryption class or the Sessions class with encryption
| enabled you MUST set an encryption key. See the user guide for info.
|
*/
$config['encryption_key'] = 'q7tup=aDrE5es!u@umAwa8-zu6H-&9#E';
/*
|--------------------------------------------------------------------------
| Global XSS Filtering
|--------------------------------------------------------------------------
|
| Determines whether the XSS filter is always active when GET, POST or
| COOKIE data is encountered
|
*/
$config['global_xss_filtering'] = FALSE;
/*
|--------------------------------------------------------------------------
| CSRF Protection
|--------------------------------------------------------------------------
|
| Determines whether Cross Site Request Forgery protection is enabled.
| For more info visit the security library page of the user guide
|
*/
$config['csrf_protection'] = FALSE;
/*
|--------------------------------------------------------------------------
| Output Compression
|--------------------------------------------------------------------------
|
| Enables Gzip output compression for faster page loads. When enabled,
| the output class will test whether your server supports Gzip.
| Even if it does, however, not all browsers support compression
| so enable only if you are reasonably sure your visitors can handle it.
|
| VERY IMPORTANT: If you are getting a blank page when compression is enabled it
| means you are prematurely outputting something to your browser. It could
| even be a line of whitespace at the end of one of your scripts. For
| compression to work, nothing can be sent before the output buffer is called
| by the output class. Do not "echo" any values with compression enabled.
|
*/
$config['compress_output'] = FALSE;
/*
|--------------------------------------------------------------------------
| Master Time Reference
|--------------------------------------------------------------------------
|
| Options are "local" or "gmt". This pref tells the system whether to use
| your server's local time as the master "now" reference, or convert it to
| GMT. See the "date helper" page of the user guide for information
| regarding date handling.
|
*/
$config['time_reference'] = 'local';
/*
|--------------------------------------------------------------------------
| Rewrite PHP Short Tags
|--------------------------------------------------------------------------
|
| If your PHP installation does not have short tag support enabled CI
| can rewrite the tags on-the-fly, enabling you to utilize that syntax
| in your view files. Options are TRUE or FALSE (boolean)
|
*/
$config['rewrite_short_tags'] = TRUE;
/*
|--------------------------------------------------------------------------
| Reverse Proxy IPs
|--------------------------------------------------------------------------
|
| If your server is behind a reverse proxy, you must whitelist the proxy IP
| addresses from which CodeIgniter should trust the HTTP_X_FORWARDED_FOR
| header in order to properly identify the visitor's IP address.
| Comma-delimited, e.g. '10.0.1.200,10.0.1.201'
|
*/
$config['proxy_ips'] = "";
@dikaio
Copy link

dikaio commented Feb 11, 2013

Awesome, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment