Used HP Smart Start to establish Raid1 Installed Ubuntu Server LTS 20.04 23/07/2021 Language: English Keyboard: English(US) English(US) - English(US,Alt,Intl) Network: enp3s4f1 IPv4 Subnet 192.168.2.0/24 Address 192.168.2.3 Gateway 192.168.2.1 Name Servers 203.109.191.1, 203.118.191.1, 203.96.152.4, 203.96.152.12, 8.8.8.8, 8.8.4.4 User: Name Kevin Name Server kgwebsite User Name kevin Password Installed OpenSSH Import keys No Installed Powershell Reboot $sudo passwd root Cntl-D # cd / # apt purge cloud-init -y # rm -Rf /etc/cloud # apt remove open-iscsi # apt autoclean && autoremove # reboot # apt install net-tools # ifconfig -a # apt install ntp # ntpq -p # mkdir /media/usb # apt install unzip zip usbmount gpm # apt install tasksel # systemctl enable --now mysql # systemctl enable --now apache2 # mysql -u root -p (entered pwd) Cntl-L (clear screen) # ufw app list # ufw allow in "Äpache" # ufw allow in "OpenSSH" # ufw status # ufw enable Browser: http://192.168.2.3 (output "Apache Default Page" # reboot # nano /etc/sysctl.conf (Lookout for 100's of "i2c i2c-1 sendbytes" in console before log in) # Uncomment the following to stop low-level messages on console kernel.print = 3 4 1 3 Cntl-O Cntl-X # apt install mc Menu -> "Left -> Listing format" Enter User "full name:30 owner group perm space size space mtime space name" Menu "Options -> Panel options -> Auto Save Panels Setup" x F10 # nano /root/.screenrc "defscroll 5000" Browser helpful: https://computingforgeeks.com/how-to-install-drupal-cms-on-ubuntu-linux/ # service mysql status ("active (running)") # mysql_secure_installation VALIDATE PASSWORD no Enter root passwd Remove anonymous user yes Disallow root login remotely no Remove test databas yes Reload privilege tables yes All done exit # mysql -u root >UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root'; >FLUSH PRIVILEGES; >exit; # mysql_secure_installation VALIDATE PASSWORD no Enter root passwd All done exit # mysql -u root -p (entered pwd accepted) >REM DROP USER 'drupal'@'localhost'; >REM DROP DATABASE drupal; >CREATE DATABASE drupal; >CREATE USER 'drupal'@'localhost' IDENTIFIED BY 'Str0ngDrupaLP@SS'; >GRANT ALL ON drupal.* TO 'drupal'@'localhost'; >FLUSH PRIVILEGES; >exit; # cd /var/www # mkdir rescuerobot Windows Notepad++ ServerName rescuerobot.org ServerAlias www.rescuerobot.org ServerAdmin admin@rescuerobot.org DocumentRoot /var/www/rescuerobot/web/ CustomLog ${APACHE_LOG_DIR}/access.log combined ErrorLog ${APACHE_LOG_DIR}/error.log Options Indexes FollowSymLinks AllowOverride All Require all granted RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] Menu -> Edit -> EOL Conversion (to Unix (LF) Saved rescuerobot.conf to USB stick # lsblk # mount /dev/sdb1 /media/usb # ls /media/usb # cp -av /media/usb/rescuerobot.conf /etc/apache2/sites-available # umount /media/usb # apt install php-{cli,fpm,json,common,mysql,zip,gd,intl,mbstring,curl,xml,pear,tidy,soap,bcmath,xmlrpc} # nano /etc/php/7.4/apache2/php.ini enter: memory_limit = 256M enter: date.timezone = Pacific/Auckland uncomment: extension = openssh extension = curl extension = gd2 extension = mbstring Cntl-O Cntl-X # a2enmod rewrite # apachectl -t # a2dismod mpm_event # a2enmod mpm_prefork # a2enmod php7.4 # a2ensite rescuerobot (must copy rescuerobot.conf to sites-enabled) # nano /etc/apache2/apache2.conf #Global configuration ServerName kgdomain.kgwebsite # a2dissite 000-default (check sites-available and sites-enabled) # apache2ctl configtest # systemctl restart apache2 # mkdir /var/www/rescuerobot/web # cp -av /media/usb/info.php /var/www/rescuerobot/web Browser: http://192.168.2.3/info.php (Works!) # rm -Rv /var/www/rescuerobot/* Windows Notepad++ kginstall Browser helpful: https://getcomposer.org/download/ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');" # cp -av /media/usb/kginstall /var/www # cd /var/www # ./kginstall # mkdir bin # cp -av composer.phar ./bin # ./bin/composer.phar create-project drupal/recommended-project:9.2.2 rescuerobot # ./bin/composer.phar require drush/drush # mkdir /var/www/rescuerobot/web/sites/default/files # chmod drwxrwxr-x files # cp -av default.settings.php settings.php Browser: http://192.168.2.3/core/install.php (resolve Requirements problem: e.g. File System) find small link/button at bottom of the web page "Try again" # cd /var/www/rescuerobot # chown -R root:www-data . "Try again" Install completed. None of the above is guaranteed to be correct and complete. The mysql script has been modified to run on mysql 8. Please treat this article as a guide. Any advice or corrections would be much appreciated. Kevin.