Prerequisites
 
- FusionCMS utilizes Composer to manage its dependencies. So, before using FusionCMS, make sure you have Composer installed on your machine.
- A web server that meets FusionCMS' server requirements (we recommend Laravel Homestead for local development)
- MySQL access, either via a web-based tool like phpMyAdmin or a standalone app like TablePlus
- Your favorite text editor such as Sublime Text or Visual Studio Code
Get FusionCMS
There are various ways in which you can obtain a copy of FusionCMS.
Via Website
Head to the download page to manually download the latest stable version.
Via GitHub
Clone FusionCMS from the GitHub repository to the directory of your choosing.
git clone -b release https://github.com/fusioncms/fusioncms.git my-projectDirectory Permissions
After extracting FusionCMS, you may need to configure some permissions. Directories within the storage and the bootstrap/cache directories should be writable by your web server or FusionCMS will not run. If you are using the Laravel Homestead virtual machine, these permissions should already be set.
Web Server Configuration
Public Directory
After downloading and extracting FusionCMS, you should configure your web server's document / web root to be the public directory. The index.php file in this directory serves as the front controller for all HTTP requests entering FusionCMS.
Directory Configuration
FusionCMS should always be served out of the root of the "web directory" configured for your web server. You should not attempt to serve FusionCMS out of a sub-directory of the "web directory". Attempting to do so could expose sensitive files present within FusionCMS.
Pretty URLs
Apache
FusionCMS includes a public/.htaccess file that is used to provide URLs without the index.php front controller in the path. Before serving FusionCMS with Apache, be sure to enable the mod_rewrite module so the .htaccess file will be honored by the server.
If the .htaccess file that ships with FusionCMS does not work with your Apache installation, try this alternative:
Options +FollowSymLinks -Indexes
RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]Nginx
If you are using Nginx, the following directive in your site configuration will direct all requests to the index.php front controller:
location / {
    try_files $uri $uri/ /index.php?$query_string;
}When using Laravel Homestead, pretty URLs will be automatically configured.
Install Composer Dependencies
If you are using Homestead for local development, you will want to run the following commands from your Homestead virtual machine after SSH'ing in.
From the root directory of FusionCMS, run composer install to download and install the required dependencies from your terminal.
Copy The Environment File
FusionCMS stores sensitive information such as database credentials and API keys in an environment file. FusionCMS ships with an example file you may copy to get started with.
cp .env.example .envDon't worry about the contents right now - the FusionCMS installation wizard will guide you through the process in a friendly manner, so we can move on to the next step!
Generate Application Key
The next thing you should do after copying the environment file is to set your application key to a random string. You can do this through the console by running the following command:
php artisan key:generateTypically, this string should be 32 characters long. This key will be saved within your .env file.
Installation Wizard
Once your environment is configured and ready to go, use the custom Artisan command:
$ php artisan fusion:installThe wizard will guide you through the process of configuring your database, owner account, and default settings. The following options are available if you wish to define some installation parameters proactively.
| Option | Description | 
|---|---|
| -H\--homestead | Quick install; uses default homestead configurations. | 
| -A\--valet | Quick install; uses default valet configurations. | 
| -R\--refresh | Same as running uninstall/install but wont't refresh .env file. | 
| -D\--debug | Enables error logging; for development purposes (sets APP_DEBUG=true). | 
| --url | Sets .envvariableAPP_URL(default: "http://localhost") | 
| --host | Sets .envvariableDB_HOST(default: "localhost") | 
| --database | Sets .envvariableDB_DATABASE(default: "fusioncms") | 
| --username | Sets .envvariableDB_USERNAME(default: "root") | 
| --password | Sets .envvariableDB_PASSWORD(default: "secret") | 
| --charset | Sets .envvariableDB_CHARSET(default: "utf8") | 
| --collation | Sets .envvariableDB_COLLATION(default: "utf8_general_ci") | 
Note: All of the above options can be used in tandem with each other. Example below.
$ php artisan fusion:install --homestead --database="my_project"