- Download the latest version of Concrete5 from SourceForge (note c5 is package of files that need to be uncompressed and placed on your webserver. It is not a single file or app that will be run on your local computer.)
- Make sure your config/ directory is writable by a web server. (Note, this is the config/ directory in the root of the archive).
- Make sure files/ and its subdirectories are writable by the Apache process (or the world.)
- Make sure mod_rewrite is setup and functioning. If you try and install Concrete5 and receive a 404 error, and the URL is "/install/-/configure," mod _ rewrite is probably not enabled.
- Create a new MySQL database and a MySQL user account with the following privileges on that database: INSERT, SELECT, UPDATE, INDEX, DELETE, CREATE, DROP, ALTER
- Visit the folder in which you placed the Concrete5 site on your site, in any web browser. You should see a gray installation screen where you can specify your site's name, your base URL, and your database settings. This screen should also take you through installation and determine whether all your settings are correct.
- Concrete 5 should be installed.
Alternatively, there are several script installation companies/services that offer single click installation of concrete5 including Softaculous and SimpleScripts If the above instructions sound intimidating to you, ask your webhost for help! You can also always just host with concrete5 hosting
When installing concrete5, the file config/site.php is created. This contains certain settings that have to be set for the program to run. Additional constants can be defined in this file. Here are some of those options.
Enable Advanced Permissions
Concrete5's permissions out of the box allow basic website access control, but if you need more options, you should try out our advanced permissions. Advanced permissions allow any combination of users and groups to be assigned to the following:
- Page-specific Access
- Adding, editing, reading versions and deleting pages
- Being able to add only specific page types to specific sections of sites
- Area-specific control
- Block-specific control
To enable advanced permissions, add the following line to "config/site.php":
<?php define('PERMISSIONS_MODEL', 'advanced'); ?>
Specify Valid Files for Uploading
This is now done through the Dashboard UI. Goto Dashboard > File Manager > Settings
Disable Automatic URL Redirection
By default, Concrete5 will forward any requests to your site to the specific BASE_URL you define when installing. This is for cookie/session authentication purposes. If you'd like to disable this to ensure that your site is served at multiple URLs, add this line to your site/config.php:
<?php define('REDIRECT_TO_BASE_URL', false); ?>
Enabling Vanity URLs / Pretty URLs
If you care about Search Engine Optimization (SEO) you should consider turning on Pretty URLs. This turns a geeky looking web address like:
http://www.concrete5.org/index.php?cID=32271
into something like:
http://www.concrete5.org/areaname/pagename
To enable Pretty URLs, login to your concrete5 instance as the Admin user, and goto Dashboard > Sitewide Settings. There's an option on the right of that page which you can turn on. You may also have to create a .htaccess file on your sever for this to work right, the Dashboard will provide the details for that file.
Specify your site's language
Once you've followed the instructions on how to download and install a concrete5 language pack, you'll have to modify config/site.php to use this language. If "de_DE" (German) is your new language, add the following to config/site.php:
<?php define('LOCALE', 'de_DE'); ?>
Change where the Help link points
<?php define('MENU_HELP_URL', 'new url');?>
Cache Engine (5.2.0 and above)
By default concrete5 (v5.2+) uses a custom PHP cache to improve performance. This can be swapped out with different implementations of the cache. Currently, only an eAccelerator-based version of the cache is available, and it's support is experimental, but you can try it by defining:
<?php define('CACHE_LIBRARY', 'eaccelerator'); ?>