Apache2 PHP MariaDB Debian 10

Change Hostname, Update, Upgrade, Install Zip Unzip and VIM

#apt-get update -y
#apt-get upgrade -y
#nano /etc/hostname
#apt-get install zip -y #apt-get install unzip -y #apt-get install vim -y

Enable vim cut paste

If needed “Add Swap Memory on Debian 10”

If needed “Increase SSH Connection Timeout in Linux”

#vim /etc/ssh/sshd_config
ClientAliveInterval 1200
ClientAliveCountMax 3
#systemctl status sshd.service

Configure Iptables Firewall Rules

Set up iptables On Debian 8 Debian 9

 

For Debian 11 go to Iptables Debian 11 Bullseye configuration

Configure UFW Firewall Rules

Setup and Configure Fail2ban

Install Apache2

#apt install apache2 -y

Replace “AllowOverride None” to “AllowOverride All”

#vim /etc/apache2/apache2.conf

Enable and load mod_rewrite Apache2

#/usr/sbin/a2enmod rewrite
#/usr/sbin/a2enmod headers
#/usr/sbin/a2enmod expires

Install MariaDB

#apt install mariadb-server -y
#mysql_secure_installation

Instal PHP

#apt install php libapache2-mod-php php-mysql php-gd -y

Note: If you plan to host a WordPress server, install additional PHP modules

#apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip -y

Check PHP Version to install Addons

#php -v
PHP 7.3.31-1~deb10u1 (cli) (built: Oct 24 2021 15:18:08) ( NTS )

Important to Install PHP GD Addons

#apt-get install php7.3-gd -y

Increase PHP Upload and Post Size by modified php.ini file

Find php.ini file by create phpinfo.php code below at /var/www/html

<?php phpinfo();?>

The find php.ini located by open the phpinfo.php at http://website/php.php

Open the php.ini file in the text editor. for example

#vim /etc/php/7.4/apache2/php.ini

Search for upload_max_filesize variable and specify with size below

upload_max_filesize = 128M

Search for post_max_size variable and specify with size below  (Basically it same as upload_max_filesize variable value)

post_max_size = 128M

Once done, save the modified php.ini file and restart the server.

Install Postfix for email

#apt-get purge --auto-remove exim4
#apt-get install postfix libsasl2-modules ca-certificates mailutils -y

If needed configure Crontab job auto restart server on memory low 

Install SSL Certificate

SSL test on Qualys SSL Labs Rating A Configuration

Activate HTTP/2 protocol on default-ssl.conf

Insert Protocols h2 h2c http/1.1 after on /etc/apache2/sites-available/default-ssl.conf

#vim /etc/apache2/sites-available/default-ssl.conf

Then follow the command below

#/usr/sbin/a2enmod ssl
#/usr/sbin/a2enmod http2
#/usr/sbin/a2ensite default-ssl
#systemctl restart apache2
#service restart apache2