Installing OSSN on NixOS
Introduction
OSSN (Open Source Social Network) is a free and open-source social networking software written in PHP. It allows you to create your own social network website with advanced features such as user profiles, news feeds, private messaging, and more.
NixOS is a Linux distribution that uses a declarative approach to system configuration management, which makes it a popular choice among system administrators and developers. This tutorial will guide you through the process of installing OSSN on NixOS.
Prerequisites
Before we begin, you will need the following:
- A running instance of NixOS
- A user account on the system with sudo privileges
- Latest version of Nix package manager
Step 1: Install Required Packages
First, we need to install the required packages to run the OSSN server. Open your terminal and input the following command:
sudo nix-env -i openssl php7 php7-gd php7-json php7-mbstring php7-pdo php7-pdo_mysql php7-session php7-xml
This command installs the necessary dependencies required to run OSSN.
Step 2: Download and Extract OSSN
Next, we will download the latest version of OSSN from their official website.
Run the following commands to download and extract the archive file:
wget https://github.com/opensource-socialnetwork/opensource-socialnetwork/releases/download/v7.4.2/opensource-socialnetwork-v7.4.2.zip
unzip opensource-socialnetwork-v7.4.2.zip
Optional: If you want to extract the OSSN files to a location other than the current directory, you can modify the above command accordingly.
Step 3: Configure Database
Before we can proceed with the installation, we need to create a new database and user for OSSN.
Login to your MySQL server as root user and create a database for OSSN:
$ mysql -u root -p
> CREATE DATABASE ossn_db;
> GRANT ALL PRIVILEGES ON ossn_db.* TO 'ossn_user'@'localhost' IDENTIFIED BY 'ossn_password';
> FLUSH PRIVILEGES;
> EXIT;
Replace the database name, username and password with your preferred values.
Step 4: Configure Web Server
We will create a new virtual host in Nginx web server to serve the OSSN application.
Create a new configuration file under /etc/nginx/sites-available/ with a unique name like ossn.conf.
$ sudo nano /etc/nginx/sites-available/ossn.conf
Paste the following content to the configuration file:
server {
listen 80;
server_name your-domain.com;
root /path/to/ossn/folder;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Replace the following parameters according to your server configuration:
your-domain.com-- The domain name of your server. (eg: example.com)/path/to/ossn/folder-- The location where the extracted ossn files are placed.
Enable this virtual host by creating a symbolic link from sites-available to sites-enabled:
$ sudo ln -s /etc/nginx/sites-available/ossn.conf /etc/nginx/sites-enabled/
Test your Nginx configuration:
$ sudo nginx -t
If there are no syntax errors, restart the Nginx service:
$ sudo systemctl restart nginx
Step 5: Install OSSN
Navigate to the OSSN directory:
cd opensource-socialnetwork-v7.4.2
Rename the config.php.example file to config.php using the following command:
cp config.php.example config.php
Edit the config.php file and set the database details as follows:
$dbhost = 'localhost';
$dbname = 'ossn_db';
$dbuser = 'ossn_user';
$dbpass = 'ossn_password';
Where $dbhost is the address of your MySQL server.
Next, we will run the installation script:
$ sudo php ossn/install.php
Follow the prompts to complete the installation.
Step 6: Set File Permissions
To ensure that OSSN functions correctly, we need to set correct file permissions to the OSSN directory and its subdirectories.
$ sudo chown -R root:www-data /path/to/ossn
$ sudo find /path/to/ossn -type f -exec chmod 644 {} \;
$ sudo find /path/to/ossn -type d -exec chmod 755 {} \;
Conclusion
OSSN is now installed and running on your NixOS system. You can now visit your domain name to access the social network.
If you face any issues, do let us know in the comments below!