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.
ProcessWire CMS is an open source framework and PHP based content management system (CMS) built to save time; its users do not require any training to use it. It is designed to provide satisfying experience to designers, developers and its end-users.
ProcessWire CMS provides a strong and simple way to manage your fields, pages, templates and styles. It also provides an open source API that is jQuery-inspired which makes it more enjoyable and easy to use.
ProcessWire CMS does not restrict its installation to any specific operating system (OS). You can use any operating system (OS) of your choice; however, the installation steps would vary according to the choice of operating system.
In this tutorial, we will be installing ProcessWire CMS on an Alibaba Cloud Elastic Compute Service (ECS) instance with Debian 9 installed.
This tutorial is divided into 2 sub-tutorials.
After completing the prerequisites, login as root user with your root username & password via SSH client (e.g. Putty – You can get Putty from https://www.putty.org ) or VNC console available in your Alibaba Cloud account dashboard.
In the first step, you will add a new user and give it sudo privileges. Sudo privileges will allow this username to make administrative changes on system when required. This user will be used to login from via SSH for everyday use. Once you have added this user, to keep your server secure from various attacks, you will disable the remote root access to root user.
# adduser aareez
where "aareez" can be any username of your choice.
Now set your desired password and retype your desired password. Then, enter your full name, room number, work phone, home phone, and other. After entering the information, hit Enter key. To confirm the data is correct, type 'Y' and hit Enter key.
Sometimes by default the second line %sudo ALL=(ALL:ALL) ALL is commented (starting with hash #), due to which even after adding username to sudoers, it gives error on using sudo. To prevent this issue, if this line starts with '#' sign, remove this symbol and save the changes by pressing Ctrl+X, then type 'Y' and then hit Enter key to save.
# adduser aareez sudo
After execution of the above command, you can verify the membership of for that group by executing the following command:
# groups aareez
Your username has been successfully added to sudoers group and it is able to execute any root command.
# su – aareez
You can see that you have been logged in from your new account now. If you want to verify this, you can use the command below:
Before proceeding with installation of any kind of package, use the following command to update your Debian 9 system. To execute this command, remember to login from non-root user with sudo privileges.
# sudo apt-get update
You will be prompted to enter your password. Now type your password and hit Enter key and wait for updating.
Now execute the following command to upgrade packages:
# sudo apt-get -y upgrade
You will be prompted to configurations below. Select the option to install the package maintainer's version
# sudo apt-get -y install apache2
# sudo systemctl enable apache2
# sudo systemctl start apache2
# sudo nano /etc/apache2/sites-enabled/000-default.conf
Note: The configuration for DocumentRoot should look as DocumentRoot /var/www/html
Press Ctrl + X, to exit from editor.
<Directory /var/www/html/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
# sudo a2enmod rewrite
# sudo systemctl restart apache2
To do this, go to your Elastic Compute Service section. Click on More for the ECS you are using for ImpressPages CMS and click Security Group Configuration.
Click on Configure Rules and then click on Quickly Create Rules.
Add the configurations as shown in screenshot below & click OK.
# sudo apt-get -y install php php-gd php-mbstring php-common php-MariaDB php-imagick php-xml libapache2-mod-php php-curl php-zip
# php -v
# sudo apt-get -y install mariadb-server
You can also use Alibaba Cloud Aspara DB for RDS as an alternative. Alibaba Cloud AsparaDB for RDS frees you from managing a database and you can focus on your business. It also provides protection against SQL injections, network attacks, brute force attacks and many other types of database attacks. It is highly scalable, highly available, and easy to use.
# sudo systemctl enable mariadb
# sudo systemctl start mariadb
# sudo mysql_secure_installation
The root password will be blank by default, just hit enter button to proceed and select 'Y' and choose your password.
You have successfully secured your MariaDB server.
# sudo get-apt -y install unzip
We have successfully installed LAMP Stack & other necessary packages to continue with second part of How to install ProcessWire CMS on Debian 9 tutorial. In the next part, we will learn how configure your domain in Alibaba Cloud DNS, how to create virtual host to point your domain name to your ECS IP address and how to finally install ProcessWire on our ECS instance.