Just like WordPress, we have another open-source Craft CMS that is a new and innovative content management system with a large community of developers and communities worldwide. Here we learn the steps to Install Craft CMS on Ubuntu 20.04 or 18.04.
It is an open-source CMS based on PHP / MySQL with the TWIG template engine, flexible in nature, and has a user-friendly interface for creating digital current and administrative tasks. Craft CMS also offers a built-in plugin store with hundreds of free and paid plugins. Whereas is robust framework allows developers to develop modules and plugins.
Steps to Install Craft CMS with Apache on Ubuntu 20.04/18.04 LTS
Here in this tutorial, we have given the step-by-step guide to Install Craft CMS on Ubuntu 20.04 LTS server OS running locally or some cloud hosting server.
System Requirement for Craft CMS
Minimum System requirement:
- For DB: MySQL 5.5+ with InnoDB, MariaDB 5.5+, or PostgreSQL 9.5+
- PHP 7.2.5+
- 256MB+ memory allocated to PHP
- 200MB+ free disk space
Recommended System requirement:
- PHP 7.4*
- MySQL 5.7+ with InnoDB, MariaDB 10.5+, or PostgreSQL 10+
- 512MB+ of memory allocated to PHP
- 200MB+ of free disk space
- Composer 1.3+ if installing Craft via Composer
Run system update
To install any packages, first, we should update our system to its latest state. For that, run the Ubuntu update command that will also refresh the repository cache.
sudo apt update
Also install curl, nano, and git:
sudo apt install curl nano git
Install Apache Web server on Ubuntu 20.04
Here we are using Apache to serve as a web server for Craft CMS, well, it is one of the popular open-source projects running on millions of servers and we just need to run a single command for its installation.
sudo apt install apache2
Start and enable the Apache service
Once the installation of this web server is completed, make sure to start and enable its service using the below-given commands:
sudo systemctl start apache2 sudo systemctl enable apache2
To check the service status:
systemctl status apache2
Install PHP and extensions required by Craft CMS
By default on Ubuntu 20.04 LTS, while writing this article the version of PHP was 7.4, however, don’t worry, the below-given command will install whatever the latest version is available for your system via base repo.
apt install php-{common,mysql,gmp,curl,intl,mbstring,imagick,fpm,mysql,pgsql,json,xmlrpc,gd,bcmath,xml,cli,zip}
Once the installation is completed check the PHP version.
php -v
Now use that version in the below command to edit the php.ini file.
For example, we have version 7.4.24, hence the edit command will be like this:
nano /etc/php/7.4/fpm/php.ini
Now, find below lines in the file and change the values as given:
memory_limit = 512M post_max_size = 32M upload_max_filesize = 32M max_execution_time = 360
Save and close the file by pressing Ctrl+O, hit the Enter key, and to exit use Ctrl+X.
Restart Apache:
sudo systemctl restart apache2
Install MariaDB Database server on Ubuntu 20.04/18.04
To store the content of Craft CMS we can either use MySQL or PostgreSQL. Hence here we are using the open-source fork of MySQL i.e MariaDB.
sudo apt install mariadb-server mariadb-client
Start and enable the database services:
sudo systemctl start mysql sudo systemctl enable mysql
To check status:
systemctl status mysql
Once the installation is completed. Secure the installation using this command:
sudo mysql_secure_installation
It will ask few steps to secure your MySQL/MariaDB installation by setting root user passwords for the Database server, removing demo users and databases. Hence, just follow the text wizard.
Create Database for Craft CMS
Now, let’s create a Database for this content management system. First, log in to the database server;
sudo mysql -u root -p
Create DB:
CREATE DATABASE craftcmsdb;
Create a database user:
CREATE USER 'h2suser'@'localhost' IDENTIFIED BY 'mypassword';
Grant all rights of created database to the user:
GRANT ALL ON craftcmsdb.* TO 'h2ssuser'@'localhost';
Exit:
FLUSH PRIVILEGES; EXIT;
Note: Change the values given in red color as per your choice.
Download CraftCMS on Ubuntu 20.04 or 18.04 to install
We need Composer on our Ubuntu 20.04 LTS server to install Craft CMS, hence use the below to download and run its installation script.
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
After installing, use the composer to download the Craft CMS. Let’s switch to the Apache www root directory and download the project files.
cd /var/www/html composer create-project craftcms/craft craftcms
Give the downloaded CraftCMS files read and execute permission to the system’s apache user:
sudo chown -R www-data:www-data /var/www/html/craftcms/ sudo chmod -R 755 /var/www/html/craftcms/
The setup will also ask you to enter the MySQL database details. Hence, leave the database port as it is while giving the database name, username, and password when it asks for.
Create Apahce2 site configuration file for CraftCMS
To access CraftCMS, create a site configuration file with values to access this content management system using the webserver.
sudo nano /etc/apache2/sites-available/craftcms.conf
Paste the following block of code:
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/html/craftcms/web ServerName example.com ServerAlias www.example.com <Directory /var/www/html/craftcms/web/> Options FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/html/craftcms/web/> RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*) index.php [PT,L] </Directory> </VirtualHost>
Enable Craft CMS Apache configuration
Next, enable the above created CMS configuration file, rewrite module, and disable the default Apache configuration.
sudo a2ensite craftcms.conf sudo a2dissite 000-default sudo a2enmod rewrite
sudo systemctl restart apache2
Access Web Interface
Now, go to your browser. Either enter the website URL (domain) you set to use with the CMS or simply enter the IP address of the server where the Craft CMS has been installed.
Example:
http://your-domain.com or http://server-ip-address
Login with the credentials you have set.
Other Articles:
• Install Etherpad Lite on Ubuntu 20.04…
• How to install WHM & CPanel on Ubuntu 20.04 LTS
• Install ImageMagick or its PHP module on Ubuntu
• How to install Gfortran 9, 10, or 11 on Ubuntu 20.04…