Toggle navigation

Concrete5 Image Guide


Websoft9 Concrete5 is a pre-configured, ready to run image for running Concrete5 on Alibaba Cloud.

Concrete5 is a content management system written in the PHP programming language. Concrete5 began as Concrete CMS in 2003, and was the glue behind many web applications, websites, stores and forums between 2003 and 2008. In 2008 Concrete’s 5th major version release was rebranded concrete5(tm) and launched fully Open Source under the MIT license. Between 2008 and 2014, concrete5 released 7 versions, further refining the interface and adding many additional features, including localization support and support for a full commercial and non-commercial marketplace. In 2014, concrete5 version 7 completely overhauled both the interface and the underlying framework for modern PHP.


Software Version: concrete5-
Software directory: /data/wwwroot/default/concrete

Basic software environment: LAMP
PHP Configuration File: /usr/local/php/etc/php.ini
Virtual host Configuration File directory: /usr/local/apache/conf/vhost
Virtual host Configuration Command: /root/oneinstack/

Database install directory: /usr/local/mysql
Database data directory: /data/mysql
Database Configuration File: /etc/my.cnf

After the installation of Image,please verify it

  • Login on Alibaba Cloud console,get you Internet IP Address
  • Open you Chrome or Firefox on your local PC,visit the http://Internet IP Address/
  • If verify successfully,you can enter the boot page of Websoft9 below
  • If no response from browser,please check the Security Group settings to ensure that port 80 is been allowed

This Image use MySQL for database

#default user/password:root/123456

MySQL User Guide: Click here

Step1. Create a database

1.login in MySQL:

Method 1:Use following URL to open phpMyAdmin page: http://< Internet IP Address >/phpMyAdmin

Method 2:Use SSH command to login in.

mysql -uroot –p                                #enter mysql console

 #default user/password:root/123456            More MySQL User Guide: Click here


2.create a database:

MySQL [(none)]> create database mydbname;

MySQL [(none)]> show databases;


3.Create a Database User and grants permissions to the User:

MySQL [(none)]> grant all privileges on mydbname.* to username@'localhost' identified by 'userpassword';

MySQL [(none)]> flush privileges;

MySQL [(none)]> exit;


Step2. Add a virtual host

Use SSH Command to Add a virtual host:

[root@iZbp1i4rjdsy216yq7lgucZ ~]# cd /root/oneinstack
[root@iZbp1i4rjdsy216yq7lgucZ oneinstack]# ./

Step3. Install Concrete5

Open your domain name via browser:
1. Please select your preferred language, Click “Choose Language”;

2.  Click “Continue to Installation”;

3. Enter site name,database information and admin account, Click “Install concrete5”;

note:when you choose the “Full Site”,Due to the need for remote download, installation may fail

4. Concrete5 has been installed,  Click “Continue to your site”;

5. This is the Concrete5 page:

Concrete have a lot of themes and add-ons for your extension when using the Concrete5

Connect to the Community

You must connect to the Concrete5 Community first if you want to using any extensions

  1. Dashboard->Page & Themes->Themes
  2. One Click the “Get more Themes”
  3.  Sign in the Community,If you have no account,please register it first
  4. After sign in successfully,you can enter below page
  5. you can get free and paid themes & add-Ons now


Add new Theme

After connect the community, please enter the Themes Marketplace,and you can see a lot of themes

  1. Dashboard->Extend concrete5->Get more Themes
  2. Download one theme you want
  3. After the download is complete,you can receive the message “The package was successfully installed.”
  4. Dashboard->Page & Themes->Themes,list of currently installed have add a new theme now
  5. Theme activated. You may automatically create page templates from template files contained in your theme
  6. After files in the theme were activated successfully,you have complete one new theme

Add new Add-Ons

After connect the community, please enter the Add-Ons Marketplace,and you can see a lot of Add-Ons

  1. Dashboard->Extend concrete5->Get more Add-Ons
  2. Download one Add-Ons you want
  3. After the download is complete,you can receive the message “The package was successfully installed.”
  4. Dashboard->Extend concrete5->Add Functionality,list of currently installed Add-Ons

Keeping Concrete5 up to date is important to make sure that your cms is as safe and as awesome as possible.

You should always perform a database backup prior to upgrading a Concrete5 site.

Once your backup is complete, choose your upgrade method. There are a few ways to upgrade a Concrete5 site.

Remote Update

Remote Update is the easiest method,it is upgrade completely through the Dashboard of Concrete5

If you head to Dashboard > System and Settings > Backup and Restore > Update Concrete5, you can download updates from These will be unzipped into your root updates/ directory, and you will be able to choose when to apply them to your site. Updates to concrete5 may not be available as quickly through this interface as they are from the website

Manual Dashboard Update

