v1.05 Support for Ubuntu Server added. Only tested on 24.04 LTS...

This commit is contained in:
ZAKS Web 2025-05-13 22:08:43 +02:00
parent b21d912173
commit 034d6c7e60
2 changed files with 42 additions and 21 deletions

View File

@ -1 +1 @@
1.04 1.05

View File

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
INSTALLERVERSION="1.04" INSTALLERVERSION="1.05"
if [[ $(whoami) != "root" ]]; then if [[ $(whoami) != "root" ]]; then
echo "You must be root to run this script!" echo "You must be root to run this script!"
@ -988,15 +988,33 @@ declare PHPTIMEZONE
declare TURNPASS declare TURNPASS
eval $(grep '^PRETTY_NAME=' /etc/os-release) eval $(grep '^PRETTY_NAME=' /etc/os-release)
eval $(grep '^ID=' /etc/os-release)
eval $(grep '^VERSION_ID=' /etc/os-release)
eval $(grep '^NAME=' /etc/os-release)
NAME_AND_VERSION="$NAME $VERSION_ID"
if [[ "$PRETTY_NAME" != "Debian GNU/Linux 12 (bookworm)" ]]; then TESTED_ON=("Debian GNU/Linux 12" "Ubuntu 24.04")
TESTED=false
for ((n=0; n<${#TESTED_ON[@]}; n++)); do
if [[ "${TESTED_ON[$n]}" == "$NAME_AND_VERSION" ]]; then
TESTED=true
n=${#TESTED_ON[@]}
fi
done
if [[ "$TESTED" == false ]]; then
echo "Your installed distro is $PRETTY_NAME" echo "Your installed distro is $PRETTY_NAME"
echo echo
echo "This installer script has only been tested on Debian GNU/Linux 12 (bookworm)" echo "This installer script has only been tested on:"
echo "but it should work on any Debian based distro such as Ubuntu." for ((n=0; n<${#TESTED_ON[@]}; n++)); do
echo " ${TESTED_ON[$n]}"
done
echo "but it should work on any Debian or Ubuntu based distro."
echo echo
echo "Any distro that is not Debian based may result in a complete failure of the" echo "Any distro that is not Debian or Ubuntu based may result in"
echo "installation process." echo "a complete failure of the installation process."
echo echo
echo "Press ENTER to continue or CTRL+C to exit..." echo "Press ENTER to continue or CTRL+C to exit..."
read input read input
@ -1122,7 +1140,7 @@ p=$(head -1 position.temp)
if [[ $p -lt 2 ]]; then if [[ $p -lt 2 ]]; then
decho "[Step $((p+1))] Installing tools needed to complete the installation... [Current Runtime: $(showTimer $SECONDS)]" decho "[Step $((p+1))] Installing tools needed to complete the installation... [Current Runtime: $(showTimer $SECONDS)]"
apt -y install wget curl rsync screen wget sudo unzip jq > /dev/null 2>> "$oldpath/installer-errors.log" || failMsg "apt failed to install dependancies..." apt -y install wget curl rsync screen wget sudo unzip jq cron nano > /dev/null 2>> "$oldpath/installer-errors.log" || failMsg "apt failed to install dependancies..."
((p++)) ((p++))
echo "$p" > position.temp echo "$p" > position.temp
fi fi
@ -1148,6 +1166,10 @@ fi
if [[ $p -lt 4 ]]; then if [[ $p -lt 4 ]]; then
decho "[Step $((p+1))] Installing Apache2 and Certbot for Let's Encrypt... [Current Runtime: $(showTimer $SECONDS)]" decho "[Step $((p+1))] Installing Apache2 and Certbot for Let's Encrypt... [Current Runtime: $(showTimer $SECONDS)]"
if [[ $ID == "ubuntu" ]]; then
decho "You are running Ubuntu so we must add Sury Apache2 Repo..."
LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/apache2 || failMsg "Sury Apache2 Repo failed to add to Ubuntu..."
fi
apt -y install apache2 certbot python3-certbot-apache > /dev/null 2>> "$oldpath/installer-errors.log" || failMsg "apt failed to install Apache2 and Certbot..." apt -y install apache2 certbot python3-certbot-apache > /dev/null 2>> "$oldpath/installer-errors.log" || failMsg "apt failed to install Apache2 and Certbot..."
((p++)) ((p++))
echo "$p" > position.temp echo "$p" > position.temp
@ -1256,8 +1278,12 @@ if [[ $p -lt 11 ]]; then
fi fi
if [[ $p -lt 12 ]]; then if [[ $p -lt 12 ]]; then
decho "[Step $((p+1))] Adding Sury PHP Repo to Debian... [Current Runtime: $(showTimer $SECONDS)]" decho "[Step $((p+1))] Adding Sury PHP Repo to $NAME... [Current Runtime: $(showTimer $SECONDS)]"
curl -sSL https://packages.sury.org/php/README.txt | bash -x > /dev/null 2>> "$oldpath/installer-errors.log" || failMsg "Sury PHP Repo failed to add to Debian..." if [[ $ID="ubuntu" ]]; then
LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php || failMsg "Sury PHP Repo failed to add to Ubuntu..."
else
curl -sSL https://packages.sury.org/php/README.txt | bash -x > /dev/null 2>> "$oldpath/installer-errors.log" || failMsg "Sury PHP Repo failed to add to Debian..."
fi
apt update > /dev/null 2>> "$oldpath/installer-errors.log" || failMsg "apt failed to download Sury repo data..." apt update > /dev/null 2>> "$oldpath/installer-errors.log" || failMsg "apt failed to download Sury repo data..."
((p++)) ((p++))
echo "$p" > position.temp echo "$p" > position.temp
@ -1349,20 +1375,9 @@ if [[ $p -lt 21 ]]; then
cp config.php config.original cp config.php config.original
fi fi
cd .. cd ..
#line=$(grep -n -m1 "0 => 'localhost'," config.original | cut -d: -f1)
#headlines=$((line-1))
#length=$(cat config.original | wc -l)
#taillines=$((length-line))
#head -n $headlines config.orginal > config.php 2>> "$oldpath/installer-errors.log" && echo " 0 => '$FQDN'," >> config.php 2>> "$oldpath/installer-errors.log" && echo " 1 => 'localhost'," >> config.php 2>> "$oldpath/installer-errors.log" && tail -n $taillines config.original >> config.php 2>> "$oldpath/installer-errors.log" || failMsg "Failed to set trusted domains in config.php..."
sudo -u www-data php occ config:system:set trusted_domains 0 --value=$FQDN > /dev/null 2>> "$oldpath/installer-errors.log" || failMsg "Nextcloud failed to set $FQDN trusted domain..." sudo -u www-data php occ config:system:set trusted_domains 0 --value=$FQDN > /dev/null 2>> "$oldpath/installer-errors.log" || failMsg "Nextcloud failed to set $FQDN trusted domain..."
sudo -u www-data php occ config:system:set trusted_domains 1 --value=localhost > /dev/null 2>> "$oldpath/installer-errors.log" || failMsg "Nextcloud failed to set localhost as trusted domain..." sudo -u www-data php occ config:system:set trusted_domains 1 --value=localhost > /dev/null 2>> "$oldpath/installer-errors.log" || failMsg "Nextcloud failed to set localhost as trusted domain..."
sudo -u www-data php occ config:system:set overwrite.cli.url --type=string --value=https://$FQDN > /dev/null 2>> "$oldpath/installer-errors.log" || failMsg "Nextcloud failed to set overwrite.cli.url..." sudo -u www-data php occ config:system:set overwrite.cli.url --type=string --value=https://$FQDN > /dev/null 2>> "$oldpath/installer-errors.log" || failMsg "Nextcloud failed to set overwrite.cli.url..."
#sed -i "s|'overwrite\.cli\.url' => 'http://localhost'|'overwrite.cli.url' => 'https://$FQDN'|" config.php > /dev/null 2>> "$oldpath/installer-errors.log" || failMsg "Failed to set overwrite.cli.url in config.php..."
#cd ..
sudo -u www-data php occ config:system:set maintenance_window_start --type=integer --value=1 > /dev/null 2>> "$oldpath/installer-errors.log" || failMsg "Nextcloud failed to set maintenance window..." sudo -u www-data php occ config:system:set maintenance_window_start --type=integer --value=1 > /dev/null 2>> "$oldpath/installer-errors.log" || failMsg "Nextcloud failed to set maintenance window..."
( crontab -u www-data -l 2>/dev/null; echo '*/5 * * * * php -f /var/www/nextcloud/cron.php' ) | crontab -u www-data - || failMsg "Failed to setup crontab..." ( crontab -u www-data -l 2>/dev/null; echo '*/5 * * * * php -f /var/www/nextcloud/cron.php' ) | crontab -u www-data - || failMsg "Failed to setup crontab..."
sudo -u www-data php occ background:cron > /dev/null 2>> "$oldpath/installer-errors.log" || failMsg "Nextcloud failed to activate cron for background jobs..." sudo -u www-data php occ background:cron > /dev/null 2>> "$oldpath/installer-errors.log" || failMsg "Nextcloud failed to activate cron for background jobs..."
@ -1407,6 +1422,7 @@ if [[ $p -lt 23 ]]; then
echo -n "MariaDB..." && systemctl restart mariadb.service > /dev/null 2>> "$oldpath/installer-errors.log" && echo "Success!" || failMsg "MariaDB failed to restart..." echo -n "MariaDB..." && systemctl restart mariadb.service > /dev/null 2>> "$oldpath/installer-errors.log" && echo "Success!" || failMsg "MariaDB failed to restart..."
echo -n "PHP-FPM..." && systemctl restart php8.3-fpm.service > /dev/null 2>> "$oldpath/installer-errors.log" && echo "Success!" || failMsg "PHP-FPM failed to restart..." echo -n "PHP-FPM..." && systemctl restart php8.3-fpm.service > /dev/null 2>> "$oldpath/installer-errors.log" && echo "Success!" || failMsg "PHP-FPM failed to restart..."
echo -n "Apache2..." && systemctl restart apache2.service > /dev/null 2>> "$oldpath/installer-errors.log" && echo "Success!" || failMsg "Apache2 failed to restart..." echo -n "Apache2..." && systemctl restart apache2.service > /dev/null 2>> "$oldpath/installer-errors.log" && echo "Success!" || failMsg "Apache2 failed to restart..."
echo -n "Cron..." && systemctl restart cron.service > /dev/null 2>> "$oldpath/installer-errors.log" && echo "Success!" || failMsg "Cron failed to restart..."
((p++)) ((p++))
echo "$p" > position.temp echo "$p" > position.temp
fi fi
@ -1439,6 +1455,11 @@ if [[ $p -lt 24 ]]; then
echo "Username: $NCADMIN" echo "Username: $NCADMIN"
echo "Password: $NCPASS" echo "Password: $NCPASS"
echo echo
echo "First attempt to login will give a session expired error. Second attempt will be"
echo "successful. Administration settings page may give an error about the Cron. Wait"
echo "five minutes, it only runs once every five minutes so give it some time and the"
echo "error will go away..."
echo
echo "A copy of the report has been copied to $NCADMIN's Files app for safe keeping." echo "A copy of the report has been copied to $NCADMIN's Files app for safe keeping."
echo echo
fi fi