diff --git a/lib/os/class.ISPConfigBaseOS.inc.php b/lib/os/class.ISPConfigBaseOS.inc.php index 8659cd0feb9e4cc8334a28b5283056bed2373716..b9859af93615d11cec43a1e8f28d86a53068ebc1 100644 --- a/lib/os/class.ISPConfigBaseOS.inc.php +++ b/lib/os/class.ISPConfigBaseOS.inc.php @@ -38,7 +38,7 @@ class ISPConfigBaseOS { throw new ISPConfigOSException('Version ' . $os['VERSION_ID'] . ' is not supported for ' . $os['ID']); } } elseif($os['ID'] === 'ubuntu') { - if(!in_array($os['VERSION_ID'], array('18.04', '20.04'))) { + if(!in_array($os['VERSION_ID'], array('18.04', '20.04', '22.04'))) { throw new ISPConfigOSException('Version ' . $os['VERSION_ID'] . ' is not supported for ' . $os['ID']); } } else { diff --git a/lib/os/class.ISPConfigDebianOS.inc.php b/lib/os/class.ISPConfigDebianOS.inc.php index e4b69da12c395c19b05cea8109070265bb08d5a5..4ecfa4405f9ee52e0b86356f9d0e17379c75635e 100644 --- a/lib/os/class.ISPConfigDebianOS.inc.php +++ b/lib/os/class.ISPConfigDebianOS.inc.php @@ -344,7 +344,7 @@ class ISPConfigDebianOS extends ISPConfigBaseOS { protected function addGoAccessRepo() { ISPConfigLog::info('Activating GoAccess repository.', true); - $cmd = 'echo "deb https://deb.goaccess.io/ $(lsb_release -cs) main" | tee -a /etc/apt/sources.list.d/goaccess.list >/dev/null 2>&1 ; wget -O - https://deb.goaccess.io/gnugpg.key 2>&1 | apt-key --keyring /etc/apt/trusted.gpg.d/goaccess.gpg add - 2>&1'; + $cmd = 'echo "deb https://deb.goaccess.io/ $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/goaccess.list >/dev/null 2>&1 ; wget -O - https://deb.goaccess.io/gnugpg.key 2>&1 | apt-key --keyring /etc/apt/trusted.gpg.d/goaccess.gpg add - 2>&1'; $result = $this->exec($cmd); if($result === false) { throw new ISPConfigOSException('Command ' . $cmd . ' failed.'); diff --git a/lib/os/class.ISPConfigUbuntu2204OS.inc.php b/lib/os/class.ISPConfigUbuntu2204OS.inc.php new file mode 100644 index 0000000000000000000000000000000000000000..603ac0ff1e28d1ef326e13403c27b951b2e27bf8 --- /dev/null +++ b/lib/os/class.ISPConfigUbuntu2204OS.inc.php @@ -0,0 +1,87 @@ +exec($cmd); + if($result === false) { + throw new ISPConfigOSException('Command ' . $cmd . ' failed.'); + } + + if(ISPConfig::shallInstall('web')) { + // When --use-php-system is used, there is no alternative for php-fpm.sock. + if(ISPConfig::wantsPHP() === 'system') { + $cmd = 'update-alternatives --set php-cgi /usr/bin/php-cgi8.1'; + } else { + $cmd = 'update-alternatives --set php-cgi /usr/bin/php-cgi8.1 ; update-alternatives --set php-fpm.sock /run/php/php8.1-fpm.sock'; + } + $result = $this->exec($cmd); + if($result === false) { + throw new ISPConfigOSException('Command ' . $cmd . ' failed.'); + } + } + } + + protected function getMySQLUserQueries($mysql_root_pw) { + $escaped_pw = preg_replace('/[\'\\\\]/', '\\$1', $mysql_root_pw); + $queries = array( + 'DELETE FROM mysql.user WHERE User=\'\';', + 'DELETE FROM mysql.user WHERE User=\'root\' AND Host NOT IN (\'localhost\', \'127.0.0.1\', \'::1\');', + 'DROP DATABASE IF EXISTS test;', + 'DELETE FROM mysql.db WHERE Db=\'test\' OR Db=\'test\\_%\';', + 'SET PASSWORD FOR \'root\'@\'localhost\' = PASSWORD(\'' . $escaped_pw . '\');', + 'FLUSH PRIVILEGES;' + ); + + return $queries; + } + + protected function installMailman($host_name) { + ISPConfigLog::info('ISPConfig does not yet support mailman3 and mailman2 is no longer available in Ubuntu 22.04.', true); + return; + } + + protected function getSystemPHPVersion() { + return '8.1'; + } + +}