Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
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

This comment has been minimized.

Copy link

@dikaio 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
You can’t perform that action at this time.