Configuring Abyss Web Server on Ubuntu Server 22.04

Post new topic   Reply to topic    Aprelium Forum Index -> Tutorials
View previous topic :: View next topic  
Author Message

Joined: 29 Oct 2003
Posts: 3752
Location: USA, GA

PostPosted: Thu Dec 22, 2022 12:30 pm    Post subject: Configuring Abyss Web Server on Ubuntu Server 22.04 Reply with quote

Configuring Abyss Web Server on Ubuntu Server 22.04

This tutorial explains the configuration for setting up Abyss Web Server X2 on Ubuntu Server 22.04.1 LTS. If you're running a different distro such as Fedora or CentOS, you will need to use different commands for some of the steps such as installing the packages and modifying the sudoers file. This guide also assumes that you configured the network settings for a static IP Address and enabled the OpenSSH server during the installation process. You can follow this guide from a Virtual Machine using a program like VirtualBox or a dedicated server (my preferred choice). If you haven't already installed the server, download it from the official Ubuntu website. There are many video tutorials out there explaining how to set up Linux. I hope you find this tutorial helpful. For my previous tutorial, see Ubuntu Server 20.04.

Connect to the server from the client side
Open Windows PowerShell and enter the following command:
ssh yourUserName@serverip
Note: SSH is installed by default on Windows 10 1909 or higher. Click here for details on installing it on an earlier version. PuTTY also has an SSH client but I find using Windows PowerShell convenient since you can copy and paste information into the command window.

Configure your account so that password is disabled for sudo command. You don't need to do this but it makes life easier.
sudo visudo
Add this to the end of the configuration file
Press CTRL+O, Enter, then CTRL+X to save changes and exit.

Set time zone of server so it matches your local time (I'm U.S. Eastern Time)
sudo timedatectl set-timezone America/New_York
Note: sudo timedatectl list-timezones will display a list of time zones to choose from.

Create the user for managing the server and the folders we will use for our setup
sudo adduser server
su server
cd ~
mkdir -p .ssh public_html/default apps

Download and install FileZilla FTP Client

Use FileZilla FTP Client to connect to server account using SFTP
Upload the tgz file for abyssws into ~/apps
Upload website files into ~/public_html/default

Install Abyss Web Server
cd apps
tar xzfm abwsx2-2-16-4.tgz
cd abyssws
This will generate a configuration file. Press CTRL+C to exit program.

Edit abyss.conf to allow your external IP Address.
nano abyss.conf
Look for console > ipcontrol and add an <allow> tag to include your external IP Address. To find your IP Address, I like to use but Aprelium also has an IP detector here. This will allow you access to the abyssws console remotely while blocking everyone else. Save your changes and exit by pressing CTRL+O, Enter, then CTRL+X.

Run the program again.

Log into server from http://serverip:9999 to enter any licensing information and to setup the initial user to log into the console. Do not exit the web browser!

Install Abyss Web Server as a service
Press CTRL+C to close abyssws
su yourUserName
sudo ./autostart-setup install
sudo systemctl start abyssws

Change the port to 80
Change the document root to /home/server/public_html/default

Make sure you have the latest package updates
sudo apt update
sudo apt -y upgrade

Optional packages for those that require PHP 8.1 scripting. Unfortunately, it doesn't appear PHP 8.2 is included in Ubuntu 22.04.1 LTS so you will need to manually compile your own. A tutorial on that will follow in the future.
sudo apt -y install php8.1-cgi
sudo apt -y install php8.1 php8.1-mysqlnd php8.1-opcache php8.1-pdo php8.1-xml php8.1-bz2 php8.1-calendar php8.1-ctype php8.1-curl php8.1-dom php8.1-exif php8.1-ffi php8.1-fileinfo php8.1-ftp php8.1-gd php8.1-iconv php8.1-mbstring php8.1-mysqli php8.1-pdo-firebird php8.1-pdo-mysql php8.1-pdo-pgsql php8.1-pgsql php8.1-phar php8.1-posix php8.1-readline php8.1-shmop php8.1-simplexml php8.1-sockets php8.1-sysvmsg php8.1-sysvsem php8.1-sysvshm php8.1-tokenizer php8.1-xmlreader php8.1-xmlwriter php8.1-xsl
Note: Please see the documentation for installing PHP on Linux for more details.

Securing your server
At this point, you have a fairly secure server. To make it even more secure, we need to enable the firewall and make sure that we disable password authentication so that only key files are allowed. This prevents attackers from brute forcing into your server (guessing the user and pass multiple times).

Generating the key pair (public and private key) for SSH access
Open Windows PowerShell and run the following command:
ssh-keygen -t ecdsa -b 521
Note: You don’t need to enter a password but it's a good idea to enter one, that way if someone gets a hold of your private key file id_ecdsa, they would need a password to access the server. Unfortunately this is an inconvenience because every time you connect to the server you will require both the key and the password. As long as you use Bit Locker to encrypt your hard drive and keep your security software up to date, you shouldn't need a password. Do not store the private key file on the Internet unless you know it's in a secure location! OneDrive Personal Vault makes a great location if you want to store it as a backup in the cloud. The public key file is located in C:\Users\yourUserName\.ssh and it's named

Download and open PuTTY Key Generator (named puttygen.exe)

In order for FileZilla to understand the key file, we need to import the id_ecdsa file (private key) into PuTTY Key Generator and save the private key file as server.ppk into the .ssh folder of your client computer. I won't go into detail how to import the key because it's self explanatory. Just make sure the options after importing are set to use ECDSA and number of bits is 521. ECDSA is the strongest encryption approved by the U.S. Government.

Upload the public key file ( to ~/.ssh and rename the file to authorized_keys
Configure FileZilla to use the key file. You can find this setting where you edit the sites. Open the server.ppk file you created earlier as the key file. Save your changes. You no longer require a password to SSH into the server.

Configure and restart the SSH service
sudo nano /etc/ssh/sshd_config
uncomment: PermitRootLogin and change option to no
uncomment: PubKeyAuthentication and change option to yes
uncomment: AuthorizedKeyFiles
uncomment: PasswordAuthentication and change option to no
Press CTRL+O, Enter, then CTRL+X to save changes and exit.
sudo systemctl restart ssh

Configure Firewall to allow ports 22, 80, 443, and 9999
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 9999
sudo ufw enable

You can configure the server however way you want now.

Best regards,
Josh H (TRUSTAbyss)
Back to top View user's profile Send private message Visit poster's website
Site Admin

Joined: 03 Mar 2002
Posts: 1284

PostPosted: Thu Dec 29, 2022 10:22 pm    Post subject: Re: Configuring Abyss Web Server on Ubuntu Server 22.04 Reply with quote


Follow @abyssws on Twitter
Subscribe to our newsletter
Forum Administrator
Aprelium -
Back to top View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Aprelium Forum Index -> Tutorials All times are GMT + 1 Hour
Page 1 of 1

Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

Powered by phpBB phpBB Group