1. Get information about block device
   lsblk --fs

2. partion the new disk
   cfdisk /dev/sda

  > New -> Primary -> Specify size in MB
  > Write
  > Quit

3. Format the new disk with XFS filesystem
     mkfs.xfs /dev/sda

     mkfs.xfs: command not found
     apt-get install xfsprogs

 mkfs.xfs: Format the filesystem
 xfs_admin: Change the parameters of the filesystem
 xfs_growfs: Decrease the size of the filesystem
 xfs_repair: Check and repair the filesystem
 xfs_freeze: Suspend access to an XFS filesystem; this makes consistent backups easier
 xfs_copy: Fast copy the contents of an XFS filesystem

      In case repair, always unmount first, repair, mount.
           umount /mnt/5ton
           xfs_repair /mnt/5ton

4. run fdisk -l to see if the system can use it.
         Disk /dev/sda: 21.4 GB, 21474836480 bytes
         ......
         Disk /dev/sdb: 50000 GB, 5000002254720 bytes
         Disk /dev/sdb doesn't contain a valid partition table
         ....if error, attempt to repair bad superblocks on the drive
         fsck /dev/sda
 When it asks to repair blocks select yes by pressing 'y'

5. Check whole block device: sudo lsbl

6. Get UUID run sudo blkid /dev/sda

7. sudo nano /etc/fstab 

   add followings;
   UUID=d90e3189-12cd-4d16-8fe9-cf362b5f267d /disk2 xfs defaults 1

if doesn't start after reboot;
(UUID=c853a0fe-93fc-4df1-9b08-1429055b451b /disk2 auto nofail,rw,user,errors=remount-ro 0 0)
Save and close the file. 

8.  sudo mkdir /home/disk2
    sudo mount -t xfs /dev/sda /home/disk2

    sudo umount /dev/sda (change /etc/fstab )

9. cat /etc/fstab
Verification
sudo df

systemctl daemon-reload
reboot
================================================

Summing up

Step 1 – Get information about block device
lsblk
lsblk --fs

Step 2 – Print UUID for Linux block device
    sudo blkid /dev/sda

Step 3 – Edit /etc/fstab to mount partitions using UUID

sudo nano /etc/fstab
And update it as follows to mount the /dev/sdb at /disk2/ directory using UUID:
UUID=d90e3189-12cd-4d16-8fe9-cf362b5f267d /disk2 xfs defaults 1
sudo mount -a

Step 4 – Verification
      run sudo df

That's it.

Webmin

sudo apt -y install curl
curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh
sh setup-repos.sh
apt -y install webmin --install-recommends
sudo nano /etc/hosts
 127.0.0.1           localhost
 255.255.255.255     broadcasthost
 ::1                 localhost
 123.123.123.123     dallas.riverfire.net www.dallas.riverfire.net

Remove Apache2

sudo apt remove apache2 apache2-utils
sudo apt autoremove apache2 apache2-utils
whereis apache2
  sudo rm -r /usr/sbin/apache2 /usr/lib/apache2 

Adminer Installation

- Posted in Server Configuration by

  1. To install Adminer, execute the following command: sudo apt install adminer sudo a2enconf php*-fpm sudo a2enconf adminer sudo systemctl restart apache2 systemctl reload apache2 Now you can access Adminer at http:YourServerIPAddress/adminer:

  2. mkdir /var/www/ashburn/adminer wget "http://www.adminer.org/latest.php" -O /var/www/ashburn/adminer/adminer.php chown -R www-data:www-data /var/www/ashburn/adminer/adminer.php chmod 755 /var/www/ashburn/adminer/adminer.php cd /var/www/ashburn/adminer

    sudo apt install adminer exit sudo nano /etc/apache2/conf-available/adminer.conf add: Alias /adminer /usr/share/adminer/adminer/ sudo a2enconf adminer.conf sudo systemctl restart apache2

  3. sudo apt info adminer sudo apt install adminer sudo systemctl status apache2 if you want to secure, add more passwd; sudo htpasswd -B -c /etc/adminer/.htpasswd adminer sudo nano /etc/apache2/conf-available/adminer.conf Alias /adminer /etc/adminer Require all granted DirectoryIndex conf.php

    add below to secure; AuthType Basic AuthName "Restricted Resource" AuthBasicProvider file AuthUserFile /etc/adminer/.htpasswd Require valid-user

    sudo a2enconf adminer.conf sudo apachectl configtest sudo systemctl restart apache2

