@JS's Notes

Site with notes from my work.

Seo Panel on Ubuntu 20.04

2020-09-20 System SEO @JS

My test platform: Ubuntu Server 20.04 and SEO Panel 4.6.0

SEO Panel is a free and open source control panel that can be used for search engine optimization of your websites.

Requirements: user with root privileges or non-root user with sudo privileges.

Apache, PHP and MariaDB installation
$ sudo apt install apache2 mariadb-server php php-mysql php-curl php-json php-cgi \
                    libapache2-mod-php php-xmlrpc php-gd php-mbstring php php-common php-xmlrpc \
                    php-soap php-xml php-intl php-cli php-ldap php-zip php-readline php-imap \
                    php-tidy php-intl unzip wget -y

Once the installation has been completed, edit /etc/php/7.4/apache2/php.ini and set:

memory_limit = 300M
upload_max_filesize = 200M
max_execution_time = 400
date.timezone = Europe/Warsaw

*date.timezone - yours timezone.

Restart the Apache service. On Ubuntu, the services should be started automatically after packages pre-configuration is complete. You can check it and enable services together with the system.

$ sudo systemctl restart apache2.service && sudo systemctl status apache2.service
$ sudo systemctl status mariadb.service
MariaDB configuration
$ sudo mysql_secure_installation

Answer all the questions as shown below:

    Enter current password for root (enter for none):
    Set root password? [Y/n]: Y
    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

Log in to MariaDB shell and set up:

$ sudo mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 44
Server version: 10.3.22-MariaDB-1ubuntu1 Ubuntu 20.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> USE mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> exit

Restart MariaDB service:

$ sudo systemctl restart mariadb.service && sudo systemctl status mariadb.service

Log in to MariaDB shell, create a database and user for SEO Panel. Grant privileges to the database. In this example:

seopaneldb database for SEO Panel,
seopanelusr user for SEO Panel database
pass4seopaneldb secure password for seopanelusr and seopaneldb
$ mysql -u root -p
Enter password:
MariaDB [(none)]> CREATE DATABASE seopaneldb;
MariaDB [(none)]> CREATE USER seopanelusr;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON seopaneldb.* TO 'seopanelusr'@'localhost' IDENTIFIED BY 'pass4seopaneldb';
MariaDB [(none)]> exit
SEO Panel installation and configuration
$ cd /tmp
$ wget hhttps://sourceforge.net/projects/seopanel/files/seopanel.v.4.6.0.zip
$ unzip seopanel.v.4.6.0.zip
$ sudo cp -r seopanel /var/www/html/
$ sudo chown -R www-data:www-data /var/www/html/seopanel
$ sudo chmod -R 755 /var/www/html/seopanel

Next, create an Apache virtual host file /etc/apache2/sites-available/seopanel.conf:

<VirtualHost *:80>
     ServerAdmin admin@local.lnxorg
     DocumentRoot /var/www/html/seopanel
     ServerName ctx06vm.local.lnxorg

     <Directory /var/www/html/seopanel/>
          Options FollowSymlinks
          AllowOverride All
          Require all granted

     ErrorLog ${APACHE_LOG_DIR}/seopanel_error.log
     CustomLog ${APACHE_LOG_DIR}/seopanel_access.log combined

Replace ServerAdmin and ServerName with parameters corresponding to your case. Save the file and enable the virtual host, the Apache rewrite module and restart web server to apply all the changes:

$ sudo a2ensite seopanel.conf && sudo a2enmod rewrite
$ sudo systemctl restart apache2.service && sudo systemctl status apache2.service

Open your web browser and type the URL of your SEO Panel website.

  • Once all the requirements are validated, click on the Proceed to the next step button.
  • Provide your database details like database name, database username, password and Admin email. Click on the Proceed to next step button.
  • Provide your default language, default time zone and click on the Proceed to admin login button.

You have successfully installed the SEO Panel.

Reference: SEO Panel Documentation.