How to Install Oxwall on CentOS 7

Updated on January 25, 2017
How to Install Oxwall on CentOS 7 header image

Oxwall is an open source social networking software platform which can be used to build a custom social networking site (SNS) for free.

In this article, I will explain how to install Oxwall on a CentOS 7 server instance.

Prerequisites

  • A Vultr CentOS 7 server instance.
  • A sudo user.

Step 1: Update the system

Log in as a sudo user, and then update the system to the latest status:

sudo yum install epel-release -y
sudo yum update -y
sudo shutdown -r now

After the system boots up again, log back in as the same sudo user to proceed.

Step 2: Install Apache

Running an Oxwall site needs a web server deployed on your machine. Here, you can install Apache 2.4 using YUM:

sudo yum install httpd -y

In a production environment, you should remove the preset Apache welcome page:

sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf

For security purposes, you should also disallow Apache from exposing file paths in visitors' web browsers:

sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf

Start the Apache service:

sudo systemctl start httpd.service
sudo systemctl enable httpd.service

Step 3: Install MariaDB

Since Oxwall needs a MySQL database to store all of the site contents, you need to install MariaDB on your CentOS 7 server using YUM:

sudo yum install mariadb mariadb-server -y

Start the MariaDB service:

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Secure the installation of MariaDB:

sudo /usr/bin/mysql_secure_installation

During the process, reply to the questions on the screen as shown below. Be sure to setup a private and complicated password.

Enter current password for root (enter for none): Enter
Set root password? [Y/n]: Y
New password: <your-password>
Re-enter new password: <your-password>
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y

Step 4: Install PHP

Oxwall is compatible with PHP 5.5 and PHP 5.6. Since PHP 5.5 has reached EOL (End of Life), you can install PHP 5.6 for Oxwall using the IUS YUM repo.

Install the IUS YUM repo:

cd
wget https://centos7.iuscommunity.org/ius-release.rpm
sudo rpm -Uvh ius-release.rpm

Install PHP 5.6 and required dependencies for Oxwall using the IUS YUM repo:

sudo yum install php56u php56u-pdo php56u-xml php56u-mbstring php56u-common php56u-cli php56u-mysqlnd php56u-xmlrpc php56u-mcrypt php56u-gd curl libcurl-devel -y

Restart Apache in order to load the new components:

sudo systemctl restart httpd.service

Step 5: Download Oxwall

You can always get the latest release of Oxwall from Oxwall official download page. At the time of writing this article, the latest release of Oxwall is 1.8.4.

cd
wget --no-check-certificate https://developers.oxwall.com/dl/oxwall-1.8.4.1.zip
sudo yum install unzip -y
unzip oxwall-1.8.4.1.zip -d oxwall
sudo mv oxwall /var/www/html && sudo chown apache:apache -R /var/www/html/*

Step 6: Setup an Apache virtual host

Use the vi text editor to create an Apache virtual host config file for Oxwall:

sudo vi /etc/httpd/conf.d/oxwall.conf

Populate this file with the following contents:

<VirtualHost *:80>
ServerName oxwall.example.com
DocumentRoot /var/www/html/oxwall
<Directory /var/www/html/oxwall>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>

Save and quit:

:wq!

Again, restart Apache in order to put your settings into effect:

sudo systemctl restart httpd.service

Step 7: Create a database for Oxwall

Log into the MySQL shell as root:

mysql -u root -p

Use the MariaDB root password you set earlier to log in.

In the MySQL shell, create a database named oxwall and a database user named oxwalluser with the password yourpassword, and then grant all privileges on this database to this database user.

Note: When executing these commands on your own machine, be sure to use your own credentials.

CREATE DATABASE oxwall;
CREATE USER 'oxwalluser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON oxwall.* TO 'oxwalluser'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

Step 8: Modify a firewall rule

Before users can visit your Oxwall site, you need to allow HTTP traffic on port 80 in the firewall settings:

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload

Step 9: Finish the installation from a web browser

Point your web browser to your server IP http://203.0.113.1, and then you will be brought into the Site settings page. Input all required information as below:

Site info:

  • Title: <Site Name>
  • Tagline: <Site description>
  • URL: http://203.0.113.1/
  • Root directory: /var/www/html/oxwall/

Site Administrator:

  • Email: <admin@example.com>
  • Username: <admin's username>
  • Password: <admin's password>

Afterwards, click the CONTINUE button to move on to the Database page. Here, you need to provide info about the MySQL database you setup earlier:

  • Host: localhost
  • User: oxwalluser
  • Password: yourpassword
  • Database Name: oxwall
  • Table prefix: ow_

Click the CONTINUE button to enter the Finalizing install page on which the wizard will ask you to create a cron job. That step needs to be completed in your SSH terminal:

sudo crontab -e

Populate the crontab file with:

* * * * * /usr/bin/php /var/www/html/oxwall/ow_cron/run.php

Save and quit:

:wq!

Finally, click the CONTINUE button in the web browser to finish the installation. After the installation, you can navigate to your Oxwall site or adjust more settings in the admin area.

That's all. Thank you for your reading.