adminer user setup

sudo mysql -u root -p
CREATE USER 'adminer'@'localhost' IDENTIFIED BY 'andibutt1986';
GRANT ALL PRIVILEGES ON *.* TO 'adminer'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
SELECT user,host FROM mysql.user;
EXIT
visit site /adminer

Install a Let's Encrypt Certificate


Certbot requires Snap. Install snapd and enable classic Snap support.
$ sudo apt install snapd
reboot

Install the core Snap to get the latest snapd.
$ sudo snap install core 

Update core Snap.
$ sudo snap refresh core 

Verify there are no Certbot packages installed with apt.
$ sudo apt remove certbot 

Install Certbot with Snap.
$ sudo snap install --classic certbot 

Link Certbot to /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot 

Request a certificate for your server. 
Replace the example email and domains your values. 

$ sudo certbot --nginx --agree-tos --redirect --email [email protected] -d example.com -d

Test your SSL configuration on an SSL check website like SSL Labs.

PHP Installation

sudo apt -y install php libapache2-mod-php php-mysql php-fpm
apt -y install libmcrypt-dev libreadline-dev mcrypt php-pear libapache2-mod-fcgid
sudo apt -y install software-properties-common
sudo apt -y install php-common php-mysql php-xml php-xmlrpc php-curl php-gd php-imagick php-cli
sudo apt -y install php-imap php-mbstring php-opcache php-soap php-dev php-cgi php-zip php-intl
sudo apt autoremove
php -v
sudo nano /etc/php8.2/fpm/php.ini
Uncomment cgi.fix_pathinfo and set it to "0". 
This is a security fix to disable PHP from finding the closes file if no match is found.
   cgi.fix_pathinfo=0
Restart PHP Processor
$ sudo service php5-fpm restart

PHP MyAdmin

wget -P Downloads https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-english.tar.gz
wget -P Downloads https://files.phpmyadmin.net/phpmyadmin.keyring
cd Downloads
gpg --import phpmyadmin.keyring
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-english.tar.gz.asc
gpg --verify phpMyAdmin-latest-english.tar.gz.asc

sudo mkdir /var/www/crunch/phpMyAdmin
sudo tar xvf phpMyAdmin-latest-english.tar.gz --strip-components=1 -C /var/www/html/crunch/phpmyadmin
sudo cp /var/www/html/crunch/phpmyadmin/config.sample.inc.php /var/www/html/crunch/phpmyadmin/config.inc.php
sudo nano /var/www/html/crunch/phpmyadmin/config.inc.php
  set blowfish passwd
sudo chmod 660 /var/www/html/crunch/phpmyadmin/config.inc.php
sudo chown -R www-data:www-data /var/www/html/crunch/phpmyadmin
sudo systemctl restart apache2 or nginx

MySql Installation

- Posted in Server Configuration by

Mysql Installation

$ apt install -y mariadb-server mariadb-client $ systemctl status mariadb $ mysql_secure_installation Set root password Remove anonymous users. Disable remote login for root user. Remove test database and access to it.

$ mysql -u root -p --Enter password: Maria DB [(none)]>

CREATE DATABASE crunch; CREATE USER 'crunch'@localhost IDENTIFIED BY 'password'; (check its status by entering: SELECT User FROM mysql.user;)

GRANT ALL PRIVILEGES ON . TO 'crunch'@localhost IDENTIFIED BY 'andibutt1986'; (GRANT ALL PRIVILEGES ON 'crunch'.* TO 'crunch'@localhost;)

FLUSH PRIVILEGES; SHOW GRANTS FOR 'crunch'@localhost;

