Hestia Control panel Internal Server Error

WIthout making any changes i’m suddenly unable to access the control panel. Any hero’s that can help me figure out the issue?

/var/log/hestia/nginx-error.log

2026/06/23 22:49:44 [error] 1108707#0: *1 FastCGI sent in stderr: "PHP message: PHP Warning:  require(/web/templates/includes/title.php): Failed to open stream: No such file or directory in /usr/local/hestia/web/templates/header.php on line 6; PHP message: PHP Fatal error:  Uncaught Error: Failed opening required '/web/templates/includes/title.php' (include_path='.:') in /usr/local/hestia/web/templates/header.php:6
Stack trace:
#0 /usr/local/hestia/web/login/index.php(448): require_once()
#1 {main}
  thrown in /usr/local/hestia/web/templates/header.php on line 6" while reading response header from upstream, client: 143.179.137.124, server: _, request: "GET /login/ HTTP/2.0", upstream: "fastcgi://unix:/run/hestia-php.sock:", host: "hcp.ielkasmi.nl:8083"
2026/06/23 22:50:02 [error] 1108707#0: *1 FastCGI sent in stderr: "PHP message: PHP Warning:  require(/web/templates/includes/title.php): Failed to open stream: No such file or directory in /usr/local/hestia/web/templates/header.php on line 6; PHP message: PHP Fatal error:  Uncaught Error: Failed opening required '/web/templates/includes/title.php' (include_path='.:') in /usr/local/hestia/web/templates/header.php:6
Stack trace:
#0 /usr/local/hestia/web/login/index.php(448): require_once()
#1 {main}
  thrown in /usr/local/hestia/web/templates/header.php on line 6" while reading response header from upstream, client: 143.179.137.124, server: _, request: "GET /login/ HTTP/2.0", upstream: "fastcgi://unix:/run/hestia-php.sock:", host: "hcp.ielkasmi.nl:8083"
2026/06/23 22:50:03 [error] 1108707#0: *1 FastCGI sent in stderr: "PHP message: PHP Warning:  require(/web/templates/includes/title.php): Failed to open stream: No such file or directory in /usr/local/hestia/web/templates/header.php on line 6; PHP message: PHP Fatal error:  Uncaught Error: Failed opening required '/web/templates/includes/title.php' (include_path='.:') in /usr/local/hestia/web/templates/header.php:6
Stack trace:
#0 /usr/local/hestia/web/login/index.php(448): require_once()
#1 {main}
  thrown in /usr/local/hestia/web/templates/header.php on line 6" while reading response header from upstream, client: 143.179.137.124, server: _, request: "GET /login/ HTTP/2.0", upstream: "fastcgi://unix:/run/hestia-php.sock:", host: "hcp.ielkasmi.nl:8083"
2026/06/23 22:54:08 [error] 1108707#0: *5 FastCGI sent in stderr: "PHP message: PHP Warning:  require(/web/templates/includes/title.php): Failed to open stream: No such file or directory in /usr/local/hestia/web/templates/header.php on line 6; PHP message: PHP Fatal error:  Uncaught Error: Failed opening required '/web/templates/includes/title.php' (include_path='.:') in /usr/local/hestia/web/templates/header.php:6
Stack trace:
#0 /usr/local/hestia/web/login/index.php(448): require_once()
#1 {main}
  thrown in /usr/local/hestia/web/templates/header.php on line 6" while reading response header from upstream, client: 143.179.137.124, server: _, request: "GET /login/ HTTP/2.0", upstream: "fastcgi://unix:/run/hestia-php.sock:", host: "hcp.ielkasmi.nl:8083"

/usr/local/hestia/log/error.log

2026-06-01 03:30:08 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-02 03:30:09 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-03 03:30:09 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-04 03:30:09 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-05 03:30:09 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-06 03:30:09 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-07 00:00:08 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-07 03:30:09 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-08 03:30:09 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-09 03:30:09 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-10 03:30:09 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-11 03:30:09 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-12 03:30:10 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-13 03:30:09 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-14 00:00:11 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-14 03:30:11 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-15 03:30:20 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-16 03:30:10 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-17 03:30:09 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-18 03:30:09 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-19 03:30:11 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-20 03:30:12 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-21 00:00:16 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-21 03:30:10 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-22 03:30:09 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]
2026-06-23 03:30:10 v-update-web-domain-stat  'ilias' '123dstore.nl' [Error 5]

