Like WordPress, October CMS is a PHP driven content management system.
Create a LAMP droplet
First we need to select Linux Apache MySQL PHP droplet from Digital Ocean’s droplet Marketplace.
Next choose a plan, if your website is starting from scratch and won’t receive too much traffic the cheapest plan will do. You can always upgrade later.
Digital Ocean will send you an email with your initial login information. We’ll use the IP address and password to ssh into a terminal.
Now lets visit that IP address to see if everything is working. That screen should look similar to this one.
substitute 184.108.40.206 with your own IP address for your droplet below
$ ssh email@example.com
Update The Server
Now that we’ve set our new root password its time to update Ubuntu. Keep your password handy, you’ll need it later.
# apt update # apt upgrade
Approve any package updates, using the default options.
Install October CMS
These instructions are adapted form a CentOS 7.2 post.
Install unzip and wget, we’ll use these to download the installation package and unpack the zip archive later.
# apt install unzip wget
Now we log into the server and set up the database by logging in as root. use the password you chose when we first connected to the droplet
# mysql -u root -p
Now we see a mysql> prompt in our terminal lets setup that database. Be sure to use your own desired database name, username and password.
CREATE DATABASE october; GRANT ALL PRIVILEGES ON october.* to octoberuser@localhost IDENTIFIED BY 'your-password'; FLUSH PRIVILEGES; EXIT;
Now that we’ve set up and exited the database and returned to the bash prompt time to download October CMS.
# wget http://octobercms.com/download
Now we need to move that download file to the proper location at /var/www/html
# mv download /var/www/html/ # cd /var/www/html/ # ls
Now it’s time to rename download to download.zip so it can be properly expanded.
# mv download download.zip # unzip download.zip
Listing the contents of /var/www/html should reveal a directory and two files.
We’ll need to remove both index.html and download.zip as they won’t be needed anymore.
# rm download.zip index.html
Next its time to move the contents of install-master into its parent folder /var/www/html/
# mv install-master/* /var/www/html
Next, let’s delete the almost empty install-master directory. There’s a .gitignore file still there so we’ll need to remove it first then the directory and list the results.
# cd install-master/ # rm .gitignore # cd .. # rmdir install-master/ # ls -a
Now that we’re done with the directory file setup it’s time to move on to file permissions.
If you’ve set up WordPress on Ubuntu before this will look familiar.
# chown -R www-data:www-data /var/www/html/ # chmod -R 755 /var/www/html/
The result of reloading your live host should display an index
Click on install.php and let’s begin the guided installation.
The System Check screen displays the following errors so we’ll need to address them one at a time. In short we need some additional modules.
- cURL PHP Extension is required
- Mbstring PHP Extension is required
- ZipArchive PHP Library is required
Once those three are installed Test connection to the installation server will correct itself 😀
Let’s search for those modules and note their names
# apt search cURL PHP # apt search Mbstring PHP # apt search Zip PHP
Those PHP module names should look similar to these. If you’re using a newer version of PHP the number may be 7.3 or higher. You’ll receive other results as well, read those descriptions closely.
Let’s install those PHP modules; say yes to any dependencies.
# apt install php7.2-curl # apt install php7.2-mbstring # apt install php7.2-zip
# a2enmod rewrite
Now we’ll need to restart Apache for those PHP modifications to work.
# systemctl restart apache2
Reload the browser and we’ve cleared the minimum requirements to run October CMS
Be sure to delete the installation files, the install.php script and the install_files directory and that readme.md file while you’re at it.
# rm -rf README.md install.php install_files/
Visit your new October CMS website!