ISPConfig 3 on Debian 11 Server

Install Debian 11 first then run the ISPConfig autoinstaller.

Perfect server setup with Apache web server and a port range for Passive FTP + unattended-upgrades:

wget -O - https://get.ispconfig.org | sh -s -- --use-ftp-ports=40110-40210 --unattended-upgrades
--2023-05-20 19:58:49--  https://get.ispconfig.org/
Auflösen des Hostnamens get.ispconfig.org (get.ispconfig.org)… 104.26.11.246, 172.67.75.112, 104.26.10.246, ...
Verbindungsaufbau zu get.ispconfig.org (get.ispconfig.org)|104.26.11.246|:443 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 2003 (2,0K) [application/octet-stream]
Wird in »STDOUT« gespeichert.

-                                        100%[===============================================================================>]   1,96K  --.-KB/s    in 0s

2023-05-20 19:58:49 (29,0 MB/s) - auf die Standardausgabe geschrieben [2003/2003]

PHP cli missing, trying to install.
Vormals nicht ausgewähltes Paket libsodium23:amd64 wird gewählt.
(Lese Datenbank ... 58721 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../0-libsodium23_1.0.18-1_amd64.deb ...
Entpacken von libsodium23:amd64 (1.0.18-1) ...
Vormals nicht ausgewähltes Paket psmisc wird gewählt.
Vorbereitung zum Entpacken von .../1-psmisc_23.4-2_amd64.deb ...
Entpacken von psmisc (23.4-2) ...
Vormals nicht ausgewähltes Paket php-common wird gewählt.
Vorbereitung zum Entpacken von .../2-php-common_2%3a76_all.deb ...
Entpacken von php-common (2:76) ...
Vormals nicht ausgewähltes Paket php7.4-common wird gewählt.
Vorbereitung zum Entpacken von .../3-php7.4-common_7.4.33-1+deb11u3_amd64.deb ...
Entpacken von php7.4-common (7.4.33-1+deb11u3) ...
Vormals nicht ausgewähltes Paket php7.4-json wird gewählt.
Vorbereitung zum Entpacken von .../4-php7.4-json_7.4.33-1+deb11u3_amd64.deb ...
Entpacken von php7.4-json (7.4.33-1+deb11u3) ...
Vormals nicht ausgewähltes Paket php7.4-opcache wird gewählt.
Vorbereitung zum Entpacken von .../5-php7.4-opcache_7.4.33-1+deb11u3_amd64.deb ...
Entpacken von php7.4-opcache (7.4.33-1+deb11u3) ...
Vormals nicht ausgewähltes Paket php7.4-readline wird gewählt.
Vorbereitung zum Entpacken von .../6-php7.4-readline_7.4.33-1+deb11u3_amd64.deb ...
Entpacken von php7.4-readline (7.4.33-1+deb11u3) ...
Vormals nicht ausgewähltes Paket php7.4-cli wird gewählt.
Vorbereitung zum Entpacken von .../7-php7.4-cli_7.4.33-1+deb11u3_amd64.deb ...
Entpacken von php7.4-cli (7.4.33-1+deb11u3) ...
Vormals nicht ausgewähltes Paket php-cli wird gewählt.
Vorbereitung zum Entpacken von .../8-php-cli_2%3a7.4+76_all.deb ...
Entpacken von php-cli (2:7.4+76) ...
libsodium23:amd64 (1.0.18-1) wird eingerichtet ...
psmisc (23.4-2) wird eingerichtet ...
php-common (2:76) wird eingerichtet ...
Created symlink /etc/systemd/system/timers.target.wants/phpsessionclean.timer → /lib/systemd/system/phpsessionclean.timer.
php7.4-common (7.4.33-1+deb11u3) wird eingerichtet ...

Creating config file /etc/php/7.4/mods-available/calendar.ini with new version

Creating config file /etc/php/7.4/mods-available/ctype.ini with new version

Creating config file /etc/php/7.4/mods-available/exif.ini with new version

Creating config file /etc/php/7.4/mods-available/fileinfo.ini with new version

Creating config file /etc/php/7.4/mods-available/ffi.ini with new version

Creating config file /etc/php/7.4/mods-available/ftp.ini with new version

Creating config file /etc/php/7.4/mods-available/gettext.ini with new version

Creating config file /etc/php/7.4/mods-available/iconv.ini with new version

Creating config file /etc/php/7.4/mods-available/pdo.ini with new version

Creating config file /etc/php/7.4/mods-available/phar.ini with new version

Creating config file /etc/php/7.4/mods-available/posix.ini with new version

Creating config file /etc/php/7.4/mods-available/shmop.ini with new version

Creating config file /etc/php/7.4/mods-available/sockets.ini with new version

Creating config file /etc/php/7.4/mods-available/sysvmsg.ini with new version

Creating config file /etc/php/7.4/mods-available/sysvsem.ini with new version

Creating config file /etc/php/7.4/mods-available/sysvshm.ini with new version

Creating config file /etc/php/7.4/mods-available/tokenizer.ini with new version
php7.4-readline (7.4.33-1+deb11u3) wird eingerichtet ...

Creating config file /etc/php/7.4/mods-available/readline.ini with new version
php7.4-opcache (7.4.33-1+deb11u3) wird eingerichtet ...

Creating config file /etc/php/7.4/mods-available/opcache.ini with new version
php7.4-json (7.4.33-1+deb11u3) wird eingerichtet ...

Creating config file /etc/php/7.4/mods-available/json.ini with new version
php7.4-cli (7.4.33-1+deb11u3) wird eingerichtet ...
update-alternatives: /usr/bin/php7.4 wird verwendet, um /usr/bin/php (php) im automatischen Modus bereitzustellen
update-alternatives: /usr/bin/phar7.4 wird verwendet, um /usr/bin/phar (phar) im automatischen Modus bereitzustellen
update-alternatives: /usr/bin/phar.phar7.4 wird verwendet, um /usr/bin/phar.phar (phar.phar) im automatischen Modus bereitzustellen

Creating config file /etc/php/7.4/cli/php.ini with new version
php-cli (2:7.4+76) wird eingerichtet ...
update-alternatives: /usr/bin/php.default wird verwendet, um /usr/bin/php (php) im automatischen Modus bereitzustellen
update-alternatives: /usr/bin/phar.default wird verwendet, um /usr/bin/phar (phar) im automatischen Modus bereitzustellen
update-alternatives: /usr/bin/phar.phar.default wird verwendet, um /usr/bin/phar.phar (phar.phar) im automatischen Modus bereitzustellen
Trigger für man-db (2.9.4-2) werden verarbeitet ...
Trigger für libc-bin (2.31-13+deb11u6) werden verarbeitet ...
Trigger für php7.4-cli (7.4.33-1+deb11u3) werden verarbeitet ...
Vormals nicht ausgewähltes Paket libonig5:amd64 wird gewählt.
(Lese Datenbank ... 58943 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../libonig5_6.9.6-1.1_amd64.deb ...
Entpacken von libonig5:amd64 (6.9.6-1.1) ...
Vormals nicht ausgewähltes Paket php7.4-mbstring wird gewählt.
Vorbereitung zum Entpacken von .../php7.4-mbstring_7.4.33-1+deb11u3_amd64.deb ...
Entpacken von php7.4-mbstring (7.4.33-1+deb11u3) ...
Vormals nicht ausgewähltes Paket php-mbstring wird gewählt.
Vorbereitung zum Entpacken von .../php-mbstring_2%3a7.4+76_all.deb ...
Entpacken von php-mbstring (2:7.4+76) ...
libonig5:amd64 (6.9.6-1.1) wird eingerichtet ...
php7.4-mbstring (7.4.33-1+deb11u3) wird eingerichtet ...

Creating config file /etc/php/7.4/mods-available/mbstring.ini with new version
php-mbstring (2:7.4+76) wird eingerichtet ...
Trigger für libc-bin (2.31-13+deb11u6) werden verarbeitet ...
Trigger für php7.4-cli (7.4.33-1+deb11u3) werden verarbeitet ...
WARNING! This script will reconfigure your complete server!
It should be run on a freshly installed server and all current configuration that you have done will most likely be lost!
Type 'yes' if you really want to continue: yes
[INFO] Starting perfect server setup for Debian GNU/Linux 11 (bullseye)
[INFO] Checking hostname.
[INFO] Enabling contrib and non-free repositories.
[INFO] Updating packages
[INFO] Updated packages
[INFO] Installing packages ssh, openssh-server, nano, vim-nox, lsb-release, apt-transport-https, ca-certificates, wget, git, gnupg, software-properties-common, curl, cron, ntp
[INFO] Installed packages ssh, openssh-server, nano, vim-nox, lsb-release, apt-transport-https, ca-certificates, wget, git, gnupg, software-properties-common, curl, cron, ntp
[INFO] Activating rspamd repository.
[INFO] Activating sury php repository.
[INFO] Activating GoAccess repository.
[INFO] Updating packages (after enabling 3rd party repos).
[INFO] Updated packages
[INFO] Default shell is currently dash.
[INFO] Setting bash as default shell.
[INFO] Default shell is now bash.
[INFO] Installing packages dbconfig-common, postfix, postfix-mysql, postfix-doc, mariadb-client, mariadb-server, openssl, rkhunter, binutils, sudo, getmail
[INFO] Installed packages dbconfig-common, postfix, postfix-mysql, postfix-doc, mariadb-client, mariadb-server, openssl, rkhunter, binutils, sudo, getmail
[INFO] Installing packages dovecot-imapd, dovecot-pop3d, dovecot-mysql, dovecot-sieve, dovecot-managesieved, dovecot-lmtpd
[INFO] Installed packages dovecot-imapd, dovecot-pop3d, dovecot-mysql, dovecot-sieve, dovecot-managesieved, dovecot-lmtpd
[INFO] Generating MySQL password.
[INFO] Writing MySQL config files.
[INFO] Configuring postfix.
[INFO] Restarting postfix
[INFO] Installing packages software-properties-common, update-inetd, dnsutils, resolvconf, clamav, clamav-daemon, clamav-docs, zip, unzip, bzip2, xz-utils, lzip, rar, borgbackup, arj, nomarch, lzop, cabextract, apt-listchanges, libnet-ldap-perl, libauthen-sasl-perl, daemon, libio-string-perl, libio-socket-ssl-perl, libnet-ident-perl, libnet-dns-perl, libdbd-mysql-perl, bind9, rspamd, redis-server, postgrey, p7zip, p7zip-full, unrar-free, lrzip
[INFO] Installed packages software-properties-common, update-inetd, dnsutils, resolvconf, clamav, clamav-daemon, clamav-docs, zip, unzip, bzip2, xz-utils, lzip, rar, borgbackup, arj, nomarch, lzop, cabextract, apt-listchanges, libnet-ldap-perl, libauthen-sasl-perl, daemon, libio-string-perl, libio-socket-ssl-perl, libnet-ident-perl, libnet-dns-perl, libdbd-mysql-perl, bind9, rspamd, redis-server, postgrey, p7zip, p7zip-full, unrar-free, lrzip
[INFO] Stopping Rspamd.
[INFO] (Re)starting Bind.
[INFO] Disabling spamassassin daemon.
[INFO] Checking local dns resolver.
[INFO] Installing packages apache2, apache2-doc, apache2-utils, libapache2-mod-fcgid, apache2-suexec-pristine, libapache2-mod-python, libapache2-mod-passenger
[INFO] Installed packages apache2, apache2-doc, apache2-utils, libapache2-mod-fcgid, apache2-suexec-pristine, libapache2-mod-python, libapache2-mod-passenger
[INFO] Installing packages php-pear, php-memcache, php-imagick, mcrypt, imagemagick, libruby, memcached, php-apcu, jailkit, php5.6, php5.6-common, php5.6-gd, php5.6-mysql, php5.6-imap, php5.6-cli, php5.6-mcrypt, php5.6-curl, php5.6-intl, php5.6-pspell, php5.6-recode, php5.6-sqlite3, php5.6-tidy, php5.6-xmlrpc, php5.6-xsl, php5.6-zip, php5.6-mbstring, php5.6-soap, php5.6-opcache, php5.6-cgi, php5.6-fpm, php7.0, php7.0-common, php7.0-gd, php7.0-mysql, php7.0-imap, php7.0-cli, php7.0-mcrypt, php7.0-curl, php7.0-intl, php7.0-pspell, php7.0-recode, php7.0-sqlite3, php7.0-tidy, php7.0-xmlrpc, php7.0-xsl, php7.0-zip, php7.0-mbstring, php7.0-soap, php7.0-opcache, php7.0-cgi, php7.0-fpm, php7.1, php7.1-common, php7.1-gd, php7.1-mysql, php7.1-imap, php7.1-cli, php7.1-mcrypt, php7.1-curl, php7.1-intl, php7.1-pspell, php7.1-recode, php7.1-sqlite3, php7.1-tidy, php7.1-xmlrpc, php7.1-xsl, php7.1-zip, php7.1-mbstring, php7.1-soap, php7.1-opcache, php7.1-cgi, php7.1-fpm, php7.2, php7.2-common, php7.2-gd, php7.2-mysql, php7.2-imap, php7.2-cli, php7.2-curl, php7.2-intl, php7.2-pspell, php7.2-recode, php7.2-sqlite3, php7.2-tidy, php7.2-xmlrpc, php7.2-xsl, php7.2-zip, php7.2-mbstring, php7.2-soap, php7.2-opcache, php7.2-cgi, php7.2-fpm, php7.3, php7.3-common, php7.3-gd, php7.3-mysql, php7.3-imap, php7.3-cli, php7.3-curl, php7.3-intl, php7.3-pspell, php7.3-recode, php7.3-sqlite3, php7.3-tidy, php7.3-xmlrpc, php7.3-xsl, php7.3-zip, php7.3-mbstring, php7.3-soap, php7.3-opcache, php7.3-cgi, php7.3-fpm, php7.4, php7.4-common, php7.4-gd, php7.4-mysql, php7.4-imap, php7.4-cli, php7.4-curl, php7.4-intl, php7.4-pspell, php7.4-sqlite3, php7.4-tidy, php7.4-xmlrpc, php7.4-xsl, php7.4-zip, php7.4-mbstring, php7.4-soap, php7.4-opcache, php7.4-cgi, php7.4-fpm, php8.0, php8.0-common, php8.0-gd, php8.0-mysql, php8.0-imap, php8.0-cli, php8.0-curl, php8.0-intl, php8.0-pspell, php8.0-sqlite3, php8.0-tidy, php8.0-xsl, php8.0-zip, php8.0-mbstring, php8.0-soap, php8.0-opcache, php8.0-cgi, php8.0-fpm, php8.1, php8.1-common, php8.1-gd, php8.1-mysql, php8.1-imap, php8.1-cli, php8.1-curl, php8.1-intl, php8.1-pspell, php8.1-sqlite3, php8.1-tidy, php8.1-xsl, php8.1-zip, php8.1-mbstring, php8.1-soap, php8.1-opcache, php8.1-cgi, php8.1-fpm
[INFO] Installed packages php-pear, php-memcache, php-imagick, mcrypt, imagemagick, libruby, memcached, php-apcu, jailkit, php5.6, php5.6-common, php5.6-gd, php5.6-mysql, php5.6-imap, php5.6-cli, php5.6-mcrypt, php5.6-curl, php5.6-intl, php5.6-pspell, php5.6-recode, php5.6-sqlite3, php5.6-tidy, php5.6-xmlrpc, php5.6-xsl, php5.6-zip, php5.6-mbstring, php5.6-soap, php5.6-opcache, php5.6-cgi, php5.6-fpm, php7.0, php7.0-common, php7.0-gd, php7.0-mysql, php7.0-imap, php7.0-cli, php7.0-mcrypt, php7.0-curl, php7.0-intl, php7.0-pspell, php7.0-recode, php7.0-sqlite3, php7.0-tidy, php7.0-xmlrpc, php7.0-xsl, php7.0-zip, php7.0-mbstring, php7.0-soap, php7.0-opcache, php7.0-cgi, php7.0-fpm, php7.1, php7.1-common, php7.1-gd, php7.1-mysql, php7.1-imap, php7.1-cli, php7.1-mcrypt, php7.1-curl, php7.1-intl, php7.1-pspell, php7.1-recode, php7.1-sqlite3, php7.1-tidy, php7.1-xmlrpc, php7.1-xsl, php7.1-zip, php7.1-mbstring, php7.1-soap, php7.1-opcache, php7.1-cgi, php7.1-fpm, php7.2, php7.2-common, php7.2-gd, php7.2-mysql, php7.2-imap, php7.2-cli, php7.2-curl, php7.2-intl, php7.2-pspell, php7.2-recode, php7.2-sqlite3, php7.2-tidy, php7.2-xmlrpc, php7.2-xsl, php7.2-zip, php7.2-mbstring, php7.2-soap, php7.2-opcache, php7.2-cgi, php7.2-fpm, php7.3, php7.3-common, php7.3-gd, php7.3-mysql, php7.3-imap, php7.3-cli, php7.3-curl, php7.3-intl, php7.3-pspell, php7.3-recode, php7.3-sqlite3, php7.3-tidy, php7.3-xmlrpc, php7.3-xsl, php7.3-zip, php7.3-mbstring, php7.3-soap, php7.3-opcache, php7.3-cgi, php7.3-fpm, php7.4, php7.4-common, php7.4-gd, php7.4-mysql, php7.4-imap, php7.4-cli, php7.4-curl, php7.4-intl, php7.4-pspell, php7.4-sqlite3, php7.4-tidy, php7.4-xmlrpc, php7.4-xsl, php7.4-zip, php7.4-mbstring, php7.4-soap, php7.4-opcache, php7.4-cgi, php7.4-fpm, php8.0, php8.0-common, php8.0-gd, php8.0-mysql, php8.0-imap, php8.0-cli, php8.0-curl, php8.0-intl, php8.0-pspell, php8.0-sqlite3, php8.0-tidy, php8.0-xsl, php8.0-zip, php8.0-mbstring, php8.0-soap, php8.0-opcache, php8.0-cgi, php8.0-fpm, php8.1, php8.1-common, php8.1-gd, php8.1-mysql, php8.1-imap, php8.1-cli, php8.1-curl, php8.1-intl, php8.1-pspell, php8.1-sqlite3, php8.1-tidy, php8.1-xsl, php8.1-zip, php8.1-mbstring, php8.1-soap, php8.1-opcache, php8.1-cgi, php8.1-fpm
[INFO] Disabling conflicting apache modules.
[INFO] Enabling apache modules.
[INFO] Enabling default PHP-FPM config.
[INFO] Setting default system PHP version.
[INFO] Installing phpMyAdmin
[INFO] HTTPoxy config.
[INFO] Installing acme.sh (Let's Encrypt).
[INFO] acme.sh (Let's Encrypt) installed.
[INFO] ISPConfig does not yet support mailman3 and mailman2 is no longer available in Debian 11.
[INFO] Installing packages quota, quotatool, haveged, geoip-database, libclass-dbi-mysql-perl, libtimedate-perl, build-essential, autoconf, automake, libtool, flex, bison, debhelper, binutils
[INFO] Installed packages quota, quotatool, haveged, geoip-database, libclass-dbi-mysql-perl, libtimedate-perl, build-essential, autoconf, automake, libtool, flex, bison, debhelper, binutils
[INFO] Adding quota to fstab.
[INFO] Installing packages pure-ftpd-common, pure-ftpd-mysql, awstats, goaccess, awffull
[INFO] Installed packages pure-ftpd-common, pure-ftpd-mysql, awstats, goaccess, awffull
[INFO] Enabling TLS for pureftpd
[INFO] Disabling awstats cron.
[INFO] Installing packages fail2ban, ufw
[INFO] Installed packages fail2ban, ufw
[INFO] Configuring SSHd
[INFO] Installing UnattendedUpgrades
[INFO] Installing packages unattended-upgrades, apt-listchanges
[INFO] Installed packages unattended-upgrades, apt-listchanges
[INFO] Installing roundcube.
[INFO] Installing packages roundcube, roundcube-core, roundcube-mysql, roundcube-plugins
[INFO] Installed packages roundcube, roundcube-core, roundcube-mysql, roundcube-plugins
[INFO] Installing ISPConfig3.
[INFO] Adding PHP version(s) to ISPConfig.
[INFO] Checking all services are running.
[INFO] mysql: OK
[INFO] clamav-daemon: OK
[INFO] postfix: OK
[INFO] bind9: OK
[INFO] pureftpd: OK
[INFO] apache2: OK
[INFO] rspamd: OK
[INFO] redis-server: OK
[INFO] dovecot: OK
[INFO] Installation ready.
[INFO] Your ISPConfig admin password is: XXXXXXXXXXXXXXX
[INFO] Your MySQL root password is: XXXXXXXXXXXXXXXXXXXX
[INFO] Warning: Please delete the log files in /tmp/ispconfig-ai/var/log/setup-* once you don't need them anymore because they contain your passwords!

Finished!

Log in as admin: https://fqdn.domain.tld:8080

See also

https://www.howtoforge.com/ispconfig-autoinstall-debian-ubuntu/