Since the method above simply delivers a Concrete5 directory to your updates directory, you can manually perform the first half of these steps, and use the Dashboard to complete the update process.

  1. Download the latest core from
  2. Unzip the file. Remove all contents except the concrete directory.
  3. At this point you should have a folder named something like concrete5.7.x.x, with only a “concrete” directory inside it.
  4. Move the concrete5.7.x.x folder into your updates/ directory.
  5. Head to Dashboard > System and Settings > Update Concrete5. The update should be listed, and you can click through to update to the latest version.

In both cases, an update.php file will be written to your application/config directory specifying the specific version you’re updating to. The directory will continue to exist within the updates/ directory.

Backup is very import for using any CMS

Manual Backup

  1. Download the entire Concrete5 file in you root dictionary by FTP or other tools
  2. Visit http://< Internet IP Address >/phpMyAdmin,login in to the phpMyAdmin Panel
  3. Select you database,then Export
  4. Click “go” button,then download the SQL backup file


Dashboard Database Backup

Concrete has built a built-in backup database feature

  1. Dashboard->System & Setting->Backup & Restore->Backup Database
  2. One click the user “Run Backup”,
  3. Download the backup file

There are five main steps to moving a Concrete5 site:

  1. Get a copy of the database.
  2. Get the Concrete5 root directory (which contains application/, concrete/, updates and more).
  3. Put your files in the new environment.
  4. Create a new, empty database in the new environment and import the exported database from the first step.
  5. Modify your configuration file for the new site.

(Note: This guide assumes that concrete5 is installed at /data/wwroot/default/  on a Linux machine. The technique is still valid wherever your site is installed.)

Read more about moving a Concrete5 Site

The default installation of Concrete5 is setup in the following manner. (The root directory in these examples corresponds to the root of your Concrete5 website. These examples also assume you are running one website, and not sharing the Concrete5 core amongst several sites.)


This is the application directory. It includes all items that are specific to this single website. In general, items in the application/ directory that also appear in the concrete directory override those in the concrete directory.


This is the concrete source directory. When a new version of Concrete5 is downloaded this is the directory that contains most of the core files.


This directory contains sub-directories in the Package format. These are either custom-built packages or (more likely) packages that have been downloaded from the marketplace.


This directory contains additional Concrete5 core directories. These may be downloaded using the built-in Concrete5 updater (found in the Dashboard), or they may have been put in this directory manually. If a file named update.php appears in application/config, its contents will determine which core from the updates/ directory to use to currently power the website.

Source Directories


This directory contains all the Attribute Types found in Concrete5 by default. These are activated in the database before they can be used. This happens during installation or upgrade.


This directory contains all the Authentication Types found in Concrete5 by default. These are installed during installation.


This directory contains all the Block Types found in Concrete5. These are activated in the database before they can be used. This happens during installation or upgrade.


This directory contains PHP procedures that are run during startup of Concrete5. Examples include bootstrap/autoload.php (which, when included sets up all PHP autoloaders), bootstrap/helpers.php (which creates some useful global functions like array_to_object(), h() and t()) and bootstrap/start.php, which starts the actual bootstrapping process.


This directory contains core configuration data. This data is read and saved by the Config library. Files in here contain the default configuration values for the various keys. The contents of each of these files is an associative array.


This directory contains PHP proxy classes generated by the built-in Doctrine ORM library. These are not something most developers need to worry about.


This directory contains the Starting Point Packages used as sample content, available during installation.


This directory contains controllers. In Concrete5, controllers can be run in three ways.

  1. As specified by routes to a specific URL.
  2. Automatically when a single page is rendered.
  3. Automatically when a page of a certain type is rendered.


All controllers in here are automatically loaded when a single page at the same path is loaded.


All controllers in here correspond to the handle of a specific page type. Whenever a page of that type is loaded, a controller will also be loaded and run, if it exists.

Everything Else

All other controllers in the controllers/ directory are used by specific administrative routes. You can see how these routes and controllers interact by looking at the routes section of concrete/config/app.php


This directory contains minified, compiled CSS used by Concrete5.


This directory contains unbuilt source LESS files, compiled by Concrete5 using Grunt during the build process. This happens prior to shipping a working Concrete5, and is not something end users have to understand or care about.


This is the main Concrete5 dispatcher file. It is included by the index.php file in the web root.


The elements directory contains snippets of PHP code reused by Concrete5.


This directory contains images used by Concrete5.


This directory contains PHP classes that correspond to installed Concrete5 Jobs. Each Job is a self-contained PHP class with certain required methods.


This directory contains minified, compiled JavaScript used by Concrete5.


This directory contains unminified source JavaScript files, compiled by Concrete5 using Grunt during the build process.


This directory contains mail templates. These are used by the Mail Service.


This directory contains single pages used by Concrete5. These are activated during installation.


This directory contains all PHP classes used by Concrete5, separated into directories based on function. Important Note: every file and directory up to this point has been named using Concrete5’s lowercase handle format. Once in the src/ directory things change, and directories and classes are camelcased (with the first letter being uppercased).


This directory contains all themes that ship with Concrete5. A theme must be activated on installation in order for it to appear in the installed themes list.


This directory contains tools scripts that are used by certain user interface elements of Concrete5. These are officially deprecated in favor of views and controllers, but have not completely been phased out yet.


