Fix installer bugs: broken root checks, PHP version mismatches, dead paths

- Replace $EUID with $(id -u) for root checks across all bin/*.sh and
  install.sh: dash (Debian's /bin/sh) never sets $EUID, so the check was
  silently broken everywhere.
- lemp.sh: make apt-get upgrade non-interactive (--yes), align the Redis
  PHP module and php-fpm restart with $PHP_VERSION instead of a hardcoded
  8.1, and template the nginx PHP-FPM socket path via a PHP_FPM_SOCK
  placeholder substituted at install time.
- nginx-phpmyadmin.conf: fix docroot to match the actual phpMyAdmin
  symlink location created by lemp.sh.
- mysql-db.sh: inline the root check instead of sourcing the
  nonexistent bin/checkroot.sh.
- webhook.sh: fix chowm typo (chown).
- urbackup.sh: copy the systemd unit from assets/ instead of a relative
  path to a file that doesn't exist in the repo.
- _addUserSite.sh: fix invalid `$var=value` assignment and an empty
  if-block that was a POSIX sh syntax error.

Also carries over pending fixes to deploy-drupal.sh (drush now
invoked via vendor/bin/drush) and gitbarrerepos.sh (comment cleanup).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-04 09:28:08 +02:00
co-authored by Claude Sonnet 5
parent 5b11d25859
commit 7ff4df1173
23 changed files with 40 additions and 34 deletions
+1 -1
View File
@@ -53,7 +53,7 @@ server {
# pass PHP scripts to FastCGI server # pass PHP scripts to FastCGI server
location ~ \.php$ { location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_pass unix:/run/php/PHP_FPM_SOCK;
fastcgi_index index.php; fastcgi_index index.php;
include fastcgi_params; include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+5 -5
View File
@@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
echo "updating drupal 8" echo "updating drupal"
echo "Switching to project docroot." echo "Switching to project docroot."
cd ./public_html cd ./public_html
echo "" echo ""
@@ -9,18 +9,18 @@ git pull --ff-only origin prod
git submodule update --init --recursive git submodule update --init --recursive
echo "" echo ""
echo "Clearing drush caches." echo "Clearing drush caches."
drush cache-clear drush vendor/bin/drush cache-clear drush
echo "" echo ""
echo "Composer install." echo "Composer install."
composer install --no-dev composer install --no-dev
echo "" echo ""
echo "Running database updates." echo "Running database updates."
drush updb -y vendor/bin/drush updb -y
echo "" echo ""
echo "Importing configuration." echo "Importing configuration."
drush config-import -y vendor/bin/drush config-import -y
echo "" echo ""
echo "Clearing caches." echo "Clearing caches."
drush cr vendor/bin/drush cr
echo "" echo ""
echo "Deployment complete." echo "Deployment complete."
+2 -2
View File
@@ -2,7 +2,7 @@ server {
listen 80; listen 80;
location /phpmyadmin { location /phpmyadmin {
# server_name phpmyadmin.idroot.net; # server_name phpmyadmin.idroot.net;
root /var/www/phpmyadmin; root /var/www/html;
index index.php; index index.php;
@@ -22,7 +22,7 @@ server {
} }
location ~ \.php$ { location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.2-fpm.sock; fastcgi_pass unix:/run/php/PHP_FPM_SOCK;
fastcgi_index index.php; fastcgi_index index.php;
include fastcgi_params; include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+3 -1
View File
@@ -111,7 +111,7 @@ do
echo -n "confirm password" echo -n "confirm password"
read passwdb read passwdb
if [ "$passwda" = "$passwdb" ]; then if [ "$passwda" = "$passwdb" ]; then
$_pswd=$passwda _pswd=$passwda
passok=1 passok=1
else else
echo "pass words don't match, please try again" echo "pass words don't match, please try again"
@@ -119,8 +119,10 @@ do
done done
if [ "$passok" = 1 ]; then if [ "$passok" = 1 ]; then
# TODO: not implemented yet, run manually for now:
# mysql> create user '$_dbname'@'localhost' identified by '$_pswd'; # mysql> create user '$_dbname'@'localhost' identified by '$_pswd';
# mysql> create database $_dbname; # mysql> create database $_dbname;
# mysql> grant all privileges on esadhar_eval.* to 'esadhar_eval'@'localhost'; # mysql> grant all privileges on esadhar_eval.* to 'esadhar_eval'@'localhost';
# mysql> flush privileges; # mysql> flush privileges;
:
fi fi
+1 -1
View File
@@ -11,7 +11,7 @@ echo -e '\033[35m
# https://www.howtoforge.com/how-to-configure-automatic-updates-on-debian-wheezy # https://www.howtoforge.com/how-to-configure-automatic-updates-on-debian-wheezy
# https://www.bisolweb.com/tutoriels/serveur-vps-ovh-partie-5-installation-apticron/ # https://www.bisolweb.com/tutoriels/serveur-vps-ovh-partie-5-installation-apticron/
if [ "$EUID" -ne 0 ]; then if [ "$(id -u)" -ne 0 ]; then
echo "Please run as root" echo "Please run as root"
exit exit
fi fi
+1 -1
View File
@@ -9,7 +9,7 @@ echo -e '\033[35m
\033[0m' \033[0m'
echo -e "\033[35;1mEnable mail sending for php \033[0m" echo -e "\033[35;1mEnable mail sending for php \033[0m"
if [ "$EUID" -ne 0 ]; then if [ "$(id -u)" -ne 0 ]; then
echo "Please run as root" echo "Please run as root"
exit exit
fi fi
+1 -1
View File
@@ -11,7 +11,7 @@ echo -e '\033[35m
\033[0m' \033[0m'
echo -e "\033[35;1mInstalling fall2ban \033[0m" echo -e "\033[35;1mInstalling fall2ban \033[0m"
if [ "$EUID" -ne 0 ]; then if [ "$(id -u)" -ne 0 ]; then
echo "Please run as root" echo "Please run as root"
exit exit
fi fi
+1 -1
View File
@@ -11,7 +11,7 @@ echo -e '\033[35m
\033[0m' \033[0m'
echo -e "\033[35;1mInstalling ufw and setup firewall (allowing only ssh and http) \033[0m" echo -e "\033[35;1mInstalling ufw and setup firewall (allowing only ssh and http) \033[0m"
if [ "$EUID" -ne 0 ]; then if [ "$(id -u)" -ne 0 ]; then
echo "Please run as root" echo "Please run as root"
exit exit
fi fi
+1 -1
View File
@@ -10,7 +10,7 @@ echo -e '\033[35m
|_| |_| |_| |_| |_| |_|
\033[0m' \033[0m'
if [ "$EUID" -ne 0 ] if [ "$(id -u)" -ne 0 ]
then echo "Please run as root" then echo "Please run as root"
exit exit
fi fi
+2 -2
View File
@@ -110,10 +110,10 @@ if [ "$vh" = "yes" ]; then
cd /home/"$user"/git-repositories/"$_domain".git/hooks/ cd /home/"$user"/git-repositories/"$_domain".git/hooks/
chmod +x post-receive # pre-receive chmod +x post-receive # pre-receive
# setup git repo on site folder echo "setup git repo on site folder"
cd /home/"$user"/www/"$_domain"/public_html cd /home/"$user"/www/"$_domain"/public_html
su -c "git init" $user su -c "git init" $user
# link to the bare repo echo "link to the bare repo"
su -c "git remote add origin /home/$user/git-repositories/$_domain.git" $user su -c "git remote add origin /home/$user/git-repositories/$_domain.git" $user
chown -R "$user":"$user" /home/"$user"/www/"$_domain" chown -R "$user":"$user" /home/"$user"/www/"$_domain"
+1 -1
View File
@@ -11,7 +11,7 @@ echo -e '\033[35m
\033[0m' \033[0m'
echo -e "\033[35;1mInstalling knockd to control ssh port opening\033[0m" echo -e "\033[35;1mInstalling knockd to control ssh port opening\033[0m"
if [ "$EUID" -ne 0 ]; then if [ "$(id -u)" -ne 0 ]; then
echo "Please run as root" echo "Please run as root"
exit exit
fi fi
+6 -4
View File
@@ -10,7 +10,7 @@ echo -e '\033[35m
\033[0m' \033[0m'
echo -e "\033[35;1mLEMP server (Nginx Mysql Php-fpm) \033[0m" echo -e "\033[35;1mLEMP server (Nginx Mysql Php-fpm) \033[0m"
if [ "$EUID" -ne 0 ]; then if [ "$(id -u)" -ne 0 ]; then
echo "Please run as root" echo "Please run as root"
exit exit
fi fi
@@ -42,7 +42,7 @@ sleep 3
apt-get --yes install ca-certificates apt-transport-https software-properties-common curl lsb-release apt-get --yes install ca-certificates apt-transport-https software-properties-common curl lsb-release
curl -sSL https://packages.sury.org/php/README.txt | bash -x curl -sSL https://packages.sury.org/php/README.txt | bash -x
apt-get update && apt-get upgrade apt-get update && apt-get --yes upgrade
echo -e "\033[35;1mInstalling PHP \033[0m" echo -e "\033[35;1mInstalling PHP \033[0m"
sleep 3 sleep 3
@@ -103,6 +103,7 @@ sleep 3
apt-get --yes install nginx apt-get --yes install nginx
mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.ori mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.ori
cp "$_assets"/default.nginxconf /etc/nginx/sites-available/default cp "$_assets"/default.nginxconf /etc/nginx/sites-available/default
sed -i "s/PHP_FPM_SOCK/php${PHP_VERSION}-fpm.sock/g" /etc/nginx/sites-available/default
systemctl enable nginx systemctl enable nginx
systemctl restart nginx systemctl restart nginx
@@ -163,6 +164,7 @@ if [ "$installmysql" = "yes" ]; then
apt-get --yes install phpmyadmin apt-get --yes install phpmyadmin
ln -s /usr/share/phpmyadmin /var/www/html/ ln -s /usr/share/phpmyadmin /var/www/html/
cp "$_assets"/nginx-phpmyadmin.conf /etc/nginx/sites-available/phpmyadmin.conf cp "$_assets"/nginx-phpmyadmin.conf /etc/nginx/sites-available/phpmyadmin.conf
sed -i "s/PHP_FPM_SOCK/php${PHP_VERSION}-fpm.sock/g" /etc/nginx/sites-available/phpmyadmin.conf
echo -e "\033[92;1mphpMyAdmin installed\033[Om" echo -e "\033[92;1mphpMyAdmin installed\033[Om"
echo -e "\033[92;1mYou can access it at yourip/phpmyadmin\033[Om" echo -e "\033[92;1mYou can access it at yourip/phpmyadmin\033[Om"
@@ -192,7 +194,7 @@ echo -e '\033[35m
\033[0m' \033[0m'
echo -e "\033[35;1mInstalling Redis \033[0m" echo -e "\033[35;1mInstalling Redis \033[0m"
sleep 3 sleep 3
apt-get --yes install redis-server php8.1-redis apt-get --yes install redis-server php${PHP_VERSION}-redis
# TODO set maxmemory=2gb # TODO set maxmemory=2gb
# TODO set maxmemory-policy=volatile-lru # TODO set maxmemory-policy=volatile-lru
@@ -206,7 +208,7 @@ apt-get --yes install redis-server php8.1-redis
systemctl enable redis-server systemctl enable redis-server
systemctl restart redis-server systemctl restart redis-server
systemctl restart php8.1-fpm systemctl restart php${PHP_VERSION}-fpm
echo -e "\033[92;1mRedis installed\033[Om" echo -e "\033[92;1mRedis installed\033[Om"
echo -e '\033[35m echo -e '\033[35m
+1 -1
View File
@@ -9,7 +9,7 @@ echo -e '\033[35m
\033[0m' \033[0m'
if [ "$EUID" -ne 0 ]; then if [ "$(id -u)" -ne 0 ]; then
echo "Please run as root" echo "Please run as root"
exit exit
fi fi
+4 -1
View File
@@ -9,7 +9,10 @@ echo -e '
echo -e "Create new mysql db and user (you will be asked a db name and a password)" echo -e "Create new mysql db and user (you will be asked a db name and a password)"
. bin/checkroot.sh if [ "$(id -u)" -ne 0 ]; then
echo "Please run as root"
exit
fi
sleep 3 sleep 3
+1 -1
View File
@@ -8,7 +8,7 @@ echo -e '\033[35m
|__/ |_| |_| |__/ |_| |_|
\033[0m' \033[0m'
if [ "$EUID" -ne 0 ]; then if [ "$(id -u)" -ne 0 ]; then
echo "Please run as root" echo "Please run as root"
exit exit
fi fi
+1 -1
View File
@@ -8,7 +8,7 @@ echo -e '\033[35m
|___/ |_| |___/ |_|
\033[0m' \033[0m'
if [ "$EUID" -ne 0 ]; then if [ "$(id -u)" -ne 0 ]; then
echo "Please run as root" echo "Please run as root"
exit exit
fi fi
+1 -1
View File
@@ -9,7 +9,7 @@ echo -e '\033[35m
/____/____/_/ /_/ /____/____/_/ /_/
\033[0m' \033[0m'
if [ "$EUID" -ne 0 ]; then if [ "$(id -u)" -ne 0 ]; then
echo "Please run as root" echo "Please run as root"
exit exit
fi fi
+1 -1
View File
@@ -10,7 +10,7 @@ echo -e '\033[35m
\____/_/ \____/_/ |_/_/ |_/_____/_____/ \____/_/ \____/_/ |_/_/ |_/_____/_____/
\033[0m' \033[0m'
if [ "$EUID" -ne 0 ]; then if [ "$(id -u)" -ne 0 ]; then
echo "Please run as root" echo "Please run as root"
exit exit
fi fi
+2 -3
View File
@@ -9,7 +9,7 @@ echo -e '\033[35m
|_| |_|
\033[0m' \033[0m'
if [ "$EUID" -ne 0 ]; then if [ "$(id -u)" -ne 0 ]; then
echo "Please run as root" echo "Please run as root"
exit exit
fi fi
@@ -81,8 +81,7 @@ ufw allow from "$_ip" to any port 35622
ufw allow from "$_ip" to any port 35623 ufw allow from "$_ip" to any port 35623
# install and enable systemd service # install and enable systemd service
# cp "$_assets"/urbackup.service /etc/systemd/system/ cp "$_assets"/urbackup.service /etc/systemd/system/urbackup.service
cp urbackupclientbackend-debian.service /etc/systemd/system/urbackup.service
chmod a+x /etc/systemd/system/urbackup.service chmod a+x /etc/systemd/system/urbackup.service
systemctl --system daemon-reload systemctl --system daemon-reload
+1 -1
View File
@@ -9,7 +9,7 @@ echo -e '\033[35m
\033[0m' \033[0m'
echo -e "\033[35;1mCreate new user (you will be asked a user name and a password) \033[0m" echo -e "\033[35;1mCreate new user (you will be asked a user name and a password) \033[0m"
if [ "$EUID" -ne 0 ]; then if [ "$(id -u)" -ne 0 ]; then
echo "Please run as root" echo "Please run as root"
exit exit
fi fi
+1 -1
View File
@@ -93,7 +93,7 @@ git --git-dir=/home/"$user"/git-repositories/"$_domain.git" remote add origin "$
cp -f "$_assets"/webhook-deploy.sh /home/"$user"/webhook-deploy-"$_id".sh cp -f "$_assets"/webhook-deploy.sh /home/"$user"/webhook-deploy-"$_id".sh
sed -i -r "s/DOMAIN/$_domain/g" /home/"$user"/webhook-deploy-"$_id".sh sed -i -r "s/DOMAIN/$_domain/g" /home/"$user"/webhook-deploy-"$_id".sh
sed -i -r "s/USER/$user/g" /home/"$user"/webhook-deploy-"$_id".sh sed -i -r "s/USER/$user/g" /home/"$user"/webhook-deploy-"$_id".sh
chowm $user:$user /home/"$user"/webhook-deploy-"$_id".sh chown $user:$user /home/"$user"/webhook-deploy-"$_id".sh
chmod +x /home/"$user"/webhook-deploy-"$_id".sh chmod +x /home/"$user"/webhook-deploy-"$_id".sh
# remove git bare repos hook # remove git bare repos hook
+1 -1
View File
@@ -9,7 +9,7 @@ echo -e '\033[35m
/____/\__,_/_.___/_.___/_/_/|_| /____/\__,_/_.___/_.___/_/_/|_|
\033[0m' \033[0m'
if [ "$EUID" -ne 0 ]; then if [ "$(id -u)" -ne 0 ]; then
echo "Please run as root" echo "Please run as root"
exit exit
fi fi
+1 -1
View File
@@ -15,7 +15,7 @@ echo -e '\033[35m
\033[0m' \033[0m'
echo -e "\033[35;1mThis script has been tested only on Linux Debian 10 \033[0m" echo -e "\033[35;1mThis script has been tested only on Linux Debian 10 \033[0m"
if [ "$EUID" -ne 0 ]; then if [ "$(id -u)" -ne 0 ]; then
echo "Please run as root" echo "Please run as root"
exit exit
fi fi