FusionCMS is currently in an open beta state and under heavy active development.

Installing

Prerequisites

Installing
  • 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-project

Directory 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 .env

Don'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:generate

Typically, 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:install

The 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 .env variable APP_URL (default: "http://localhost")
--host Sets .env variable DB_HOST (default: "localhost")
--database Sets .env variable DB_DATABASE (default: "fusioncms")
--username Sets .env variable DB_USERNAME (default: "root")
--password Sets .env variable DB_PASSWORD (default: "secret")
--charset Sets .env variable DB_CHARSET (default: "utf8")
--collation Sets .env variable DB_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"
Have questions?

We're always happy to help with code or other questions you might have. Contact support or chat live with us on Discord.

Last edited on Thursday, January 28, 2021 (8 months ago)