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 Rcs 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.