By Arslan Ud Din Shafiq, Alibaba Cloud Tech Share Author. Tech Share is Alibaba Cloud's incentive program to encourage the sharing of technical knowledge and best practices within the cloud community.
Fork is an intuitive, user friendly and open source CMS. Fork uses the Symphony framework and provides various tools for its users to build, monitor, and update websites. You easily can integrate it with web analytics tools to analyze user behavior on your website and perform search engine optimization.
In this tutorial, we will be installing and setting up Fork CMS on an Alibaba Cloud Elastic Compute Service (ECS) with Ubuntu 16.04 installed.
Before proceeding with installation of any kind of package, use the following command to update your Ubuntu system. To execute this command, remember to login from non-root user with sudo privileges.
# sudo apt update && sudo apt upgrade
You will need to install unzip which will be used to unzip the compressed zip folder.
# sudo apt-get install unzip -y
You will also need to download Fork CMS from GitHub, so you will have to install Git.
# sudo apt-get install git -y
Fork CMS requires installation of PHP 7.1 or newer version of PHP. In this tutorial, you will install PHP 7.2. To install PHP 7.2, execute the following steps.
First, you will need to install python software properties and software properties common.
# sudo apt-get install software-properties-common python-software-properties
Add the repository for newer versions of PHP.
# sudo add-apt-repository ppa:ondrej/php
Update the system to refresh the available repositories.
# sudo apt update
Install PHP 7.2 by executing the following command.
# sudo apt install -y php7.2
Fork CMS requires the following PHP extensions:
To install the above extensions of PHP, execute the following command.
# sudo apt install -y php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-curl php7.2-mbstring php7.2-gd php7.2-intl php7.2-mysql php7.2-xml php7.2-json
When you have installed the above extensions, apache2 will be installed automatically. You don't need to install apache explicitly.
To check PHP installation, you can execute the following command to check your installed PHP version.
# php --version
Fork CMS supports MySQL. In this tutorial, you will use a MariaDB database. By default, the Ubuntu repository has an older version of MariaDB. To use new version of MariaDB, you will need to add MariaDB repository to your Ubuntu system. To do so, follow the steps below.
Verify the keys by executing the following command.
# sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
Add the repository using the following command.
# sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.nodesdirect.com/mariadb/repo/10.2/ubuntu xenial main'
Update the system.
# sudo apt update
Install MariaDB using the following command.
# sudo apt install -y mariadb-server
Start and enable the MariaDB so that after reboot, MariaDB can start automatically.
# sudo systemctl start mariadb
# sudo systemctl enable mariadb
Run the following command to enhance security of MariaDB and set a password for the root user.
# sudo mysql_secure_installation
Connect to the MySQL shell as root user using the command below and enter your password.
# sudo mysql -u root -p
Execute the following MySQL queries in your MariaDB server.
CREATE DATABASE forkdb;
CREATE USER 'aareez'@'localhost' IDENTIFIED BY '654321Ab';
GRANT ALL PRIVILEGES ON forkdb.* TO aareez@localhost;
FLUSH PRIVILEGES;
EXIT;
Fork CMS uses Symphony framework, so it requires installation of Composer. To install and setup composer, execute the following demands.
# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
# php composer-setup.php
# php -r "unlink('composer-setup.php');"
# sudo mv composer.phar /usr/local/bin/composer
To install Fork CMS, you will need to perform the following steps.
Navigate to /var/www/ using the command.
# cd /var/www
Download the latest stable release of Fork CMS using the command below.
# sudo composer create-project forkcms/forkcms
Provide ownership of /var/www/ to www-data so that apache server can access the required files.
# sudo chown -R www-data:www-data /var/www/forkcms
To setup database, execute the following command. It will open a file using nano editor in which you will need to update username, password, database name, host and port.
# sudo nano /var/www/forkcms/app/config/parameters_install.yml
Create virtual host configuration file for Fork CMS. Execute the following command, a file will be opened in nano text editor.
# sudo nano /etc/apache2/sites-available/fork.conf
Copy and Fork CMS the following code and save the file.
<VirtualHost *:80>
ServerAdmin admin@xyz.com
ServerName www.softpedia.xyz
DocumentRoot /var/www/forkcms
DirectoryIndex index.php index.htm index.html
<Directory /var/www/forkcms>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/ForkCMS_error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/ForkCMS_access.log combined
</VirtualHost>
Execute the command below to disable default site.
# sudo a2dissite 000-default.conf
You will need to enable the newly created virtual host.
# sudo a2ensite fork
You will need to enable rewrite mod. You can do so by editing configuration file in apache2 directory or you can simply execute the command below.
# sudo a2enmod rewrite
You will need to enable SSL engine. You can do so by editing configuration file in apache2 directory or you can simply execute the command below.
# sudo a2enmod ssl
You will have to restart apache server to apply the changes and load the settings by executing command below.
# sudo service apache2 restart
You can access Fork CMS via your domain name or ECS IP address. In my case, I have accessed via http://www.softpedia.xyz . Remember to prefix www in URL. You will see the following screen.
To install SSL certificate using Let's Encrypt, you will use Certbot. To do so, execute the following steps.
Update the package using command.
# sudo apt-get update
To install software-properties-common, execute the command below.
# sudo apt-get install software-properties-common
Add the certbot repository by using command below.
# sudo add-apt-repository ppa:certbot/certbot
Update the package to load the added certbot repository using command.
# sudo apt-get update
Stop apache before issuance of SSL certificate.
# sudo systemctl stop apache2
Install python-certbot-apache using the command below.
# sudo apt-get install python-certbot-apache
Execute the following command to get Let's Encrypt SSL issued.
# sudo certbot --apache -d www.softpedia.xyz
Select option 2 to redirect the link to https and update virtual host settings for SSL.
Restart apache server.
# sudo systemctl start apache2
You will have to edit .htaccess file to activate rules for SSL. To do so, execute the command below.
# sudo nano /var/www/forkcms/.htaccess
Now remove # sign as shown in the following code.
# redirect all traffic to https
<IfModule headers_module>
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains" env=HTTPS
</IfModule>
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !.*\.dev [NC]
RewriteCond %{HTTP_HOST} !.*localhost(:\d+)?$ [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# one url to rule them all
RewriteCond %{HTTP_HOST} !^www\.softpedia\.xyz [NC]
RewriteCond %{HTTP_HOST} !.*\.dev [NC]
RewriteCond %{HTTP_HOST} !.*localhost(:\d+)?$ [NC]
RewriteRule ^(.*)$ http://www.softpedia.xyz/$1 [R=301,L]
You can access your website using https protocol https://www.your_domain_name.tld
If you have activated firewalls, you will have to define a rule in Alibaba Cloud security group for your cloud server to add exception for port 80/tcp and 443/tcp. You can enable these ports while creating ECS instance, but in case if you have forgotten to unblock these ports, you can follow the procedure in this guide: https://www.alibabacloud.com/help/doc-detail/25471.htm
Access Fork CMS via domain name or ECS IP address. You will see the following screen.
Hit Next. You will see the following screen.
Hit Next. You will see the database configuration screen. Add the details about database.
Set email and password for admin panel and hit Finish Installation.
You will be redirected to the following screen.
You can access admin panel by prefixing /private to the link.
After login, you will see the following dashboard.
After accessing home page, you will see the following screen.
Congratulations! You go, you have successfully installed and configured Fork CMS on your Alibaba Cloud Elastic Compute Service (ECS) server.
Storage System Design Analysis: Factors Affecting NVMe SSD Performance (2)
2,599 posts | 764 followers
FollowAlibaba Clouder - April 28, 2018
Alibaba Clouder - January 27, 2020
Alibaba Clouder - April 27, 2018
Alibaba Clouder - February 27, 2019
Alibaba Clouder - April 12, 2019
Alibaba Clouder - November 21, 2019
2,599 posts | 764 followers
FollowElastic and secure virtual cloud servers to cater all your cloud hosting needs.
Learn MoreCloud-based and lightweight servers that are easy to set up and manage
Learn MoreLearn More
More Posts by Alibaba Clouder