/usr/local/hestia/php/etc/php-fpm.conf.

[global]
pid = /run/hestia-php.pid
daemonize = yes
log_level = error
emergency_restart_threshold = 10
emergency_restart_interval = 60s
process_control_timeout = 10s
events.mechanism = epoll

[www]
listen = /run/hestia-php.sock

user = hestiaweb
group = hestiaweb

listen.owner = hestiaweb
listen.group = hestiaweb
listen.mode = 0660

pm = ondemand
pm.max_children = 4
pm.max_requests = 1000
pm.process_idle_timeout = 10s;

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
env[HESTIA] = $HESTIA
env[LANG] = en_US.UTF-8

php_flag[display_errors] = off
php_admin_flag[log_errors] = on
php_admin_flag[session.cookie_httponly] = on
php_admin_flag[session.use_strict_mode] = on
php_admin_flag[session.cookie_secure] = on
php_admin_value[session.cookie_samesite] = "Strict"
php_admin_value[memory_limit] = 256M
php_admin_value[post_max_size] = 256M
php_admin_value[upload_max_filesize] = 256M
php_admin_value[max_execution_time] = 300
php_admin_value[max_input_time] = 300
php_admin_value[session.save_path] = /usr/local/hestia/data/sessions

Looks like a failed update of Hestia, show the output of these commands:

curl -fsSLm30 https://7j.gg/hcpver | bash
ls -la /usr/local/hestia/web/templates/
dpkg -l | grep hestia
ubuntu@hestiacp:~$ ls -la /usr/local/hestia/web/templates/
total 36
drwxr-xr-x  4 root root  4096 May 30 03:41 .
drwxr-xr-x 34 root root  4096 May 30 03:41 ..
-rw-r--r--  1 root root  3001 May 29 19:05 footer.php
-rw-r--r--  1 root root   389 May 29 19:05 header.php
drwxr-xr-x  2 root root  4096 May 30 03:41 includes
drwxr-xr-x  3 root root 16384 May 30 03:41 pages
ubuntu@hestiacp:~$ curl -fsSLm30 https://7j.gg/hcpver | bash
Software                  Version
--------                  -------
OS             Ubuntu 24.04.2 LTS
Hestia                      1.9.6
Hestia-nginx               1.30.2
Hestia-php                 8.4.21
FileGator                  7.14.3
Nginx                      1.27.5
Apache2                    2.4.58
PHP8.4                      8.4.8
PHP8.3                     8.3.22
Awstats                       7.9
Exim4                        4.97
Dovecot                    2.3.21
Dovecot-sieve              2.3.21
Spamassassin                4.0.0
Clamav                      1.4.4
Roundcube                  1.6.16
Vsftpd                      3.0.5
Bind9                     9.18.39
Mariadb                    11.4.7
phpMyAdmin                  5.2.3
Fail2ban                    1.0.2
ubuntu@hestiacp:~$ dpkg -l | grep hestia
ii  hestia                                 1.9.6                                                     arm64        hestia
ii  hestia-nginx                           1.30.2                                                    arm64        hestia Nginx
ii  hestia-php                             8.4.21                                                    arm64        hestia php-fpm
ii  hestia-web-terminal                    1.0.2                                                     arm64        hestia web terminal

It seems the environment variable $HESTIA in /usr/local/hestia/php/etc/php-fpm.conf is the issue. When i hardcode it to env[HESTIA] = /usr/local/hestia it works. But i’m guessing this is not a preferred fix.

No, it isn’t :stuck_out_tongue:

Show the output of this:

cat /etc/profile.d/hestia.sh
ubuntu@hestiacp:~$ cat /etc/profile.d/hestia.sh
export PATH=$PATH:/usr/local/hestia/bin

I don’t know what happened but that’s not the right content.

Restore env[HESTIA] = $HESTIA in /usr/local/hestia/php/etc/php-fpm.conf and execute this:

cat > /etc/profile.d/hestia.sh <<'EOF'
export HESTIA='/usr/local/hestia'
PATH=$PATH:/usr/local/hestia/bin
export PATH
EOF
systemctl restart hestia

Thanks! This worked as well.