SHOW DATABASES; Exit

DROP USER 'crunch'@localhost;

NGINX Installation

- Posted in Server Configuration by

General setup;

apt-get remove --purge apache2 apache2-utils
The second will delete the Apache2 directory:
rm -rf /etc/apache2
Now you are ready to install the LEMP software stack

Install the Nginx web server.
$ sudo apt-get install nginx -y 

Start the Nginx service.
$ sudo systemctl start nginx 

Enable the Nginx service to start at system reboot.
$ sudo systemctl enable nginx 

Check the Nginx version to verify the installation.
$ sudo nginx -v 

http://your_domain_or_IP
**Debian 12 ships with an older version of Nginx.**     

To install the latest version, you need to download Nginx repository.
Import Nginx's signing key.
        
 $ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ 
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
        
Add the repository for Nginx's stable version.
        
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \ 
http://nginx.org/packages/debian `lsb_release -cs` nginx" \ 
| sudo tee /etc/apt/sources.list.d/nginx.list
        
Update the system repositories.
$ sudo apt update
        
**Install Nginx.**        
$ sudo apt install nginx
        
Verify the installation. 
$ sudo nginx -v
    nginx version: nginx/1.24.0
        
Start Nginx.        
        $ sudo systemctl start nginx
        $ sudo systemctl status nginx
        
Create and open a test page for editing.
        $ sudo nano /var/www/html/example.com/index.php
        to your website...!

