setup.sh (2348B)
1 #!/bin/bash 2 # This file is in the public domain. 3 4 MYSQL_ROOT_PASSWORD="Password123!" 5 JOOMLADB_PASSWORD="Password123!" 6 WEBSITE="tim-leibacher.ch" 7 NAME="tim-leibacher" 8 #exec 2> error 1> mylog 9 10 11 12 sudo apt update && sudo apt upgrade -y 13 14 echo "Installing apache2" 15 16 sudo apt install apache2 -y 17 sudo systemctl start apache2 18 sudo systemctl enable apache2 19 20 21 echo "installing php" 22 23 sudo apt install php libapache2-mod-php php-dev php-bcmath php-intl php-soap php-zip php-curl php-mbstring php-mysql php-gd php-xml -y 24 25 #Recommended settings from Joomla 26 sudo sed -i "s/memory_limit = .*/memory_limit = 512M/" /etc/php/7.2/fpm/php.ini 27 sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 128M/" /etc/php/7.2/fpm/php.ini 28 sudo sed -i "s/post_max_size = .*/post_max_size = 128M/" /etc/php/7.2/fpm/php.ini 29 sudo sed -i "s/max_execution_time = .*/max_execution_time = 3000/" /etc/php/7.2/fpm/php.ini 30 31 echo "installing mariadb" 32 33 sudo apt install mariadb-server -y 34 systemctl start mariadb 35 systemctl enable mariadb 36 37 38 create_DB="CREATE DATABASE IF NOT EXISTS joomla;" 39 create_USER="CREATE USER IF NOT EXISTS 'joomla_user'@'localhost' IDENTIFIED BY '$JOOMLADB_PASSWORD';" 40 privilege="GRANT ALL ON joomla.* TO 'joomla_user'@'localhost';" 41 flushDB="FLUSH PRIVILEGES;" 42 43 sudo mysql -e "$create_DB" 44 sudo mysql -e "$create_USER" 45 sudo mysql -e "$privilege" 46 sudo mysql -e "$flushDB" 47 48 49 echo "download Joomla" 50 cd /var/tmp 51 52 sudo wget -N https://downloads.joomla.org/cms/joomla4/4-2-0/Joomla_4-2-0-Stable-Full_Package.tar.gz 53 sudo mkdir -p /var/www/html/$WEBSITE 54 sudo tar -vxf Joomla_4-2-0-Stable-Full_Package.tar.gz -C /var/www/html/$WEBSITE 55 56 sudo chown -R www-data:www-data /var/www/html/$WEBSITE/ 57 58 59 60 echo "<VirtualHost *:80> 61 62 ServerAdmin webmaster@$WEBSITE 63 64 ServerName $WEBSITE 65 ServerAlias www.$WEBSITE 66 DocumentRoot /var/www/html/$WEBSITE 67 68 <Directory /var/www/html/$WEBSITE/> 69 Options FollowSymlinks 70 AllowOverride All 71 Require all granted 72 </Directory> 73 74 ErrorLog ${APACHE_LOG_DIR}/${WEBSITE}_error.log 75 CustomLog ${APACHE_LOG_DIR}/${WEBSITE}_access.log combined 76 77 </VirtualHost>" > /etc/apache2/sites-available/$NAME.conf 78 79 echo "Listen 80 80 81 <IfModule ssl_module> 82 Listen 443 83 </IfModule ssl_module> 84 85 <IfModule mod_gnutls.c> 86 Listen 443 87 </IfModule mod_gnutls.c> 88 " > /etc/apache2/ports.conf 89 90 91 sudo a2ensite $NAME.conf 92 sudo systemctl restart apache2