Merge pull request #1951 from RaspAP/maint/debian13-trixie

Maintenance: Debian 13 "trixie" support
This commit is contained in:
Bill Zimmerman
2025-09-27 08:33:22 +02:00
committed by GitHub
5 changed files with 76 additions and 21 deletions

View File

@@ -149,21 +149,24 @@ function _get_linux_distro() {
# Sets php package option based on Linux version, abort if unsupported distro
function _set_php_package() {
case $RELEASE in
13) # Debian 13 trixie
php_package="php8.4-fpm"
phpiniconf="/etc/php/8.4/fpm/php.ini" ;;
23.05|12*) # Debian 12 & Armbian 23.05
php_package="php8.2-cgi"
phpcgiconf="/etc/php/8.2/cgi/php.ini" ;;
phpiniconf="/etc/php/8.2/cgi/php.ini" ;;
23.04) # Ubuntu Server 23.04
php_package="php8.1-cgi"
phpcgiconf="/etc/php/8.1/cgi/php.ini" ;;
phpiniconf="/etc/php/8.1/cgi/php.ini" ;;
22.04|20.04|18.04|19.10|11*) # Previous Ubuntu Server, Debian & Armbian distros
php_package="php7.4-cgi"
phpcgiconf="/etc/php/7.4/cgi/php.ini" ;;
phpiniconf="/etc/php/7.4/cgi/php.ini" ;;
10*|11*)
php_package="php7.3-cgi"
phpcgiconf="/etc/php/7.3/cgi/php.ini" ;;
phpiniconf="/etc/php/7.3/cgi/php.ini" ;;
9*)
php_package="php7.0-cgi"
phpcgiconf="/etc/php/7.0/cgi/php.ini" ;;
phpiniconf="/etc/php/7.0/cgi/php.ini" ;;
8)
_install_status 1 "${DESC} and php5 are not supported. Please upgrade."
exit 1 ;;
@@ -272,6 +275,12 @@ function _install_dependencies() {
echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections
echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections
sudo apt-get install -y lighttpd git hostapd dnsmasq iptables-persistent $php_package $dhcpcd_package $iw_package $rsync_package $network_tools $ifconfig_package vnstat qrencode jq isoquery || _install_status 1 "Unable to install dependencies"
if [[ "$php_package" == *"-fpm" ]]; then
install_log "Enabling lighttpd fastcgi-php-fpm module for $php_package"
sudo lighty-enable-mod fastcgi-php-fpm || install_status 1 "Unable to enable fastcgi-php-fpm module"
fi
_install_status 0
}
@@ -956,14 +965,14 @@ function _patch_system_files() {
function _optimize_php() {
if [ "$upgrade" == 0 ]; then
_install_log "Optimize PHP configuration"
if [ ! -f "$phpcgiconf" ]; then
if [ ! -f "$phpiniconf" ]; then
_install_status 2 "PHP configuration could not be found."
return
fi
# Backup php.ini and create symlink for restoring.
datetimephpconf=$(date +%F-%R)
sudo cp "$phpcgiconf" "$raspap_dir/backups/php.ini.$datetimephpconf"
sudo cp "$phpiniconf" "$raspap_dir/backups/php.ini.$datetimephpconf"
sudo ln -sf "$raspap_dir/backups/php.ini.$datetimephpconf" "$raspap_dir/backups/php.ini"
echo -n "Enable HttpOnly for session cookies (Recommended)? [Y/n]: "
@@ -978,7 +987,7 @@ function _optimize_php() {
if [ "$assume_yes" == 1 ] || [ "$php_session_cookie" == 1 ]; then
echo "Php-cgi enabling session.cookie_httponly."
sudo sed -i -E 's/^session\.cookie_httponly\s*=\s*(0|([O|o]ff)|([F|f]alse)|([N|n]o))\s*$/session.cookie_httponly = 1/' "$phpcgiconf"
sudo sed -i -E 's/^session\.cookie_httponly\s*=\s*(0|([O|o]ff)|([F|f]alse)|([N|n]o))\s*$/session.cookie_httponly = 1/' "$phpiniconf"
fi
if [ "$php_package" = "php7.1-cgi" ]; then
@@ -994,7 +1003,7 @@ function _optimize_php() {
if [ "$assume_yes" == 1 ] || [ "$phpopcache" == 1 ]; then
echo -e "Php-cgi enabling opcache.enable."
sudo sed -i -E 's/^;?opcache\.enable\s*=\s*(0|([O|o]ff)|([F|f]alse)|([N|n]o))\s*$/opcache.enable = 1/' "$phpcgiconf"
sudo sed -i -E 's/^;?opcache\.enable\s*=\s*(0|([O|o]ff)|([F|f]alse)|([N|n]o))\s*$/opcache.enable = 1/' "$phpiniconf"
# Make sure opcache extension is turned on.
if [ -f "/usr/sbin/phpenmod" ]; then
sudo phpenmod opcache

View File

@@ -87,5 +87,6 @@ www-data ALL=(ALL) NOPASSWD:/usr/bin/nmap --script=broadcast-dhcp-discover -e [a
www-data ALL=(ALL) NOPASSWD:/usr/bin/vnstat *
www-data ALL=(ALL) NOPASSWD:/usr/sbin/visudo -cf *
www-data ALL=(ALL) NOPASSWD:/etc/raspap/plugins/plugin_helper.sh
www-data ALL=(ALL) NOPASSWD: /bin/systemctl start raspap-network-activity@*.service
www-data ALL=(ALL) NOPASSWD: /bin/systemctl stop raspap-network-activity@*.service
www-data ALL=(ALL) NOPASSWD:/bin/systemctl start raspap-network-activity@*.service
www-data ALL=(ALL) NOPASSWD:/bin/systemctl stop raspap-network-activity@*.service
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/wpa_conf_* /etc/wpa_supplicant/wpa_supplicant.conf

View File

@@ -308,7 +308,10 @@ function _check_internet() {
tput civis # hide cursor
# run check in background
( curl -Is --connect-timeout 3 --max-time 15 https://github.com | head -n 1 | grep "HTTP/2 200" >/dev/null ) &
(
curl -Is --connect-timeout 3 --max-time 15 https://github.com \
| grep -q "^HTTP/2 200"
) &
local pid=$!
# display spinner while curl runs
@@ -318,8 +321,9 @@ function _check_internet() {
done
printf "\r"
# check exit status of curl
wait $pid || exit_code=$?
# capture exit status
wait "$pid"
exit_code=$?
tput cnorm # restore cursor

View File

@@ -48,21 +48,24 @@ function _get_linux_distro() {
# Sets php package option based on Linux version, abort if unsupported distro
function _set_php_package() {
case $RELEASE in
13) # Debian 13 trixie
php_package="php8.4-fpm"
phpiniconf="/etc/php/8.4/fpm/php.ini" ;;
23.05|12*) # Debian 12 & Armbian 23.05
php_package="php8.2-cgi"
phpcgiconf="/etc/php/8.2/cgi/php.ini" ;;
phpiniconf="/etc/php/8.2/cgi/php.ini" ;;
23.04) # Ubuntu Server 23.04
php_package="php8.1-cgi"
phpcgiconf="/etc/php/8.1/cgi/php.ini" ;;
phpiniconf="/etc/php/8.1/cgi/php.ini" ;;
22.04|20.04|18.04|19.10|11*) # Previous Ubuntu Server, Debian & Armbian distros
php_package="php7.4-cgi"
phpcgiconf="/etc/php/7.4/cgi/php.ini" ;;
phpiniconf="/etc/php/7.4/cgi/php.ini" ;;
10*|11*)
php_package="php7.3-cgi"
phpcgiconf="/etc/php/7.3/cgi/php.ini" ;;
phpiniconf="/etc/php/7.3/cgi/php.ini" ;;
9*)
php_package="php7.0-cgi"
phpcgiconf="/etc/php/7.0/cgi/php.ini" ;;
phpiniconf="/etc/php/7.0/cgi/php.ini" ;;
8)
_install_error "${DESC} and php5 are unsupported."
exit 1 ;;
@@ -127,11 +130,11 @@ function _check_for_backups() {
sudo cp "$raspap_dir/backups/dhcpcd.conf" /etc/dhcpcd.conf
fi
fi
if [ -f "$raspap_dir/backups/php.ini" ] && [ -f "$phpcgiconf" ]; then
if [ -f "$raspap_dir/backups/php.ini" ] && [ -f "$phpiniconf" ]; then
echo -n "Restore the last php.ini file? [y/N]: "
read answer
if [[ $answer -eq 'y' ]]; then
sudo cp "$raspap_dir/backups/php.ini" "$phpcgiconf"
sudo cp "$raspap_dir/backups/php.ini" "$phpiniconf"
fi
fi
fi

View File

@@ -313,6 +313,8 @@ class WiFiManager
*/
public function setKnownStationsWPA($networks)
{
$this->ensureWpaSupplicant();
$iface = escapeshellarg($_SESSION['wifi_client_interface']);
$output = shell_exec("sudo wpa_cli -i $iface list_networks 2>&1");
@@ -475,5 +477,41 @@ class WiFiManager
return false;
}
/**
* Ensures /etc/wpa_supplicant/wpa_supplicant.conf exists with minimal safe contents
* Does not overwrite an existing file
*
* @throws \RuntimeException on permission or write failure
*/
public function ensureWpaSupplicant(): void
{
$confPath = '/etc/wpa_supplicant/wpa_supplicant.conf';
if (file_exists($confPath)) {
return;
}
$contents = <<<CONF
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
CONF;
$tmpFile = tempnam(sys_get_temp_dir(), 'wpa_conf_');
if ($tmpFile === false) {
throw new \RuntimeException("Failed to create temporary file for wpa_supplicant.conf");
}
file_put_contents($tmpFile, $contents);
chmod($tmpFile, 0600);
$cmd = escapeshellcmd("sudo cp $tmpFile $confPath");
exec($cmd, $output, $exitCode);
unlink($tmpFile);
if ($exitCode !== 0) {
throw new \RuntimeException("Failed to initialize wpa_supplicant.conf: " . implode("\n", $output));
}
}
}