I. Create an Nginx Virtual Host---Tested, Good.

 Remove the default Nginx configuration.  
 $ sudo rm -rf   /etc/nginx/sites-enabled/default  
 $ sudo rm -rf   /etc/nginx/sites-available/default
        
 Create an Nginx virtual host configuration file. 
        Replace your-domain.com with your domain name.
    sudo mkdir /var/www/your_domain
    sudo chown -R $USER:$USER /var/www/your_domain

    $ sudo nano /etc/nginx/sites-available/your_domain
    In case, nginx sites-available folder not found 
    create the sites-available and sites-enabled folder 
     sudo mkdir /etc/nginx/sites-available 
    $ sudo mkdir /etc/nginx/sites-enabled 
    $ nano /etc/nginx/nginx.conf and add this line at the end 
    include /etc/nginx/sites-enabled/*; 
    Now, create a server configuration
    Paste this into the file. Replace example.com with your domain name.

    server {
      listen 80;
      server_name your domain;

      root /var/www/html/crunch;
      index index.php index.html index.nginx-debian.html;
      access_log /var/log/nginx/example_access.log;
      error_log /var/log/nginx/example_error.log;

      location / {
        try_files $uri $uri/ /index.php$is_args$args;
      }

      location ~ \.php$ {
        try_files $uri =404;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      }
     } 

    Enable the new Nginx configuration. Replace example.com with your domain name.
     $ sudo ln -s /etc/nginx/sites-available/crunch.riverfire.net /etc/nginx/sites-enabled/crunch.riverfire.net
    Reload the Nginx service.
     $ sudo systemctl reload nginx
    sudo service nginx restart
    nginx -t
    output:
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successf

    sudo systemctl restart nginx

II. Create another Nginx Virtual Host

 sudo mkdir /var/www/your_domain
 sudo chown -R $USER:$USER /var/www/your_domain
 sudo nano /etc/nginx/sites-available/your_domain
 This will create a new blank file. 
 Paste in the following bare-bones configuration:
 server {
    listen 80;
    listen [::]:80;
    root /var/www/your_domain;
    index index.php index.html index.htm;
    server_name your_domain;

    location / {
        try_files $uri $uri/ =404;
    }
 location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php-fpm.sock;
    }
}
Activate:
sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

Test:
sudo nginx -t

sudo systemctl reload nginx

III. Setting multiple hosts

Now that you have your main website up, setting up multiple virtual hosts is also possible.
Copy the default server block to create a second server block (virtual host)

$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/domain_name
$ sudo nano /etc/nginx/sites-available/domain_name
...
server {
  listen 80;
  listen [::]:80;
  root /var/www/domain_name/public;
  index index.php index.html index.htm;

  server_name domain_name;
  access_log /var/log/nginx/domain_name-access.log;
  error_log /var/log/nginx/domain_name-error.log;

  location / {
    try_files $uri $uri/ @mvcrewrite;
  }
  location @mvcrewrite {
    rewrite ^(.+)$ /index.php?url=$1 last;
  }
  error_page 404 /404.html;
  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
    root /usr/share/nginx/html;
  }
  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
  } 
  # deny access to .htaccess files to prevent conflict
  location ~ /\.ht {
    deny all;
  }
}

Sites must be activated at /etc/nginx/sites-enabled. 
To do this, simply create a symbolic link to sites-activated that you have just created earlier.
$ sudo ln -s /etc/nginx/sites-available/domain_name /etc/nginx/sites-enabled/domain_name
  sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
$ sudo service nginx restart
And that's it! Simply go to domain_name and nginx's server block will automatically direct 
your domain name to the relevant folders!

IV. Set an NGINX Site Configuration File

sudo mkdir -p /var/www/html/example.com/public_html
sudo cp /etc/nginx/sites-enabled/default /etc/nginx/sites-available/example.com.conf
nano /etc/nginx/sites-available/example.com.conf

server {

   listen         80;
   listen         [::]:80;
   server_name    example.com www.example.com;
   root           /var/www/html/example.com/public_html;
   index          index.html;

   location / {
     try_files $uri $uri/ =404;
   }

   location ~* \.php$ {
     fastcgi_pass unix:/run/php/php7.3-fpm.sock;
     include         fastcgi_params;
     fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
     fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
   }
}

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

sudo systemctl restart php7.3-fpm
sudo nginx -s reload
Test the NGINX configuration:
sudo nginx -t

General Installation

apt-get update --allow-releaseinfo-change
apt-get install --reinstall ca-certificates
apt-get upgrade -y
apt-get install nano wget perl sudo -y
sudo apt -y dist-upgrade
sudo apt --purge autoremove
sudo apt update && sudo apt upgrade
apt -y purge Apache2* bind* exim ufw
rm -rf /etc/apache2

Nginx

Install the Nginx web server.
$ sudo apt-get install nginx -y 

Start the Nginx service.
$ sudo systemctl start nginx 

Enable the Nginx service to start at system reboot.
$ sudo systemctl enable nginx 

Check the Nginx version to verify the installation.
$ sudo nginx -v 

http://your_domain_or_IP

UFW if want,

Configure the Firewall

List the available application profiles.
$ sudo ufw app list 

Among the other entries, you should see the following profiles

Nginx Full
Nginx HTTP
Nginx HTTPS
* The Nginx Full profile opens both HTTPS (443) and HTTP (80) ports.

The Nginx HTTP profile opens the HTTP (80) port only.
The Nginx HTTPS profile opens the HTTPS (443) port only.
Allow the Nginx Full profile in the firewall. 
Certbot requires ports 80 and 443 to install a Let's Encrypt TLS/SSL certificate.

$ sudo ufw allow 'Nginx Full'

Check the Firewall status.
$ sudo ufw status 

PHP Installation

 sudo apt -y install php libapache2-mod-php php-mysql php-fpm
apt -y install libmcrypt-dev libreadline-dev mcrypt php-pear libapache2-mod-fcgid
sudo apt -y install software-properties-common
sudo apt -y install php-common php-mysql php-xml php-xmlrpc php-curl php-gd php-imagick php-cli
sudo apt -y install php-imap php-mbstring php-opcache php-soap php-dev php-cgi php-zip php-intl
sudo apt autoremove
    php -v
    sudo nano /etc/php8.2/fpm/php.ini
    Uncomment cgi.fix_pathinfo and set it to "0". 
    This is a security fix to disable PHP from finding the closes file if no match is found.
       cgi.fix_pathinfo=0
    Restart PHP Processor
    $ sudo service php5-fpm restart

Create an Nginx Virtual Host---Tested, Good.

Remove the default Nginx configuration.
$ sudo rm -rf /etc/nginx/sites-enabled/default
$ sudo rm -rf /etc/nginx/sites-available/default   

Create an Nginx virtual host configuration file. 
Replace your-domain.com with your domain name.

sudo mkdir /var/www/your_domain
sudo chown -R $USER:$USER /var/www/your_domain

$ sudo nano /etc/nginx/sites-available/your_domain
In case, nginx sites-available folder not found 
create the sites-available and sites-enabled folder 
 sudo mkdir /etc/nginx/sites-available 
$ sudo mkdir /etc/nginx/sites-enabled 
$ nano /etc/nginx/nginx.conf and add this line at the end 
include /etc/nginx/sites-enabled/*; 
Now, create a server configuration

Paste this into the file. Replace example.com with your domain name.

server {
  listen 80;
  server_name your domain;

  root /var/www/html/crunch;
  index index.php index.html index.nginx-debian.html;
  access_log /var/log/nginx/example_access.log;
  error_log /var/log/nginx/example_error.log;

  location / {
    try_files $uri $uri/ /index.php$is_args$args;
  }

  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_pass unix:/run/php/php-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }
 } 

Enable the new Nginx configuration. Replace example.com with your domain name.

$ sudo ln -s /etc/nginx/sites-available/crunch.riverfire.net /etc/nginx/sites-enabled/crunch.riverfire.net
Reload the Nginx service.
 $ sudo systemctl reload nginx
sudo service nginx restart
nginx -t
output:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successf

sudo systemctl restart 

Mysql Installation

$ apt install -y mariadb-server mariadb-client
$ systemctl status mariadb
$ mysql_secure_installation
 Set root password
 Remove anonymous users.
 Disable remote login for root user.
 Remove test database and access to it.

$ mysql -u root -p --Enter password:

     Maria DB [(none)]>
     CREATE DATABASE crunch; 
     CREATE USER 'crunch'@localhost IDENTIFIED BY 'password';
       (check its status by entering: SELECT User FROM mysql.user;)

     GRANT ALL PRIVILEGES ON *.* TO 'crunch'@localhost IDENTIFIED  BY 'password';
       (GRANT ALL PRIVILEGES ON 'crunch'.* TO 'crunch'@localhost;) 

     FLUSH PRIVILEGES;
     SHOW GRANTS FOR 'crunch'@localhost; 
    SHOW DATABASES;
    Exit

DROP USER 'crunch'@localhost;

PHP MyAdmin

$ wget -P Downloads https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-english.tar.gz
wget -P Downloads https://files.phpmyadmin.net/phpmyadmin.keyring

cd Downloads
gpg --import phpmyadmin.keyring
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-english.tar.gz.asc
gpg --verify phpMyAdmin-latest-english.tar.gz.asc

sudo mkdir /var/www/crunch/phpMyAdmin
sudo tar xvf phpMyAdmin-latest-english.tar.gz --strip-components=1 -C /var/www/html/crunch/phpmyadmin
sudo cp /var/www/html/crunch/phpmyadmin/config.sample.inc.php /var/www/html/crunch/phpmyadmin/config.inc.php
sudo nano /var/www/html/crunch/phpmyadmin/config.inc.php
  set blowfish passwd
sudo chmod 660 /var/www/html/crunch/phpmyadmin/config.inc.php
sudo chown -R www-data:www-data /var/www/html/crunch/phpmyadmin
sudo systemctl restart apache2

Webmin

sudo apt -y install curl
curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh
sh setup-repos.sh
apt -y install webmin --install-recommends

General Installation

apt-get update --allow-releaseinfo-change
apt-get install --reinstall ca-certificates
apt-get upgrade -y
apt-get install nano wget perl sudo -y
sudo apt -y dist-upgrade
sudo apt --purge autoremove
sudo apt update && sudo apt upgrade
apt -y purge Apache2* bind* exim ufw

If want ufw;

apt install ufw -y
ufw allow http
ufw allow https
ufw allow ssh
ufw enable
ufw reload

Apache2

apt install -y apache2 apache2-utils
systemctl status apache2
mkdir /var/www/dallas
nano /var/www/dallas/index.php
chown -R www-data: /var/www/dallas/

Create own Apache virtualhost config to server your site;
#nano /etc/apache2/sites-available/dallas.conf

   <VirtualHost *:80>
    ServerName dallas.riverfire.net
    DocumentRoot /var/www/dallas
    <Directory /var/www/dallas>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/mywebsite_error.log
    CustomLog ${APACHE_LOG_DIR}/mywebsite_access.log combined
</VirtualHost>

$ apachectl -t
 --Syntax OK
$ a2ensite dallas.conf
$ a2dissite 000-default.conf  **//Very Important to do this!**
$ systemctl reload apache2
$ systemctl enable apache2
$ systemctl restart apache2
http://domain-name.

