diff --git a/ct/dispatcharr.sh b/ct/dispatcharr.sh index 09ecbcab1..ad8a98aa2 100644 --- a/ct/dispatcharr.sh +++ b/ct/dispatcharr.sh @@ -100,7 +100,7 @@ server { } } EOF - systemctl reload nginx + nginx_enable_site dispatcharr.conf msg_ok "Migrated Nginx Configuration" fi diff --git a/ct/feishin.sh b/ct/feishin.sh index dec1ece1b..be352a2d2 100644 --- a/ct/feishin.sh +++ b/ct/feishin.sh @@ -59,9 +59,7 @@ function update_script() { envsubst /etc/nginx/conf.d/settings.js envsubst '${PUBLIC_PATH}' /etc/nginx/sites-available/feishin - ln -sf /etc/nginx/sites-available/feishin /etc/nginx/sites-enabled/feishin - rm -f /etc/nginx/sites-enabled/default - systemctl restart nginx + nginx_enable_site feishin msg_ok "Published Web Assets" msg_ok "Updated successfully!" diff --git a/ct/paymenter.sh b/ct/paymenter.sh index 6eaee71f9..7059717e1 100644 --- a/ct/paymenter.sh +++ b/ct/paymenter.sh @@ -34,8 +34,9 @@ function update_script() { if [[ "$CURRENT_PHP" != "8.3" ]]; then PHP_VERSION="8.3" PHP_FPM="YES" setup_php setup_composer - sed -i 's|php8\.2-fpm\.sock|php8.3-fpm.sock|g' /etc/nginx/sites-available/paymenter.conf - $STD systemctl reload nginx + PHP_SOCK=$(get_php_fpm_socket) + sed -i "s|fastcgi_pass unix:.*|fastcgi_pass unix:${PHP_SOCK};|" /etc/nginx/sites-available/paymenter.conf + nginx_enable_site paymenter.conf fi if check_for_gh_release "paymenter" "paymenter/paymenter"; then diff --git a/ct/rackula.sh b/ct/rackula.sh index c0b15a9b9..0ee40b885 100755 --- a/ct/rackula.sh +++ b/ct/rackula.sh @@ -62,9 +62,9 @@ function update_script() { msg_ok "Updated Configuration" msg_info "Starting Services" - $STD nginx -t systemctl daemon-reload - systemctl start nginx rackula-api + nginx_enable_site rackula + systemctl start rackula-api msg_ok "Started Services" msg_ok "Updated successfully!" fi diff --git a/ct/romm.sh b/ct/romm.sh index eb05d2168..4391d2b4c 100644 --- a/ct/romm.sh +++ b/ct/romm.sh @@ -75,7 +75,7 @@ function update_script() { systemctl reload angie elif [[ -f /etc/nginx/sites-available/romm ]]; then sed -i "s|alias .*/library/;|alias ${ROMM_BASE}/library/;|" /etc/nginx/sites-available/romm - systemctl reload nginx + nginx_enable_site romm fi msg_ok "Updated ROMM" diff --git a/ct/sparkyfitness.sh b/ct/sparkyfitness.sh index 3bdce225b..310cb805a 100644 --- a/ct/sparkyfitness.sh +++ b/ct/sparkyfitness.sh @@ -93,7 +93,8 @@ EOF msg_ok "Refreshed SparkyFitness Service" msg_info "Starting Services" - $STD systemctl start sparkyfitness-server nginx + $STD systemctl start sparkyfitness-server + nginx_enable_site sparkyfitness msg_ok "Started Services" msg_ok "Updated successfully!" fi diff --git a/install/2fauth-install.sh b/install/2fauth-install.sh index 61c8377ae..8cd26faba 100644 --- a/install/2fauth-install.sh +++ b/install/2fauth-install.sh @@ -49,6 +49,7 @@ chmod -R 755 /opt/2fauth msg_ok "Setup 2fauth" msg_info "Configure Service" +PHP_SOCK=$(get_php_fpm_socket) cat </etc/nginx/conf.d/2fauth.conf server { listen 80; @@ -67,7 +68,7 @@ server { error_page 404 /index.php; location ~ \.php\$ { - fastcgi_pass unix:/var/run/php/php${PHP_VERSION}-fpm.sock; + fastcgi_pass unix:${PHP_SOCK}; fastcgi_param SCRIPT_FILENAME \$realpath_root\$fastcgi_script_name; include fastcgi_params; } diff --git a/install/affine-install.sh b/install/affine-install.sh index fda75258a..7b220a923 100644 --- a/install/affine-install.sh +++ b/install/affine-install.sh @@ -207,9 +207,7 @@ server { } } EOF -ln -sf /etc/nginx/sites-available/affine.conf /etc/nginx/sites-enabled/ -rm -f /etc/nginx/sites-enabled/default -systemctl enable -q --now nginx +nginx_enable_site affine.conf msg_ok "Configured Nginx" motd_ssh diff --git a/install/babybuddy-install.sh b/install/babybuddy-install.sh index 8f16c5432..9a1e4d959 100644 --- a/install/babybuddy-install.sh +++ b/install/babybuddy-install.sh @@ -89,10 +89,7 @@ server { } EOF -ln -sf /etc/nginx/sites-available/babybuddy /etc/nginx/sites-enabled/babybuddy -rm /etc/nginx/sites-enabled/default -systemctl enable -q --now nginx -service nginx reload +nginx_enable_site babybuddy msg_ok "Configured NGINX" motd_ssh diff --git a/install/bar-assistant-install.sh b/install/bar-assistant-install.sh index f7d4dc8c1..a92d8c8a3 100644 --- a/install/bar-assistant-install.sh +++ b/install/bar-assistant-install.sh @@ -73,6 +73,7 @@ $STD npm run build msg_ok "Installed Salt Rim" msg_info "Creating Service" +PHP_SOCK=$(get_php_fpm_socket) cat </etc/nginx/sites-available/barassistant.conf server { listen 80 default_server; @@ -126,7 +127,7 @@ server { error_page 404 /index.php; location ~ ^/index\.php(/|$) { - fastcgi_pass unix:/var/run/php/php$PHPVER-fpm.sock; + fastcgi_pass unix:${PHP_SOCK}; fastcgi_param SCRIPT_FILENAME \$realpath_root\$fastcgi_script_name; include fastcgi_params; fastcgi_hide_header X-Powered-By; @@ -148,9 +149,7 @@ server { } EOF -ln -s /etc/nginx/sites-available/barassistant.conf /etc/nginx/sites-enabled/ -rm -f /etc/nginx/sites-enabled/default -$STD systemctl reload nginx +nginx_enable_site barassistant.conf msg_ok "Created Service" motd_ssh diff --git a/install/checkmate-install.sh b/install/checkmate-install.sh index 9aaef3ec8..5094bdb1c 100644 --- a/install/checkmate-install.sh +++ b/install/checkmate-install.sh @@ -122,9 +122,7 @@ server { } } EOF -ln -sf /etc/nginx/sites-available/checkmate /etc/nginx/sites-enabled/checkmate -rm -f /etc/nginx/sites-enabled/default -$STD systemctl reload nginx +nginx_enable_site checkmate msg_ok "Configured Nginx Reverse Proxy" motd_ssh diff --git a/install/databasus-install.sh b/install/databasus-install.sh index da8bafaa0..56faeb178 100644 --- a/install/databasus-install.sh +++ b/install/databasus-install.sh @@ -185,11 +185,7 @@ server { } } EOF -ln -sf /etc/nginx/sites-available/databasus /etc/nginx/sites-enabled/databasus -rm -f /etc/nginx/sites-enabled/default -$STD nginx -t -$STD systemctl enable -q --now nginx -$STD systemctl reload nginx +nginx_enable_site databasus msg_ok "Configured Nginx" motd_ssh diff --git a/install/dawarich-install.sh b/install/dawarich-install.sh index d726edef4..ad0565a40 100644 --- a/install/dawarich-install.sh +++ b/install/dawarich-install.sh @@ -174,9 +174,7 @@ server { } } EOF -ln -sf /etc/nginx/sites-available/dawarich.conf /etc/nginx/sites-enabled/ -rm -f /etc/nginx/sites-enabled/default -systemctl enable -q --now nginx +nginx_enable_site dawarich.conf msg_ok "Configured Nginx" motd_ssh diff --git a/install/discourse-install.sh b/install/discourse-install.sh index ef3152ea6..04146a373 100644 --- a/install/discourse-install.sh +++ b/install/discourse-install.sh @@ -207,10 +207,7 @@ server { } } EOF -ln -sf /etc/nginx/sites-available/discourse /etc/nginx/sites-enabled/discourse -rm -f /etc/nginx/sites-enabled/default -$STD systemctl enable --now nginx -$STD systemctl reload nginx +nginx_enable_site discourse msg_ok "Configured Nginx" motd_ssh diff --git a/install/dispatcharr-install.sh b/install/dispatcharr-install.sh index f02b3c1b6..ed58f8d69 100644 --- a/install/dispatcharr-install.sh +++ b/install/dispatcharr-install.sh @@ -139,9 +139,7 @@ server { } } EOF -ln -sf /etc/nginx/sites-available/dispatcharr.conf /etc/nginx/sites-enabled/dispatcharr.conf -rm -f /etc/nginx/sites-enabled/default -systemctl restart nginx +nginx_enable_site dispatcharr.conf msg_ok "Configured Nginx" msg_info "Creating Services" diff --git a/install/espconnect-install.sh b/install/espconnect-install.sh index a87d1e122..a756689f1 100644 --- a/install/espconnect-install.sh +++ b/install/espconnect-install.sh @@ -46,11 +46,7 @@ server { } } EOF -ln -sf /etc/nginx/sites-available/espconnect /etc/nginx/sites-enabled/espconnect -rm -f /etc/nginx/sites-enabled/default -$STD nginx -t -systemctl enable -q nginx -systemctl restart nginx +nginx_enable_site espconnect msg_ok "Configured Nginx" motd_ssh diff --git a/install/excalidash-install.sh b/install/excalidash-install.sh index 8b9ed3d0a..3d3e34f1f 100644 --- a/install/excalidash-install.sh +++ b/install/excalidash-install.sh @@ -108,9 +108,7 @@ server { } } EOF -ln -sf /etc/nginx/sites-available/excalidash /etc/nginx/sites-enabled/excalidash -rm -f /etc/nginx/sites-enabled/default -systemctl reload nginx +nginx_enable_site excalidash msg_ok "Configured Nginx" msg_info "Creating Service" diff --git a/install/feishin-install.sh b/install/feishin-install.sh index 6a12898d0..ce537ef13 100644 --- a/install/feishin-install.sh +++ b/install/feishin-install.sh @@ -57,10 +57,7 @@ set +a envsubst /etc/nginx/conf.d/settings.js envsubst '${PUBLIC_PATH}' /etc/nginx/sites-available/feishin -ln -sf /etc/nginx/sites-available/feishin /etc/nginx/sites-enabled/feishin -rm -f /etc/nginx/sites-enabled/default -systemctl enable -q --now nginx -systemctl reload nginx +nginx_enable_site feishin msg_ok "Published Web Assets" motd_ssh diff --git a/install/geopulse-install.sh b/install/geopulse-install.sh index 96ee07fbd..585cbd1a1 100644 --- a/install/geopulse-install.sh +++ b/install/geopulse-install.sh @@ -178,10 +178,7 @@ server { error_log /var/log/geopulse/nginx/error.log; } EOF -ln -sf /etc/nginx/sites-available/geopulse.conf /etc/nginx/sites-enabled/ -rm -f /etc/nginx/sites-enabled/default -systemctl enable -q --now nginx -systemctl reload nginx +nginx_enable_site geopulse.conf msg_ok "Configured Nginx" msg_info "Creating Admin Helper" diff --git a/install/grav-install.sh b/install/grav-install.sh index 8b3c396cf..54e2ac48d 100644 --- a/install/grav-install.sh +++ b/install/grav-install.sh @@ -26,9 +26,7 @@ chown -R www-data:www-data /opt/grav msg_info "Configuring Nginx" PHP_VER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;') -PHP_FPM_SOCK=$(find /run/php -maxdepth 1 -name "php*-fpm.sock" -type s | sort -V | tail -1) -unlink /etc/nginx/sites-enabled/default -rm -f /etc/nginx/sites-available/default +PHP_FPM_SOCK=$(get_php_fpm_socket) cat </etc/nginx/sites-available/grav server { listen 80; @@ -99,11 +97,8 @@ server { } } EOF -ln -sf /etc/nginx/sites-available/grav /etc/nginx/sites-enabled/grav systemctl enable -q --now php${PHP_VER}-fpm -$STD nginx -t -systemctl enable -q --now nginx -$STD nginx -s reload +nginx_enable_site grav msg_ok "Configured Nginx" motd_ssh diff --git a/install/investbrain-install.sh b/install/investbrain-install.sh index bd678e654..c616592ff 100644 --- a/install/investbrain-install.sh +++ b/install/investbrain-install.sh @@ -115,6 +115,7 @@ chmod -R 775 /opt/investbrain/bootstrap/cache msg_ok "Installed Investbrain" msg_info "Configuring Nginx" +PHP_SOCK=$(get_php_fpm_socket) cat </etc/nginx/sites-available/investbrain.conf server { listen 8000 default_server; @@ -135,7 +136,7 @@ server { } location ~ \.php\$ { - fastcgi_pass unix:/var/run/php/php${PHP_VERSION}-fpm.sock; + fastcgi_pass unix:${PHP_SOCK}; fastcgi_param SCRIPT_FILENAME \$realpath_root\$fastcgi_script_name; include fastcgi_params; fastcgi_hide_header X-Powered-By; @@ -150,9 +151,7 @@ server { access_log /var/log/nginx/investbrain_access.log; } EOF -ln -sf /etc/nginx/sites-available/investbrain.conf /etc/nginx/sites-enabled/ -rm -f /etc/nginx/sites-enabled/default -$STD systemctl reload nginx +nginx_enable_site investbrain.conf msg_ok "Configured Nginx" msg_info "Setting up Supervisor" diff --git a/install/invoiceninja-install.sh b/install/invoiceninja-install.sh index cfd2379cb..77b07824f 100644 --- a/install/invoiceninja-install.sh +++ b/install/invoiceninja-install.sh @@ -110,6 +110,7 @@ chown -R www-data:www-data /opt/invoiceninja msg_ok "Set up Database" msg_info "Configuring Nginx" +PHP_SOCK=$(get_php_fpm_socket) cat <<'EOF' >/etc/nginx/sites-available/invoiceninja server { listen 8080; @@ -130,7 +131,7 @@ server { } location = /index.php { - fastcgi_pass unix:/run/php/php8.4-fpm.sock; + fastcgi_pass unix:__PHP_SOCK__; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; fastcgi_param HTTP_X_FORWARDED_HOST $http_host; @@ -151,9 +152,8 @@ server { } EOF -ln -sf /etc/nginx/sites-available/invoiceninja /etc/nginx/sites-enabled/ -rm -f /etc/nginx/sites-enabled/default -$STD systemctl reload nginx +sed -i "s|__PHP_SOCK__|${PHP_SOCK}|" /etc/nginx/sites-available/invoiceninja +nginx_enable_site invoiceninja msg_ok "Configured Nginx" msg_info "Setting up Queue Worker" diff --git a/install/invoiceshelf-install.sh b/install/invoiceshelf-install.sh index 657054f37..206f1d18c 100644 --- a/install/invoiceshelf-install.sh +++ b/install/invoiceshelf-install.sh @@ -56,10 +56,11 @@ msg_ok "Set up InvoiceShelf" msg_info "Configuring Caddy" PHP_VER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;') +PHP_SOCK=$(get_php_fpm_socket) cat </etc/caddy/Caddyfile :80 { root * /opt/invoiceshelf/public - php_fastcgi unix//run/php/php${PHP_VER}-fpm.sock + php_fastcgi unix/${PHP_SOCK} file_server encode gzip } diff --git a/install/kitchenowl-install.sh b/install/kitchenowl-install.sh index e2cea6cfa..a5f4e4ca4 100644 --- a/install/kitchenowl-install.sh +++ b/install/kitchenowl-install.sh @@ -86,7 +86,6 @@ systemctl enable -q --now kitchenowl msg_ok "Created and Started Service" msg_info "Configuring Nginx" -rm -f /etc/nginx/sites-enabled/default cat <<'EOF' >/etc/nginx/sites-available/kitchenowl.conf server { listen 80; @@ -134,9 +133,7 @@ server { } } EOF -ln -sf /etc/nginx/sites-available/kitchenowl.conf /etc/nginx/sites-enabled/ -rm -f /etc/nginx/sites-enabled/default -$STD systemctl reload nginx +nginx_enable_site kitchenowl.conf msg_ok "Configured Nginx" motd_ssh diff --git a/install/koel-install.sh b/install/koel-install.sh index 61da73722..f646c5bbf 100644 --- a/install/koel-install.sh +++ b/install/koel-install.sh @@ -129,6 +129,7 @@ $STD systemctl restart php8.4-fpm msg_ok "Tuned PHP-FPM" msg_info "Configuring Nginx" +PHP_SOCK=$(get_php_fpm_socket) cat <<'EOF' >/etc/nginx/sites-available/koel server { listen 80; @@ -156,7 +157,7 @@ server { location ~ \.php$ { try_files $uri $uri/ /index.php?$args; - fastcgi_pass unix:/run/php/php8.4-fpm.sock; + fastcgi_pass unix:__PHP_SOCK__; fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_intercept_errors on; @@ -171,9 +172,8 @@ server { } } EOF -rm -f /etc/nginx/sites-enabled/default -ln -sf /etc/nginx/sites-available/koel /etc/nginx/sites-enabled/koel -$STD systemctl reload nginx +sed -i "s|__PHP_SOCK__|${PHP_SOCK}|" /etc/nginx/sites-available/koel +nginx_enable_site koel msg_ok "Configured Nginx" msg_info "Setting up Cron Job" diff --git a/install/librenms-install.sh b/install/librenms-install.sh index a8002ee2f..171010a93 100644 --- a/install/librenms-install.sh +++ b/install/librenms-install.sh @@ -80,7 +80,7 @@ sed -i "s/listen = \/run\/php\/php8.4-fpm.sock/listen = \/run\/php-fpm-librenms. msg_ok "Configured PHP-FPM" msg_info "Configure Nginx" -cat </etc/nginx/sites-enabled/librenms +cat </etc/nginx/sites-available/librenms server { listen 80; server_name ${LOCAL_IP}; @@ -103,8 +103,7 @@ server { } } EOF -rm /etc/nginx/sites-enabled/default -$STD systemctl reload nginx +nginx_enable_site librenms systemctl restart php8.4-fpm msg_ok "Configured Nginx" diff --git a/install/linkding-install.sh b/install/linkding-install.sh index 9ab3e8e94..6ea8ea22e 100644 --- a/install/linkding-install.sh +++ b/install/linkding-install.sh @@ -115,10 +115,8 @@ server { } } EOF -$STD rm -f /etc/nginx/sites-enabled/default -$STD ln -sf /etc/nginx/sites-available/linkding /etc/nginx/sites-enabled/linkding -systemctl enable -q --now nginx linkding linkding-tasks -systemctl restart nginx +systemctl enable -q --now linkding linkding-tasks +nginx_enable_site linkding msg_ok "Created Services" motd_ssh diff --git a/install/lychee-install.sh b/install/lychee-install.sh index 29cbc7ddd..2ff544879 100644 --- a/install/lychee-install.sh +++ b/install/lychee-install.sh @@ -56,10 +56,11 @@ chown -R www-data:www-data /opt/lychee msg_info "Configuring Caddy" PHP_VER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;') +PHP_SOCK=$(get_php_fpm_socket) cat </etc/caddy/Caddyfile :80 { root * /opt/lychee/public - php_fastcgi unix//run/php/php${PHP_VER}-fpm.sock + php_fastcgi unix/${PHP_SOCK} file_server encode gzip } diff --git a/install/manyfold-install.sh b/install/manyfold-install.sh index 0a025b1cf..206dd1f59 100644 --- a/install/manyfold-install.sh +++ b/install/manyfold-install.sh @@ -134,9 +134,7 @@ server { } } EOF -ln -s /etc/nginx/sites-available/manyfold.conf /etc/nginx/sites-enabled/ -rm -f /etc/nginx/sites-enabled/default -$STD systemctl reload nginx +nginx_enable_site manyfold.conf msg_ok "Created Services" motd_ssh diff --git a/install/mastodon-install.sh b/install/mastodon-install.sh index f3cfd2876..b5640c602 100644 --- a/install/mastodon-install.sh +++ b/install/mastodon-install.sh @@ -262,12 +262,8 @@ server { } } EOF -ln -sf /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon -rm -f /etc/nginx/sites-enabled/default -$STD nginx -t systemctl enable -q --now redis-server -systemctl enable -q --now nginx -systemctl reload nginx +nginx_enable_site mastodon msg_ok "Configured Nginx" motd_ssh diff --git a/install/matomo-install.sh b/install/matomo-install.sh index 4e5b8df4e..ceaf08d6d 100644 --- a/install/matomo-install.sh +++ b/install/matomo-install.sh @@ -45,12 +45,13 @@ msg_ok "Set up Matomo" msg_info "Configuring Caddy" PHP_VER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;') +PHP_SOCK=$(get_php_fpm_socket) cat </etc/caddy/Caddyfile :80 { root * /opt/matomo @blocked path /config /config/* /tmp /tmp/* /.* /.*/* respond @blocked 403 - php_fastcgi unix//run/php/php${PHP_VER}-fpm.sock + php_fastcgi unix/${PHP_SOCK} file_server encode gzip } diff --git a/install/netboot-xyz-install.sh b/install/netboot-xyz-install.sh index e63f3de3f..8f87b5ebf 100644 --- a/install/netboot-xyz-install.sh +++ b/install/netboot-xyz-install.sh @@ -59,7 +59,6 @@ USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-multiarch-im USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "netboot-xyz-checksums" "netbootxyz/netboot.xyz" "singlefile" "latest" "/var/www/html" "netboot.xyz-sha256-checksums.txt" msg_info "Configuring Webserver" -rm -f /etc/nginx/sites-enabled/default cat <<'EOF' >/etc/nginx/sites-available/netboot-xyz server { listen 80 default_server; @@ -83,8 +82,7 @@ server { } } EOF -ln -sf /etc/nginx/sites-available/netboot-xyz /etc/nginx/sites-enabled/netboot-xyz -$STD systemctl reload nginx +nginx_enable_site netboot-xyz msg_ok "Configured Webserver" msg_info "Configuring TFTP Server" diff --git a/install/omnitools-install.sh b/install/omnitools-install.sh index f7f63ed7d..4e2968084 100755 --- a/install/omnitools-install.sh +++ b/install/omnitools-install.sh @@ -55,11 +55,7 @@ server { } EOF -ln -sf /etc/nginx/sites-available/omnitools /etc/nginx/sites-enabled/omnitools -rm -f /etc/nginx/sites-enabled/default -$STD nginx -t -systemctl enable -q --now nginx -systemctl reload nginx +nginx_enable_site omnitools msg_ok "Configured Nginx" motd_ssh diff --git a/install/ots-install.sh b/install/ots-install.sh index e6f1dff2e..83ccedab6 100644 --- a/install/ots-install.sh +++ b/install/ots-install.sh @@ -62,9 +62,7 @@ server { } EOF -ln -s /etc/nginx/sites-available/ots.conf /etc/nginx/sites-enabled/ -rm -f /etc/nginx/sites-enabled/default -$STD systemctl reload nginx +nginx_enable_site ots.conf msg_ok "Configured nginx" msg_info "Creating Services" diff --git a/install/paymenter-install.sh b/install/paymenter-install.sh index 3c1e071ad..aff545ca9 100644 --- a/install/paymenter-install.sh +++ b/install/paymenter-install.sh @@ -57,6 +57,7 @@ $STD php artisan app:user:create paymenter admin admin@paymenter.org paymenter 1 msg_ok "Created Admin User" msg_info "Configuring Nginx" +PHP_SOCK=$(get_php_fpm_socket) cat </etc/nginx/sites-available/paymenter.conf server { listen 80; @@ -72,7 +73,7 @@ server { location ~ \.php\$ { include snippets/fastcgi-php.conf; - fastcgi_pass unix:/var/run/php/php8.3-fpm.sock; + fastcgi_pass unix:${PHP_SOCK}; fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; include fastcgi_params; } @@ -82,9 +83,7 @@ server { } } EOF -ln -s /etc/nginx/sites-available/paymenter.conf /etc/nginx/sites-enabled/ -rm -f /etc/nginx/sites-enabled/default -$STD systemctl reload nginx +nginx_enable_site paymenter.conf chown -R www-data:www-data /opt/paymenter/* msg_ok "Configured Nginx" diff --git a/install/plane-install.sh b/install/plane-install.sh index d481c6551..efa02c134 100644 --- a/install/plane-install.sh +++ b/install/plane-install.sh @@ -376,9 +376,7 @@ server { } } EOF -ln -sf /etc/nginx/sites-available/plane.conf /etc/nginx/sites-enabled/plane.conf -rm -f /etc/nginx/sites-enabled/default -$STD systemctl reload nginx +nginx_enable_site plane.conf msg_ok "Configured Nginx" motd_ssh diff --git a/install/postiz-install.sh b/install/postiz-install.sh index b5c3efd6f..b06889340 100644 --- a/install/postiz-install.sh +++ b/install/postiz-install.sh @@ -236,11 +236,7 @@ server { } } EOF -ln -sf /etc/nginx/sites-available/postiz /etc/nginx/sites-enabled/postiz -rm -f /etc/nginx/sites-enabled/default -$STD nginx -t -systemctl enable -q nginx -systemctl reload -q nginx +nginx_enable_site postiz msg_ok "Configured Nginx" motd_ssh diff --git a/install/poznote-install.sh b/install/poznote-install.sh index 4b91388ec..4f0f16314 100644 --- a/install/poznote-install.sh +++ b/install/poznote-install.sh @@ -29,6 +29,7 @@ chown -R www-data:www-data /var/www/html msg_ok "Deployed Poznote" msg_info "Configuring Nginx" +PHP_SOCK=$(get_php_fpm_socket) cat </etc/nginx/sites-available/poznote server { listen 8040; @@ -41,7 +42,7 @@ server { location ~ \.php$ { include fastcgi_params; - fastcgi_pass unix:/run/php/php8.4-fpm.sock; + fastcgi_pass unix:${PHP_SOCK}; fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT \$document_root; } @@ -51,11 +52,7 @@ server { } } EOF -ln -sf /etc/nginx/sites-available/poznote /etc/nginx/sites-enabled/poznote -rm -f /etc/nginx/sites-enabled/default -$STD nginx -t -systemctl enable -q --now nginx -systemctl reload nginx +nginx_enable_site poznote msg_ok "Configured Nginx" motd_ssh diff --git a/install/privatebin-install.sh b/install/privatebin-install.sh index 6c024737f..b743e0e6e 100644 --- a/install/privatebin-install.sh +++ b/install/privatebin-install.sh @@ -37,6 +37,7 @@ systemctl restart php8.2-fpm msg_ok "Configured PHP" msg_info "Configuring Universal Nginx" +PHP_SOCK=$(get_php_fpm_socket) cat </etc/nginx/sites-available/privatebin.conf server { listen 80 default_server; @@ -60,7 +61,7 @@ server { location ~ \.php\$ { include snippets/fastcgi-php.conf; - fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; + fastcgi_pass unix:${PHP_SOCK}; fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; include fastcgi_params; } @@ -75,9 +76,7 @@ server { add_header X-XSS-Protection "1; mode=block"; } EOF -ln -s /etc/nginx/sites-available/privatebin.conf /etc/nginx/sites-enabled/ -rm -f /etc/nginx/sites-enabled/default -systemctl reload nginx +nginx_enable_site privatebin.conf msg_ok "Nginx Configured" motd_ssh diff --git a/install/rackula-install.sh b/install/rackula-install.sh index ff4046526..440b4723a 100755 --- a/install/rackula-install.sh +++ b/install/rackula-install.sh @@ -55,9 +55,7 @@ msg_ok "Set up Rackula" msg_info "Configuring nginx" cp /opt/rackula/config/nginx.conf /etc/nginx/sites-available/rackula -rm -f /etc/nginx/sites-enabled/default -ln -sf /etc/nginx/sites-available/rackula /etc/nginx/sites-enabled/rackula -$STD nginx -t +nginx_enable_site rackula msg_ok "Configured nginx" msg_info "Creating Services" diff --git a/install/shlink-install.sh b/install/shlink-install.sh index 97256f5e1..b727f924f 100644 --- a/install/shlink-install.sh +++ b/install/shlink-install.sh @@ -93,10 +93,7 @@ server { } } EOF - ln -sf /etc/nginx/sites-available/shlink-web-client /etc/nginx/sites-enabled/shlink-web-client - rm -f /etc/nginx/sites-enabled/default - systemctl enable -q nginx - $STD systemctl restart nginx + nginx_enable_site shlink-web-client msg_ok "Set up Web Client" fi diff --git a/install/snipeit-install.sh b/install/snipeit-install.sh index 7c03012da..9747f0452 100644 --- a/install/snipeit-install.sh +++ b/install/snipeit-install.sh @@ -40,6 +40,7 @@ $STD php artisan key:generate --force msg_ok "Configured Snipe-IT" msg_info "Creating Service" +PHP_SOCK=$(get_php_fpm_socket) cat </etc/nginx/conf.d/snipeit.conf server { listen 80; @@ -55,7 +56,7 @@ server { location ~ \.php\$ { include fastcgi.conf; include snippets/fastcgi-php.conf; - fastcgi_pass unix:/run/php/php8.3-fpm.sock; + fastcgi_pass unix:${PHP_SOCK}; fastcgi_split_path_info ^(.+\.php)(/.+)\$; fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; include fastcgi_params; diff --git a/install/solidtime-install.sh b/install/solidtime-install.sh index fecdb644d..739c72b07 100644 --- a/install/solidtime-install.sh +++ b/install/solidtime-install.sh @@ -68,10 +68,11 @@ msg_ok "Set up SolidTime" msg_info "Configuring Caddy" PHP_VER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;') +PHP_SOCK=$(get_php_fpm_socket) cat </etc/caddy/Caddyfile :80 { root * /opt/solidtime/public - php_fastcgi unix//run/php/php${PHP_VER}-fpm.sock + php_fastcgi unix/${PHP_SOCK} file_server encode gzip } diff --git a/install/sparkyfitness-install.sh b/install/sparkyfitness-install.sh index 2b14ed264..fd382ac83 100644 --- a/install/sparkyfitness-install.sh +++ b/install/sparkyfitness-install.sh @@ -91,11 +91,7 @@ sed \ -e 's|root /usr/share/nginx/html;|root /var/www/sparkyfitness;|g' \ -e 's|server_name localhost;|server_name _;|g' \ "/opt/sparkyfitness/docker/nginx.conf" >/etc/nginx/sites-available/sparkyfitness -ln -sf /etc/nginx/sites-available/sparkyfitness /etc/nginx/sites-enabled/sparkyfitness -rm -f /etc/nginx/sites-enabled/default -$STD nginx -t -$STD systemctl enable -q --now nginx -$STD systemctl reload nginx +nginx_enable_site sparkyfitness msg_ok "Configured Nginx" motd_ssh diff --git a/install/speedtest-tracker-install.sh b/install/speedtest-tracker-install.sh index 64601748e..2022afd6a 100644 --- a/install/speedtest-tracker-install.sh +++ b/install/speedtest-tracker-install.sh @@ -120,6 +120,7 @@ EOF msg_ok "Set up Scheduler" msg_info "Configuring Nginx" +PHP_SOCK=$(get_php_fpm_socket) cat </etc/nginx/sites-available/speedtest-tracker server { listen 80; @@ -143,7 +144,7 @@ server { error_page 404 /index.php; location ~ \.php$ { - fastcgi_pass unix:/var/run/php/php8.4-fpm.sock; + fastcgi_pass unix:${PHP_SOCK}; fastcgi_param SCRIPT_FILENAME \$realpath_root\$fastcgi_script_name; include fastcgi_params; } @@ -154,9 +155,7 @@ server { } EOF -ln -sf /etc/nginx/sites-available/speedtest-tracker /etc/nginx/sites-enabled/ -rm -f /etc/nginx/sites-enabled/default -systemctl reload nginx +nginx_enable_site speedtest-tracker msg_ok "Configured Nginx" motd_ssh diff --git a/install/wallabag-install.sh b/install/wallabag-install.sh index a808b26f9..6cf9d8a6d 100644 --- a/install/wallabag-install.sh +++ b/install/wallabag-install.sh @@ -93,6 +93,7 @@ chmod -R 755 /opt/wallabag/{var,web/assets} msg_ok "Installed Wallabag" msg_info "Configuring Nginx" +PHP_SOCK=$(get_php_fpm_socket) cat <<'EOF' >/etc/nginx/sites-available/wallabag server { listen 8000; @@ -110,7 +111,7 @@ server { } location ~ ^/app\.php(/|$) { - fastcgi_pass unix:/run/php/php8.3-fpm.sock; + fastcgi_pass unix:__PHP_SOCK__; fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; @@ -131,9 +132,8 @@ server { } EOF -ln -sf /etc/nginx/sites-available/wallabag /etc/nginx/sites-enabled/ -rm -f /etc/nginx/sites-enabled/default -$STD systemctl reload nginx +sed -i "s|__PHP_SOCK__|${PHP_SOCK}|" /etc/nginx/sites-available/wallabag +nginx_enable_site wallabag msg_ok "Configured Nginx" msg_info "Enabling Services" diff --git a/install/warracker-install.sh b/install/warracker-install.sh index e991f18b8..5afa6b5be 100644 --- a/install/warracker-install.sh +++ b/install/warracker-install.sh @@ -69,10 +69,7 @@ sed -i \ -e "s|/var/www/html|/opt/warracker/frontend|g" \ -e "s/client_max_body_size __NGINX_MAX_BODY_SIZE_CONFIG_VALUE__/client_max_body_size 32M/" \ /etc/nginx/sites-available/warracker.conf -ln -s /etc/nginx/sites-available/warracker.conf /etc/nginx/sites-enabled/warracker.conf -rm /etc/nginx/sites-enabled/default -systemctl restart nginx - +nginx_enable_site warracker.conf msg_ok "Configured Nginx" msg_info "Creating systemd services" diff --git a/install/webtrees-install.sh b/install/webtrees-install.sh index 69b735e46..482114661 100644 --- a/install/webtrees-install.sh +++ b/install/webtrees-install.sh @@ -32,10 +32,11 @@ msg_ok "Set up Webtrees" msg_info "Configuring Caddy" PHP_VER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;') +PHP_SOCK=$(get_php_fpm_socket) cat </etc/caddy/Caddyfile :80 { root * /opt/webtrees - php_fastcgi unix//run/php/php${PHP_VER}-fpm.sock + php_fastcgi unix/${PHP_SOCK} file_server encode gzip } diff --git a/install/yourls-install.sh b/install/yourls-install.sh index df502a6b7..a146bc61b 100644 --- a/install/yourls-install.sh +++ b/install/yourls-install.sh @@ -48,6 +48,7 @@ chown -R www-data:www-data /opt/yourls msg_ok "Configured YOURLS" msg_info "Configuring Nginx" +PHP_SOCK=$(get_php_fpm_socket) cat </etc/nginx/sites-available/yourls server { listen 80 default_server; @@ -62,7 +63,7 @@ server { location ~ \.php\$ { try_files \$uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)\$; - fastcgi_pass unix:/run/php/php8.3-fpm.sock; + fastcgi_pass unix:${PHP_SOCK}; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; @@ -79,11 +80,7 @@ server { } } EOF -ln -sf /etc/nginx/sites-available/yourls /etc/nginx/sites-enabled/yourls -rm -f /etc/nginx/sites-enabled/default -$STD nginx -t -systemctl enable -q --now nginx -systemctl reload nginx +nginx_enable_site yourls msg_ok "Configured Nginx" motd_ssh diff --git a/install/zammad-install.sh b/install/zammad-install.sh index 20777142c..e05818067 100644 --- a/install/zammad-install.sh +++ b/install/zammad-install.sh @@ -65,9 +65,7 @@ msg_ok "Installed Zammad" msg_info "Setup Services" cp /opt/zammad/contrib/nginx/zammad.conf /etc/nginx/sites-available/zammad.conf sed -i "s/server_name localhost;/server_name $LOCAL_IP;/g" /etc/nginx/sites-available/zammad.conf -ln -sf /etc/nginx/sites-available/zammad.conf /etc/nginx/sites-enabled/ -rm -f /etc/nginx/sites-enabled/default -$STD systemctl reload nginx +nginx_enable_site zammad.conf msg_ok "Created Service" motd_ssh diff --git a/misc/tools.func b/misc/tools.func index 23f54407e..4518773de 100644 --- a/misc/tools.func +++ b/misc/tools.func @@ -8173,6 +8173,88 @@ EOF msg_ok "Setup PHP ${INSTALLED_VERSION}" } +# ------------------------------------------------------------------------------ +# Resolves the path of the active PHP-FPM unix socket. +# +# Description: +# - Prefers the socket of ${PHP_VERSION} when that variable is set, which is +# the deterministic case directly after setup_php ran +# - Falls back to the highest version found below /run/php +# - Webserver-agnostic: works for nginx (fastcgi_pass) and Caddy (php_fastcgi) +# +# Notes: +# - Prints the path to stdout, diagnostics go to stderr, so the result can be +# captured via command substitution +# - Deliberately avoids `head -n1`: it closes the pipe early and with +# `set -o pipefail` (see catch_errors) SIGPIPE would abort the install +# - php-fpm has to be running, the socket only exists after the service start +# +# Usage: +# PHP_SOCK=$(get_php_fpm_socket) +# echo "fastcgi_pass unix:${PHP_SOCK};" +# ------------------------------------------------------------------------------ +get_php_fpm_socket() { + local sock + + if [[ -n "${PHP_VERSION:-}" && -S "/run/php/php${PHP_VERSION}-fpm.sock" ]]; then + echo "/run/php/php${PHP_VERSION}-fpm.sock" + return 0 + fi + + sock=$(find /run/php -maxdepth 1 -name "php*-fpm.sock" -type s 2>/dev/null | sort -V | tail -1) + + if [[ -z "$sock" ]]; then + msg_error "No active PHP-FPM socket found under /run/php" + return 1 + fi + + echo "$sock" +} + +# ------------------------------------------------------------------------------ +# Enables an nginx site, validates the configuration and reloads the service. +# +# Description: +# - Removes the packaged default vhost (idempotent, unlike `unlink`) +# - Links the site from sites-available into sites-enabled +# - Runs `nginx -t` and aborts before a broken config reaches a running service +# - Enables the unit so nginx survives a reboot, then restarts it via +# safe_service_restart so a failed start is actually reported +# +# Variables: +# $1 - site name, has to exist as /etc/nginx/sites-available/ +# +# Usage: +# cat </etc/nginx/sites-available/myapp +# ... +# EOF +# nginx_enable_site myapp +# ------------------------------------------------------------------------------ +nginx_enable_site() { + local site="${1:-}" + + if [[ -z "$site" ]]; then + msg_error "nginx_enable_site: no site name given" + return 1 + fi + + if [[ ! -f "/etc/nginx/sites-available/${site}" ]]; then + msg_error "nginx site config not found: /etc/nginx/sites-available/${site}" + return 1 + fi + + rm -f /etc/nginx/sites-enabled/default /etc/nginx/sites-available/default + ln -sf "/etc/nginx/sites-available/${site}" "/etc/nginx/sites-enabled/${site}" + + if ! $STD nginx -t; then + msg_error "nginx configuration test failed for site '${site}'" + return 1 + fi + + $STD systemctl enable -q nginx + safe_service_restart nginx +} + # ------------------------------------------------------------------------------ # Installs or upgrades PostgreSQL and optional extensions/modules. #