Serendipity is a PHP-based content management system (CMS) that allows you to create and manage a website. In this tutorial, you will learn how to install Serendipity on Void Linux.
Before you begin, you will need the following:
Open the terminal and update the package list:
sudo xbps-install -S
Install the required dependencies:
sudo xbps-install -S php php-json php-xml php-gd php-zlib php-pdo_mysql php-mbstring unzip
Download the latest version of Serendipity from the official website:
wget https://github.com/s9y/Serendipity/releases/download/2.3.5/serendipity-2.3.5.zip
Extract the file:
unzip serendipity-2.3.5.zip
Move the extracted directory to your web server document root:
sudo mv serendipity-2.3.5 /var/www/html/
To allow the web server to access the Serendipity files, change the ownership to the web server user:
sudo chown -R www-data:www-data /var/www/html/serendipity-2.3.5
Create a new MySQL database and user for Serendipity:
sudo mysql -u root -p
Enter your MySQL root password when prompted.
CREATE DATABASE serendipitydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'serendipityuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON serendipitydb.* TO 'serendipityuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Navigate to the Serendipity directory:
cd /var/www/html/serendipity-2.3.5
Copy the default configuration file:
cp serendipity_config.inc.php{.dist,}
Edit the configuration file:
nano serendipity_config.inc.php
Set the following values:
[...]
$serendipity['dbName'] = 'serendipitydb';
$serendipity['dbUser'] = 'serendipityuser';
$serendipity['dbPass'] = 'mypassword';
$serendipity['dbHost'] = 'localhost';
$serendipity['dbType'] = 'mysql';
[...]
$serendipity['baseURL'] = 'http://localhost/serendipity-2.3.5';
[...]
Save and close the file.
Create a new virtual host configuration file:
sudo nano /etc/httpd/conf/extra/serendipity.conf
Add the following content:
<VirtualHost *:80>
DocumentRoot "/var/www/html/serendipity-2.3.5"
ServerName your-domain.com
ServerAlias www.your-domain.com
<Directory "/var/www/html/serendipity-2.3.5">
AllowOverride All
Require all granted
</Directory>
ErrorLog "/var/log/httpd/serendipity_error.log"
CustomLog "/var/log/httpd/serendipity_access.log" combined
</VirtualHost>
Save and close the file.
Restart Apache:
sudo systemctl restart httpd
Create a new server block configuration file:
sudo nano /etc/nginx/conf.d/serendipity.conf
Add the following content:
server {
listen 80;
server_name your-domain.com www.your-domain.com;
root /var/www/html/serendipity-2.3.5;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
}
}
Save and close the file.
Restart nginx:
sudo systemctl restart nginx
Open a web browser and navigate to your Serendipity website: http://your-domain.com/serendipity-2.3.5/
. You should see the installation wizard. Follow the instructions to complete the installation.
Congratulations! You have successfully installed Serendipity on Void Linux.
If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!
Alternatively, for the best virtual desktop, try Shells!