Mysql Installation

$ apt install -y mariadb-server mariadb-client
$ systemctl status mariadb
$ mysql_secure_installation
 Set root password
 Remove anonymous users.
 Disable remote login for root user.
 Remove test database and access to it.

$ mysql -u root -p --Enter password:

     Maria DB [(none)]>
     CREATE DATABASE crunch; 
     CREATE USER 'crunch'@localhost IDENTIFIED BY 'password';
       (check its status by entering: SELECT User FROM mysql.user;)

     GRANT ALL PRIVILEGES ON *.* TO 'crunch'@localhost IDENTIFIED  BY 'password';
       (GRANT ALL PRIVILEGES ON 'crunch'.* TO 'crunch'@localhost;) 

     FLUSH PRIVILEGES;
     SHOW GRANTS FOR 'crunch'@localhost; 
    SHOW DATABASES;
    Exit

DROP USER 'crunch'@localhost;

PHP Installation

sudo apt -y install php libapache2-mod-php php-mysql php-fpm
apt -y install libmcrypt-dev libreadline-dev mcrypt php-pear libapache2-mod-fcgid
sudo apt -y install software-properties-common
sudo apt -y install php-common php-mysql php-xml php-xmlrpc php-curl php-gd php-imagick php-cli
sudo apt -y install php-imap php-mbstring php-opcache php-soap php-dev php-cgi php-zip php-intl
sudo apt -y install php-mcrypt php-pdo php-json php-simplexml php-bcmath php-snmp php-pspell 
sudo apt -y install php-enchant php-pear php-tidy unzip gcc php-ldap php-gmp
sudo apt autoremove
php -v
sudo nano /etc/php8.2/fpm/php.ini
    Uncomment cgi.fix_pathinfo and set it to "0". 
    This is a security fix to disable PHP from finding the closes file if no match is found.
       cgi.fix_pathinfo=0
    Restart PHP Processor
$ sudo service php5-fpm restart

PHP MyAdmin

$ wget -P Downloads https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-english.tar.gz
wget -P Downloads https://files.phpmyadmin.net/phpmyadmin.keyring

cd Downloads
gpg --import phpmyadmin.keyring
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-english.tar.gz.asc
gpg --verify phpMyAdmin-latest-english.tar.gz.asc

sudo mkdir /var/www/crunch/phpMyAdmin
sudo tar xvf phpMyAdmin-latest-english.tar.gz --strip-components=1 -C /var/www/html/crunch/phpmyadmin
sudo cp /var/www/html/crunch/phpmyadmin/config.sample.inc.php /var/www/html/crunch/phpmyadmin/config.inc.php
sudo nano /var/www/html/crunch/phpmyadmin/config.inc.php
  set blowfish passwd
sudo chmod 660 /var/www/html/crunch/phpmyadmin/config.inc.php
sudo chown -R www-data:www-data /var/www/html/crunch/phpmyadmin
sudo systemctl restart apache2

Webmin

sudo apt -y install curl
curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh
sh setup-repos.sh
apt -y install webmin --install-recommends