First create a Digital Ocean Droplet with OS Ubuntu20.04, choose password login for SSH into droplet.
# apt update
# apt install unzip -y
# apt install curl -y
Install Apache & MySQL Server
# apt install apache2 -y
# apt install mysql-server -y
# mysql_secure_installation (it will ask you MySQL server login new password)
Set MySQL password for remote login
# mysql
SET ROOT LOGIN & PASSWORD
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘[MYSQL-PASSWORD]’;
mysql> FLUSH PRIVILEGES;
mysql> exit
# systemctl enable mysql
# systemctl enable apache2
Now you can login to MySQL using Password provided above.
# mysql -u root -p
# apt-get update
Install PHP 7.4 with some extensions used for CakePHP
# apt -y install software-properties-common
# add-apt-repository ppa:ondrej/php
# apt-get update
# apt -y install php7.4
Check PHP Version
# php -v
# apt install php7.4-common php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-curl php7.4-gd php7.4-imagick php7.4-cli php7.4-dev php7.4-imap php7.4-mbstring php7.4-opcache php7.4-soap php7.4-zip php7.4-intl php7.4-mcrypt -y
# nano /etc/apache2/mods-enabled/dir.conf (Add index.php in start)
# systemctl restart apache2
Make PHPInfo File
# vi /var/www/html/sv.php
Add <?php phpinfo(); ?> in above file
# apt install phpmyadmin -y
# cd /usr/share
# wget https://files.phpmyadmin.net/phpMyAdmin/4.9.4/phpMyAdmin-4.9.4-english.zip
# unzip phpMyAdmin-4.9.4-english.zip
# rm -rf /usr/share/phpmyadmin
# cp /usr/share/phpMyAdmin-4.9.4-english/config.sample.inc.php /usr/share/phpMyAdmin-4.9.4-english/config.inc.php
# vi /usr/share/phpMyAdmin-4.9.4-english/config.inc.php
Add “blowfish_secret” like below
/**
* This is needed for cookie based authentication to encrypt password in
* cookie. Needs to be 32 chars long.
*/
$cfg[‘blowfish_secret’] = ‘sdfksdpfk0985rmlkgmd9g089058kldfg0is-0d9f-0sdkgld,fpgd-f0g’; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
# mkdir /usr/share/phpMyAdmin-4.9.4-english/tmp
# chmod -R 0777 /usr/share/phpMyAdmin-4.9.4-english/tmp
# vi /etc/apache2/conf-available/phpmyadmin.conf
Add in phpmyadmin.conf file
>> Alias /pma /usr/share/phpMyAdmin-4.9.4-english
# service apache2 restart
Enable htaccess rewrite
# vi /etc/apache2/apache2.conf
Add “AllowOverride All” in /var/www block
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# a2enmod rewrite
# systemctl restart apache2
Install Composer
# cd ~
# curl -sS https://getcomposer.org/installer -o composer-setup.php
# sudo php composer-setup.php –install-dir=/usr/local/bin –filename=composer
# /usr/local/bin/composer -v
Install Free SSL
# apt install snapd
# sudo snap install core; sudo snap refresh core
# snap install –classic certbot
# ln -s /snap/bin/certbot /usr/bin/certbot
# cd /etc/apache2/sites-available
Make Virtual Host for your domain
# vi domain-name.com.conf
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName domain-name.com
ServerAlias www.domain-name.com
DocumentRoot /var/www/
ErrorLog ${APACHE_LOG_DIR}/domain_name_error.log
CustomLog ${APACHE_LOG_DIR}/domain_name_access.log combined<Directory /var/www/>
Options Indexes FollowSymLinks Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory></VirtualHost>
# a2ensite domain-name.com
# systemctl reload apache2
# certbot –apache -d domain-name.com
# echo $PATH
# nano /root/certbot.sh
>> certbot.sh for autorenew SSL
#!/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
sudo /usr/bin/certbot renew –quiet && systemctl reload apache2
# chmod 0777 /root/certbot.sh
# crontab -e
Add below line in Crontab file
15 3 * * * /root/certbot.sh
Web Server will be running here
https://domain-name.com/sv.php