Hey all, I'm so confused.. I installed a fresh Debian 13 + ISPConfig 3.3.1 this last thursday.. all went well, I just had to disable the 000-default vhost, as that caused problems with creating SSL certs for the first site.. but then it all works.. Installing another server today, same thing.. Debian 13.. ISPConfig (stable/3.3.1 specific).. but now it doesn't work.. I get HTTP error 500 when I try to enter the ISPConfig GUI web. this is the contents of the /var/log/apache2/error.log; Code: [ N 2026-02-01 13:54:26.2523 4353/T9 age/Cor/CoreMain.cpp:669 ]: Signal received. Gracefully shutting down... (send signal 2 more time(s) to force shutdown) [ N 2026-02-01 13:54:26.2523 4353/T1 age/Cor/CoreMain.cpp:1242 ]: Received command to shutdown gracefully. Waiting until all clients have disconnected... [ N 2026-02-01 13:54:26.2523 4353/T9 Ser/Server.h:895 ]: [ServerThr.1] Freed 0 spare client objects [ N 2026-02-01 13:54:26.2523 4353/T9 Ser/Server.h:552 ]: [ServerThr.1] Shutdown finished [ N 2026-02-01 13:54:26.2523 4353/Tc Ser/Server.h:895 ]: [ServerThr.2] Freed 0 spare client objects [ N 2026-02-01 13:54:26.2523 4353/Tc Ser/Server.h:552 ]: [ServerThr.2] Shutdown finished [ N 2026-02-01 13:54:26.2523 4353/Td Ser/Server.h:895 ]: [ServerThr.3] Freed 0 spare client objects [ N 2026-02-01 13:54:26.2523 4353/Tf Ser/Server.h:895 ]: [ServerThr.4] Freed 0 spare client objects [ N 2026-02-01 13:54:26.2523 4353/Td Ser/Server.h:552 ]: [ServerThr.3] Shutdown finished [ N 2026-02-01 13:54:26.2524 4353/Tf Ser/Server.h:552 ]: [ServerThr.4] Shutdown finished [ N 2026-02-01 13:54:26.2524 4353/Th Ser/Server.h:895 ]: [ApiServer] Freed 0 spare client objects [ N 2026-02-01 13:54:26.2525 4353/Th Ser/Server.h:552 ]: [ApiServer] Shutdown finished [ N 2026-02-01 13:54:26.2960 4388/T1 age/Wat/WatchdogMain.cpp:1367 ]: Starting Passenger watchdog... [ N 2026-02-01 13:54:26.3205 4394/T1 age/Cor/CoreMain.cpp:1337 ]: Starting Passenger core... [ N 2026-02-01 13:54:26.3206 4394/T1 age/Cor/CoreMain.cpp:255 ]: Passenger core running in multi-application mode. [ N 2026-02-01 13:54:26.3265 4394/T1 age/Cor/CoreMain.cpp:1012 ]: Passenger core online, PID 4394 [Sun Feb 01 13:54:26.363033 2026] [ssl:warn] [pid 4380:tid 4380] AH01909: localhost:8080:0 server certificate does NOT include an ID which matches the server name [Sun Feb 01 13:54:26.363783 2026] [ssl:warn] [pid 4380:tid 4380] AH01909: localhost:8081:0 server certificate does NOT include an ID which matches the server name [Sun Feb 01 13:54:26.368867 2026] [mpm_prefork:notice] [pid 4380:tid 4380] AH00163: Apache/2.4.66 (Debian) mod_fcgid/2.3.9 Phusion_Passenger/6.0.26 OpenSSL/3.5.4 configured -- resuming normal operations [Sun Feb 01 13:54:26.368884 2026] [core:notice] [pid 4380:tid 4380] AH00094: Command line: '/usr/sbin/apache2' [ N 2026-02-01 13:54:26.4468 4353/T1 age/Cor/TelemetryCollector.h:531 ]: Message from Phusion: End time can not be before or equal to begin time [ N 2026-02-01 13:54:26.4978 4353/T1 age/Cor/CoreMain.cpp:1322 ]: Passenger core shutdown finished [ N 2026-02-01 13:54:28.5397 4394/T6 age/Cor/SecurityUpdateChecker.h:519 ]: Security update check: no update found (next check in 24 hours) suexec policy violation: see suexec log for more details [Sun Feb 01 13:54:39.231752 2026] [fcgid:warn] [pid 4424:tid 4424] (104)Connection reset by peer: [client 192.168.1.99:60651] mod_fcgid: error reading data from FastCGI server [Sun Feb 01 13:54:39.231777 2026] [core:error] [pid 4424:tid 4424] [client 192.168.1.99:60651] End of script output before headers: index.php [Sun Feb 01 13:55:02.530431 2026] [autoindex:error] [pid 4420:tid 4420] [client ::1:56916] AH01276: Cannot serve directory /var/www/html/: No matching DirectoryIndex (index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm,index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm,standard_index.html) found, and server-generated directory index forbidden by Options directive [Sun Feb 01 13:58:52.832473 2026] [autoindex:error] [pid 4420:tid 4420] [client 192.168.100.20:37652] AH01276: Cannot serve directory /var/www/html/: No matching DirectoryIndex (index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm,index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm,standard_index.html) found, and server-generated directory index forbidden by Options directive [Sun Feb 01 13:58:53.107392 2026] [autoindex:error] [pid 4420:tid 4420] [client 192.168.100.20:37652] AH01276: Cannot serve directory /var/www/html/: No matching DirectoryIndex (index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm,index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm,standard_index.html) found, and server-generated directory index forbidden by Options directive [Sun Feb 01 14:00:02.838823 2026] [autoindex:error] [pid 4421:tid 4421] [client ::1:36788] AH01276: Cannot serve directory /var/www/html/: No matching DirectoryIndex (index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm,index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm,standard_index.html) found, and server-generated directory index forbidden by Options directive [Sun Feb 01 14:05:03.137500 2026] [autoindex:error] [pid 4602:tid 4602] [client ::1:40156] AH01276: Cannot serve directory /var/www/html/: No matching DirectoryIndex (index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm,index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm,standard_index.html) found, and server-generated directory index forbidden by Options directive Nothing otherwise in any ISPConfig logs under /var/log/ispconfig Just got thinking.. I wonder if I can add another vhost on the server I created last thursday, or if the acme will try and add the check file to the "first" vhost.. I gotta try that, I'll get back on that.. Because that was the problem before I disabled 000-default.. it tried adding or checking for the acme file on 000-default instead of on the vhost I try to enable Let's Encrypt on.. I reinstalled the server 5 or 6 times.. over the last two weeks, I've had so much grief with this - its incredible.. it just won't work.. but then I disabled the 000-default and it worked.. so I gotta check if I can add another vhost, or if the problem still exists.. This has never happened before, I don't understand why all these problems now..
Just found an "error" of some sort.. when I created the new site on this whc009 server, then one I created last Thursday.. I get this in the "/var/log/ispconfig/cron.log" file; Code: Sun Feb 1 15:11:01 EET 2026 PHP Warning: Undefined variable $include_file in /usr/local/ispconfig/server/plugins-available/apache2_plugin.inc.php on line 3109 Update.. The new site got Let's Encrypt without any problems, so it doesn't seem to get messed up, like when I had 000-default vhost enabled.. Lets just hope that this doesn't interfere with the first site/domain I added.. but really, I love ISPConfig and it has worked so well over the years.. so I hope and think that it shouldn't be any problem now that it works on the whc009 server.. Its just the newest server that I've struggled with for so long.. I've tried Debian 12 and different ISPConfig versions, I've had problems with the install script not working properly, troubles during the install, troubles after the install.. just all sorts of problems.. some are with Debian 12, some with Debian 13.. just impossible to figure out exactly what combination creates which problem.. But today I've reinstalled the server twice with Debian 13 and one time using ISPConfig stable, and once downloading specifically 3.3.1 version.. same result with the HTTP error 500 page after installation of ISPConfig..
How did you install the server? Please post the exact install command you used. Also, which exact base installation image at which hoster did you use? We had some issues reported recently, which were caused by people not using the official install guide https://www.howtoforge.com/ispconfig-autoinstall-debian-ubuntu/ but following instructions of an AI instead, and the AI instructions were totally off and caused failed installations. And regarding Let's Encrypt problems, just follow this guide: https://forum.howtoforge.com/threads/lets-encrypt-error-faq.74179/
The log you posted does not show that 500 error. Please check the global log again and try to find the 500 error message.
More or less, exactly the following, following your Debian 12 perfect server guide, but "adapted" to Debian 13. This is also the exact same procedure for both the Thursday server and the "today" server... Code: hostnamectl set-hostname ***** nano /etc/hosts 127.0.0.1 localhost 127.0.1.1 ***** hostname getent hosts ***** apt update apt upgrade reboot apt -y install mariadb-server mariadb-client curl wget gnupg2 lsb-release locate mysql CREATE USER 'ispconfiguser'@'localhost' IDENTIFIED BY '***'; GRANT ALL PRIVILEGES ON *.* TO 'ispconfiguser'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; nano /etc/mysql/mariadb.conf.d/50-server.cnf Comment the following row #bind-address = 127.0.0.1 mkdir -p /etc/systemd/system/mysql.service.d/ nano /etc/systemd/system/mysql.service.d/limits.conf Paste into file; [Service] LimitNOFILE=infinity mkdir -p /etc/systemd/system/mariadb.service.d/ nano /etc/systemd/system/mariadb.service.d/limits.conf Paste into file; [Service] LimitNOFILE=infinity systemctl daemon-reexec systemctl restart mariadb apt -y install apache2 apache2-utils php php-fpm php-common php-cli php-cgi php-gd php-mysql php-curl php-intl php-pspell php-sqlite3 php-tidy php-xmlrpc php-xsl php-zip php-mbstring php-soap php-opcache php-apcu php-imagick imagemagick memcached php-memcached php-pear libapache2-mod-fcgid apache2-suexec-pristine libapache2-mod-passenger a2enmod proxy_fcgi setenvif a2enconf php8.4-fpm a2enmod suexec rewrite ssl include cgi headers alias nano /etc/apache2/conf-available/httpoxy.conf Paste into file; <IfModule mod_headers.c> RequestHeader unset Proxy early </IfModule> a2enconf httpoxy systemctl restart apache2 curl https://get.acme.sh | sh -s ln -s /root/.acme.sh/acme.sh /usr/local/bin/acme.sh acme.sh --set-default-ca --server letsencrypt cd /tmp wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz tar xfz ISPConfig-3-stable.tar.gz cd ispconfig3_install/install/ php -q install.php
ISPConfig on Debian 12 and 13 is typically installed like this: https://www.howtoforge.com/ispconfig-autoinstall-debian-ubuntu/ What you did above is not a complete and valid installation procedure, so I would expect such systems to fail. The step you posted above looks exactly like the known-to-fail invalid AI instructions I've mentioned. What you used is neither the old perfect server setup nor the autoinstall setup that is used in recent years. I'm confident you would have saved yourself all the errors and a lot of time by just following the official instructions we provide.
If you getting 500 on panel on debian 13 it could be a php permission issue, that I had: chattr -i /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter chmod 755 /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter and your panel will start working and start using autoinstaller that ispconfig now use. old guides are old. use this to install ispconfig on debian 13 (with system default php installation will fail, so you have to use sury which will be handled by autoinstaller). You have to set ip/hostname (if you didnt via debian installer), double check resolveconf is working and you ready to go, no need to install apache/mysql/php wget -O - https://get.ispconfig.org | sh -s -- --use-php=8.4
I still wonder, though, why you get that error, as the code that is setting this file up has not been changed for many years. I wonder if either you or Debian in the image you use has changed the default umask? In any case, we will set the chmod explicitly in the future. On my systems, umask is the same as in previous Debian versions, and that's probably why it works here.
The recommended way is to use the command from the installation guide, which is this one for an Apache server: Code: wget -O - https://get.ispconfig.org | sh -s -- --use-ftp-ports=40110-40210 --unattended-upgrades
I have not forgotten that. Using the recommended command from the tutorial avoids that problem as well. You had that issue only because you did not use the command from the tutorial, but instead forced the installer to use system php only. In fact, I will simply remove the ability to use system php only on Debian 13 to avoid users who customize the setup from being able to choose it.
You are right, its default: root@ispconfig5:~# umask 0002 every instance that I install return same thing, and I'm more than sure I did not tweak that, I only updated hosts, updated network settings, installed systemd-resolved and then autoinstall.
thx for the tip, my new install with ispconfig on debian 13 finished with an error 500. fyi : on the same server it works nice with debian 12. And with the same host provider it works on a VPS with debian 13 ...
Ok, here we have the issue. I just started up various machines from my archive from debian 7 to 13; Umask on Debian is and always was 0022 for the root user. I then just pinged a few fellow admins in the chat, and they sent me the umask of their Debian systems, root server, self installed desktops and so on. Umask is always 0022 for the user root, so your 0002 umask for root is not the norm for Debian and this changed umask on your system is the reason for the installation failure with the wrong file permissions that you got and also the reason why nobody else had such an issue. ISPConfig should have set this permissions or enforce standard umask and not rely on default umask to be correct, but basically your issue is really based on your base installation only, which is not the norm for Debian. Just a guess, maybe you always use a custom bashrc file which contains this, or something similar?
Ok. When you get a 500 error, you should have the error message in the global Apache error.log file. Please post that 500 error from there. And just to be sure, you logged in with: sudo -s or directly as root user, but not just sudo (see install guide).