sudo: command not found
After installation of Debian 10 and you try to install a package you might get the message: bash: sudo: command not found
To install sudo, run the following:
su
apt-get install sudo
Give the user the right to run sudo
usermod -aG sudo username
Log out the user to refresh the group permissions of the user
Reference: https://chewett.co.uk/blog/477/sudo-command-not-found-debian-fixed/
Install the firewall ufw on Debian
Run the package installer:
sudo apt-get install ufw
Enable the firewall
sudo ufw enable
Reference: https://www.tecmint.com/how-to-install-and-configure-ufw-firewall/
Install the Apache Web Server
Update the local package index to reflect the latest upstream changes:
sudo apt update
Install the apache2 package
sudo apt install apache2
Configure the firewall for port 80
sudo ufw allow in 'WWW Full'
On your local computer you can check ‘localhost’ in the browser to see if Apache is running.
To test the install from another computer find the IP address of the server with:
ip addr show
Reference: https://www.digitalocean.com/community/tutorials/how-to-install-the-apache-web-server-on-debian-9
Install MYSQL 8.0
MySQL 8.0 packages are available on the official MySQL Dev apt repository
sudo apt -y install wget
wget https://repo.mysql.com//mysql-apt-config_0.8.13-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb
sudo apt update
sudo apt -y install mysql-server
Reference: https://computingforgeeks.com/how-to-install-mysql-8-0-on-debian/
Install PHP7
sudo apt update
sudo apt upgrade
sudo apt install php libapache2-mod-php php-gd php-mysqlnd
Create a PHP Info page to see if it is all working.
sudo nano /var/www/html/info.php
Type in:
<?php phpinfo(); ?>
Enter ctrl+x, y and enter
In your browser go to your https://webserver/info.php
Install phpMyAdmin
Log in to MySQL
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
Update server’s package index
sudo apt update
sudo apt install php-mbstring php-zip php-gd
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gz
tar xvf phpMyAdmin-4.9.0.1-all-languages.tar.gz
sudo mv phpMyAdmin-4.9.0.1-all-languages/ /usr/share/phpmyadmin
sudo mkdir -p /var/lib/phpmyadmin/tmp
sudo chown -R www-data:www-data /var/lib/phpmyadmin
sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
sudo nano /usr/share/phpmyadmin/config.inc.php
Add a 32 character blowfish_secret
$cfg['blowfish_secret'] = 'RANDOMSTRINGHERE'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
At the bottom of the file add
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
Configuring Apache to Serve phpMyAdmin
Create new file
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Add the following code:
# phpMyAdmin default Apache configuration
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
<IfModule mod_php5.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
php_admin_value mbstring.func_overload 0
</IfModule>
<IfModule mod_php.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
php_admin_value mbstring.func_overload 0
</IfModule>
</Directory>
# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
<IfModule mod_authz_core.c>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/phpmyadmin/htpasswd.setup
</IfModule>
Require valid-user
</IfModule>
</Directory>
# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
Require all denied
</Directory>
sudo a2enconf phpmyadmin.conf
sudo systemctl reload apache2
Log into phpMyAdmin: https://localhost/phpmyadmin
Create database phpmyadmin
Click operations tab – follow links to create tables for phpmyadmin database
Source: https://www.digitalocean.com/community/tutorials/how-to-install-phpmyadmin-from-source-debian-10
Install VSTFTPD
sudo apt update
sudo apt install vsftpd
sudo nano /etc/vsftpd.conf
Set the following in the vsftpd.conf file:
anonymous_enable=NO
local_enable=YES
local umask=022
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
Add ufw exceptions
sudo ufw allow 20:21/tcp
sudo ufw allow 30000:31000/tcp
sudo systemctl restart vsftpd
Add the users that are allowed to access vsftpd to the vsftpd.userlist (one per line)
sudo nano /etc/vsftpd.user_list
The following is ONLY for dev environment
Add current user to group that owns /var/www/html folder
sudo usermod -a -G GROUPNAME USERNAME
Reboot system
Change group permissions to rwx
sudo chmod -R g+rwx /var/ww/html