Installation on Ubuntu Debian Apache2 Server
Pre-installation Requirements
Ensure your hosting environment meets the minimal software requirements.
System Preparation
Update and Upgrade Packages
Run these commands to update and upgrade all packages:
sudo apt-get update
sudo apt-get upgrade
Install PHP and Necessary Extensions
sudo apt-get install php php-curl php-gd php-mbstring php-json php-fileinfo php-zip php-openssl php-exif php-mysql
Installing and Configuring MariaDB
sudo apt-get install mariadb-server
After installing, use the commands below to stop, start, and enable the MariaDB service to always start up when the server boots:
sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
After that, run the commands below to secure the MariaDB server by creating a root password and disallowing remote root access:
sudo mysql_secure_installation
When prompted, answer the questions below by following the guide:
- Enter current password for root (enter for none): Just press the Enter
- Set root password? [Y/n]: Y
- New password: Enter password
- Re-enter new password: Repeat 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
Restart MariaDB server:
sudo systemctl restart mariadb.service
Create the Database
To log on to the MariaDB database server, run the commands below:
sudo mysql -u root -p
Run these commands to create the database, create a user, and give that user access to the database:
CREATE DATABASE database_name;
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON csdb.* TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
Creating a Virtual Host
Create a directory for your UNA site:
sudo mkdir /var/www/your_site_domain
sudo chown -R una:una /var/www/your_site_domain
sudo chmod -R 755 /var/www/your_site_domain
Create a virtual host configuration file:
sudo nano /etc/apache2/sites-available/your_site_domain.conf
Copy and paste the following lines into the conf file:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName your_site_domain
DocumentRoot /var/www/your_site_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/your_site_domain>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Require all granted
</Directory>
</VirtualHost>
Enable the new virtual host and disable the default one:
sudo a2ensite your_site_domain.conf
sudo a2dissite 000-default.conf
sudo apache2ctl configtest
sudo systemctl restart apache2
Installing Let's Encrypt SSL
sudo add-apt-repository ppa:certbot/certbot
sudo apt install python-certbot-apache
sudo nano /etc/apache2/sites-available/your_site_domain.conf
sudo apache2ctl config
sudo systemctl reload apache2
sudo certbot --apache -d your_site_domain
This will install an SSL certificate to your system.
Installing UNA
Upload the UNA .zip archive to your server and extract it to
/var/www/your_site_domain
Finalizing Installation
Set Permissions Ensure your directory and files have the correct permissions:
sudo chmod -R 755 /var/www/your_site_domain
sudo chmod -R 777 /var/www/your_site_domain/inc
sudo chmod -R 777 /var/www/your_site_domain/cache
sudo chmod -R 777 /var/www/your_site_domain/cache_public
sudo chmod -R 777 /var/www/your_site_domain/tmp
sudo chmod -R 777 /var/www/your_site_domain/logs
sudo chmod -R 777 /var/www/your_site_domain/storage
sudo chmod +x /var/www/your_site_domain/plugins/ffmpeg/ffmpeg.exe
- Update .htaccess for PHP version if needed.
- Navigate to your site URL and follow the UNA installation steps.
Post-installation Steps
Configure a cron job as instructed by the installation wizard to ensure UNA's scheduled tasks are performed correctly.
Run the code and paste the cron job from the browser to the crontab:
crontab -e
Congratulations
You've successfully installed UNA on your Ubuntu Debian server with Apache2. Proceed to UNA Studio to customize your site further.