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-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"