This directory contains third party libraries used by Concrete5. These libraries are installed during the build process of Concrete5 using Composer.


This directory contains views used by Concrete5’s MVC layer. These views are specified by controllers in the controllers directory.

Application Directory


This directory contains attributes used just by this Concrete5 installation – or overrides of Concrete5 core attribute files.


This directory contains authentication types used just by this Concrete5 installation – or overrides of Concrete5 core authentication type files.


This directory contains block type code files used just by this Concrete5 installation – or overrides of Concrete5 core block type files.


This file is an optional file that developers can use to register events, rebind PHP classes, and more. This file is automatically loaded during the Concrete5 bootstrap routine.


This file is loaded during the Concrete5 bootstrap routine. It takes care of loading composer items (found in concrete/vendor/) and any custom autoloading necessary for the application.


This file is loaded during the Concrete5 bootstrap routine. This file enables environment detection and custom application environments.


This directory contains controllers used just by this Concrete5 installation – or overrides of Concrete5 core controller files.


This directory contains elements used just by this Concrete5 installation – or overrides of Concrete5 core elements.


This directory contains files uploaded to this Concrete5 installation. Concrete5’s file importer class manages this directory.


This directory contains image thumbnails generated automatically for files uploaded to Concrete5. The file manager uses some of these thumbnails but new image thumbnail types will automatically place their generated thumbnails in this directory.


Files uploaded to this directory are available for import into the file manager in the Dashboard. This can be useful when attempting to upload large files is failing through a browser.


Internal Concrete5 cache files are written here. Generally, it is safe to delete this directory entirely if troubleshooting a problem in a Concrete5 installation.


This directory contains job classes used just by this Concrete5 installation – or overrides of Concrete5 core job classes.


This directory contains language files used by Concrete5. These are populated during the build of Concrete5.


This directory contains email templates used just by this Concrete5 installation – or overrides of Concrete5 email templates.


This directory contains single page views used just by this Concrete5 installation – or overrides of Concrete5 single page views.


This directory contains custom PHP classes used by this application, or (in some limited cases) overrides of core Concrete5 PHP classes. Note: this directory obeys the same casing rules as the concrete/src directory.


This directory contains custom themes used by this application, or overrides of core Concrete5 themes or components.


This directory contains tools used by this application. These are deprecated in favor of routes, controllers and views.


This directory contains custom views used by this application, or views that override core Concrete5 views.

The folders application/files/, application/config/, packages/ and updates/ will need to be writable by the web server process. This can mean that the folders will need to be “world writable”, depending on your hosting environment. If your server supports running as suexec/phpsuexec, the files should be owned by your user account, and set as 755 on all of them. That means that your web server process can do anything it likes to them, but nothing else can (although everyone can view them, which is expected.) If this isn’t possible, another good option is to set the apache user (either “apache” or “nobody”) as having full rights to these file. If neither are possible, chmod 777 to files/ and all items within (e.g. chmod -R 777 file/*)

Admin password is the password you input when begin the installation

you can change the Admin password by the follow steps:

  1. Dashboard->Members->Search User
  2. One click the user “admin”,enter the edit mode
  3. One click the “change” button

The PHP configuration file allows you to configure the modules enabled, the email settings or the size of the upload files. It is located at /usr/local/php/etc/php.ini.

After modifying the PHP configuration file, restart both Apache and PHP-FPM for the changes to take effect:

# service httpd restart


Modify the  /usr/local/php/etc/php.ini file to increase the allowed size for uploads:

; Maximum size of POST data that PHP will accept.
post_max_size = 16M
; Maximum allowed size for uploaded files.
upload_max_filesize = 16M

then,restart the apache

# service httpd restart


If you receive the message “Maximum execution time of 30 seconds exceeded”.You may also like to extend the max_execution_time for PHP and you can modify it by two methods below

Method one: edit your  /usr/local/php/etc/php.ini

; Maximum execution time of each script, in seconds
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 90
; Maximum amount of time each script may spend parsing request data. It's a good
; idea to limit this time on productions servers in order to eliminate unexpectedly
; long running scripts.

Method two: edit your .htaccess:

<IfModule mod_php5.c>
php_value max_execution_time 90

Websoft9 Chyrp Image have installed the phpMyadmin

phpMyAdmin install directory: /data/wwwroot/default/phpMyAdmin


Following is the step for access phpMyadmin

  1. Open Chrome or Firefox on your local PC
  2. visit the http://Internet IP Address/phpMyAdmin,you can enter the login page
  3. select you language,Username:root,Password:123456
  4. Click the button “Go”



Following is the step for access phpMyadmin

  1. User Remote Desktop Connection of Window to connect to you ECS
  2. Install a Chrome or Firefox browser on you ECS
  3. Open Chrome or Firefox on your ECS
  4. visit the http://Internet IP Address/phpMyAdmin,you can enter the login page
  5. select you language,Username:root,Password:123456
  6. Click the button “Go”