does ispconfig need any code changes to support php8.4 as an additional php? i've added it as an additional php on ubuntu 22.04 running the latest ispconfig, on both the master and on a dedicated webserver. on both of them, it doesn't work, just trying to access the basic phpinfo.php returns a 503 error. website error log: Code: [Fri Nov 22 14:01:58.824023 2024] [proxy:error] [pid 6676:tid 278270899712288] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /var/lib/php8.3-fpm/web260.sock (*:80) failed [Fri Nov 22 14:01:58.824146 2024] [proxy_fcgi:error] [pid 6676:tid 278270899712288] [remote 86.129.39.99:53772] AH01079: failed to make connection to backend: httpd-UDS when checking /var/lib/php8.3-fpm/ there is no web260.sock there, if i switch back between any of php 8.1, 8.2, or 8.3 the web260.sock is there as expected. the php settings are correct: Code: fastcgi settings Path to the PHP FastCGI binary /usr/bin/php-cgi/8.4 Path to the php.ini directory /etc/php/8.4/cgi php-fpm settings Path to the PHP-FPM init script /etc/init.d/php84-fpm Path to the php.ini directory /etc/php/8.4/fpm Path to the PHP-FPM pool directory /etc/php/8.4/fpm/pool.d i even added it to the jk_init.ini file: Code: [php8_4] comment = php version 8.4 paths = /usr/bin/php8.4, /usr/lib/php/8.4/, /usr/lib/php/20240924/, /usr/share/php/8.4/, /etc/php/8.4/cli/, /etc/php/8.4/mods-available/ includesections = php_common and it also creates the /etc/php/8.4/fpm/pool.d/web260.conf file ok, with, as far i can see see, all the correct settings: Code: [web260] listen = /var/lib/php8.3-fpm/web260.sock listen.owner = web260 listen.group = www-data listen.mode = 0660 user = web260 group = client1 pm = dynamic pm.max_children = 10 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 5 pm.max_requests = 0 chdir = / chroot = /var/www/clients/client1/web260 php_admin_value[doc_root] = /web env[HOSTNAME] = $HOSTNAME env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp env[PATH] = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin php_admin_value[open_basedir] = /web:/private:/tmp:/var/www/sectest.simplified.host/web:/srv/www/sectest.simplified.host/web:/usr/share/php5:/usr/share/php:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin:/dev/random:/dev/urandom php_admin_value[session.save_path] = /tmp php_admin_value[upload_tmp_dir] = /tmp php_admin_value[sendmail_path] = "/usr/sbin/sendmail -t -i -f [email protected]" also.. for anyone else about to try getting php8.4 added to their servers... there seems to be a bug/issue with php8.4-imagick... Code: PHP Warning: PHP Startup: Unable to load dynamic library 'imagick.so' (tried: /usr/lib/php/20240924/imagick.so (/usr/lib/php/20240924/imagick.so: undefined symbol: php_strtolower), /usr/lib/php/20240924/imagick.so.so (/usr/lib/php/20240924/imagick.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 there seems to be quite a few mentions about it online since 8.4 rc1.. so a known problem.. haven't seen anything suggesting any solutions yet..
I have not tested PHP 8.4. But there are not any specific settings for any other PHP version. But who knows, maybe PHP stopped support any of the standard FPM settings and variables we use. If there is no socket, then php-fpm fails to start and to create it. There should be an error somewhere in the logs. Try to restart php-fpm.8.4 and check the logs and also check for start errors in systemd. Also, you should try to disable chrooting. Maybe Chroot does not work in that new version yet.
ok.. now this is starting to get weird.. firstly. removing the chroot option on the website worked... phpinfo.php displayed all the info... for php8.4 i then set the site back to 8.3 in ispconfig.. and phpinfo.php for the site still displayed all the info... for php8.4 checking the php settings in /etc/alternatives, it's switched php-fpm sock to using 8.4: Code: ls -l /etc/alternatives/ | grep php lrwxrwxrwx 1 root root 15 Nov 20 15:18 php -> /usr/bin/php8.3 lrwxrwxrwx 1 root root 31 Nov 20 15:18 php.1.gz -> /usr/share/man/man1/php8.3.1.gz lrwxrwxrwx 1 root root 19 Oct 30 11:28 php-cgi -> /usr/bin/php-cgi8.3 lrwxrwxrwx 1 root root 35 Oct 30 11:28 php-cgi.1.gz -> /usr/share/man/man1/php-cgi8.3.1.gz lrwxrwxrwx 1 root root 23 Oct 30 11:28 php-cgi-bin -> /usr/lib/cgi-bin/php8.3 lrwxrwxrwx 1 root root 18 Nov 16 18:52 phpdbg -> /usr/bin/phpdbg8.4 lrwxrwxrwx 1 root root 34 Nov 16 18:52 phpdbg.1.gz -> /usr/share/man/man1/phpdbg8.4.1.gz lrwxrwxrwx 1 root root 24 Nov 22 14:56 php-fpm.sock -> /run/php/php8.4-fpm.sock and now there's no option to set it back to what should be the default, 8.3, or to 8.1 either, which is also installed... Code: update-alternatives --config php-fpm.sock There are 2 choices for the alternative php-fpm.sock (providing /run/php/php-fpm.sock). Selection Path Priority Status ------------------------------------------------------------ * 0 /run/php/php8.4-fpm.sock 84 auto mode 1 /run/php/php8.2-fpm.sock 82 manual mode 2 /run/php/php8.4-fpm.sock 84 manual mode Press <enter> to keep the current choice[*], or type selection number:
But the global PHP-FPM socket should not affect a website in ISPConfig. it will just affect a default vhost. Have you checked in the website vhsot file which socket path is mentioned there? Also, check if there is a .err file for the website now. It might be that ISPConfig can't change set site config anymore because Apache/nginx report and error or fail otherwise. In general, its good to use debug mode to see in detail what's going on.
ok.. perhaps it's not the chroot setting.. just run 'apt install --reinstall php8.1-fpm php8.3-fpm' and got the alternatives options back, and set php-fpm.sock back to manual /run/php/8.3-fpm.sock.. site is back to displaying the php8.3 info for phpinfo.php. then, still leaving the site chroot option disabled, set the site to php 8.4 again, and this time it returns the 503 error again.. no web260.sock in /var/lib/php8.3-fpm/ no .err file in /etc/apache2/sites-available, correct web260.conf file in /etc/php/8.4/fpm/pool.d this also seems to trigger an email from ispconfig... to the admin email configured in system - main config, which is different to the addresses configured in /etc/aliases, so it's definitely ispconfig sending it. ccontents of email: Code: nbg-web101.simplified.host - 22.11.2024-15:26 - WARNING - We got no init command, restart or reload of php-fpm service aborted. can't find anything like that in the logs though. i restarted php8.4-fpm service, and it created the web260.sock file, and the website displayed the phpinfo info. as it applies the website settings... the php8.3-fpm.sock option disappears from the update-alternatives --config php-fpm.sock options again, still no .err file in /etc/apache2/sites-available.. get another email from ispconfig.. nbg-web101.simplified.host - 22.11.2024-15:46 - WARNING - We got no init command, restart or reload of php-fpm service aborted. all socket settings in the vhost file refer to /var/lib/php8.3-fpm/web260.sock, or fcgi://localhost: Code: FastCgiExternalServer /var/www/clients/client1/web260/cgi-bin/php-fcgi-*-80-sectest.simplified.host -idle-timeout 300 -socket /var/lib/php8.3-fpm/web260.sock -pass-header Authorization -pass-header Content-Type </IfModule> <IfModule mod_proxy_fcgi.c> #ProxyPassMatch ^/(.*\.php[345]?(/.*)?)$ unix:///var/lib/php8.3-fpm/web260.sock|fcgi://localhost//var/www/clients/client1/web260/web/$1 <Directory /var/www/sectest.simplified.host/web> <FilesMatch "\.php[345]?$"> <If "-f '%{REQUEST_FILENAME}'"> SetHandler "proxy:unix:/var/lib/php8.3-fpm/web260.sock|fcgi://localhost" looks like when trying to change back.. php8.3-fpm gets killed: Code: × php8.3-fpm.service - The PHP 8.3 FastCGI Process Manager Loaded: loaded (/usr/lib/systemd/system/php8.3-fpm.service; enabled; preset: enabled) Active: failed (Result: exit-code) since Fri 2024-11-22 15:52:52 GMT; 1min 8s ago Duration: 33min 54.261s Docs: man:php-fpm8.3(8) Process: 44281 ExecStart=/usr/sbin/php-fpm8.3 --nodaemonize --fpm-config /etc/php/8.3/fpm/php-fpm.conf (code=exited, status=78) Process: 44283 ExecStopPost=/usr/lib/php/php-fpm-socket-helper remove /run/php/php-fpm.sock /etc/php/8.3/fpm/pool.d/www.conf 83 (code=exited, status=0/SUCCESS) Main PID: 44281 (code=exited, status=78) CPU: 72ms looks like php 8.4 isn't giving up the socket: journalctl -xeu php8.3-fpm.service Code: ░░ The job identifier is 20540. Nov 22 15:54:52 nbg-web101 php-fpm8.3[44367]: [22-Nov-2024 15:54:52] ERROR: Another FPM instance seems to already listen on /var/lib/php8.3-fpm/web260.sock Nov 22 15:54:52 nbg-web101 php-fpm8.3[44367]: [22-Nov-2024 15:54:52] ERROR: FPM initialization failed Nov 22 15:54:52 nbg-web101 systemd[1]: php8.3-fpm.service: Main process exited, code=exited, status=78/CONFIG ░░ Subject: Unit process exited ░░ Defined-By: systemd ░░ Support: http://www.ubuntu.com/support stopping php8.4-fpm, restarting php8.3-fpm, then starting php8.4-fpm again seems to resolve things, and returns php8.3-fpm back to the update-alternatives options, albeit still with php8.4-fpm sock selected in auto mode. Code: update-alternatives --config php-fpm.sock There are 4 choices for the alternative php-fpm.sock (providing /run/php/php-fpm.sock). Selection Path Priority Status ------------------------------------------------------------ * 0 /run/php/php8.4-fpm.sock 84 auto mode 1 /run/php/php8.1-fpm.sock 81 manual mode 2 /run/php/php8.2-fpm.sock 82 manual mode 3 /run/php/php8.3-fpm.sock 83 manual mode 4 /run/php/php8.4-fpm.sock 84 manual mode
Use the debug mode to get more details: https://www.faqforge.com/linux/debugging-ispconfig-3-server-actions-in-case-of-a-failure/ Are you sure this is correct on your system? Path to the PHP-FPM init script: /etc/init.d/php84-fpm On Debian and Ubuntu with Sury packages, the setting would be: Path to the PHP-FPM init script: php8.4-fpm
debug mode enabled.. logs from site working on php8.3-fpm, and attempting to switch to php8.4-fpm: Code: 2.11.2024-16:05 - DEBUG [plugins.inc:118] - Calling function 'update' from plugin 'network_settings_plugin' raised by event 'server_update'. 22.11.2024-16:05 - DEBUG [network settings plugin.inc:249] - Network configuration disabled in server settings. 22.11.2024-16:05 - DEBUG [plugins.inc:118] - Calling function 'update' from plugin 'server_services_plugin' raised by event 'server_update'. 22.11.2024-16:05 - DEBUG [plugins.inc:118] - Calling function 'server_update' from plugin 'webserver_plugin' raised by event 'server_update'. 22.11.2024-16:05 - DEBUG [modules.inc:205] - Processed datalog_id 15407 22.11.2024-16:05 - DEBUG [services.inc:56] - Calling function 'restartHttpd' from module 'web_module'. 22.11.2024-16:05 - DEBUG [system.inc:2089] - Trying to use Systemd to restart service 22.11.2024-16:05 - DEBUG [system.inc:2436] - safe_exec cmd: systemctl is-enabled 'apache2' 2>&1 - return code: 0 22.11.2024-16:05 - DEBUG [web module.inc:246] - Restarting httpd: systemctl restart apache2.service 22.11.2024-16:05 - DEBUG [server:224] - Remove Lock: /usr/local/ispconfig/server/temp/.ispconfig_lock 22.11.2024-16:06 - DEBUG [z php fpm incron reload plugin.inc:31] - You must install incron in order to use this plugin 22.11.2024-16:06 - DEBUG [plugins.inc:155] - Calling function 'check_phpini_changes' from plugin 'webserver_plugin' raised by action 'server_plugins_loaded'. 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: grep ^opcache.validate_root '/etc/php/8.3/fpm/php.ini' - return code: 0 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: grep ^opcache.validate_root '/etc/php/8.3/cgi/php.ini' - return code: 0 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: grep ^opcache.validate_root '/etc/php/8.1/cgi/php.ini' - return code: 0 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: grep ^opcache.validate_root '/etc/php/8.1/fpm/php.ini' - return code: 0 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: grep ^opcache.validate_root '/etc/php/8.2/cgi/php.ini' - return code: 0 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: grep ^opcache.validate_root '/etc/php/8.2/fpm/php.ini' - return code: 0 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: grep ^opcache.validate_root '/etc/php/8.1/cgi/php.ini' - return code: 0 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: grep ^opcache.validate_root '/etc/php/8.1/fpm/php.ini' - return code: 0 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: grep ^opcache.validate_root '/etc/php/8.2/cgi/php.ini' - return code: 0 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: grep ^opcache.validate_root '/etc/php/8.2/fpm/php.ini' - return code: 0 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: grep ^opcache.validate_root '/etc/php/8.4/cgi/php.ini' - return code: 0 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: grep ^opcache.validate_root '/etc/php/8.4/fpm/php.ini' - return code: 0 22.11.2024-16:06 - DEBUG [server:184] - Found 1 changes, starting update process. 22.11.2024-16:06 - DEBUG [modules.inc:177] - Replicated from master: REPLACE INTO `web_domain` (`domain_id`,`sys_userid`,`sys_groupid`,`sys_perm_user`,`sys_perm_group`,`sys_perm_other`,`server_id`,`ip_address`,`ipv6_address`,`domain`,`type`,`parent_domain_id`,`vhost_type`,`document_root`,`web_folder`,`system_user`,`system_group`,`hd_quota`,`traffic_quota`,`cgi`,`ssi`,`suexec`,`errordocs`,`is_subdomainwww`,`subdomain`,`php`,`ruby`,`python`,`perl`,`redirect_type`,`redirect_path`,`seo_redirect`,`rewrite_to_https`,`ssl`,`ssl_letsencrypt`,`ssl_letsencrypt_exclude`,`ssl_state`,`ssl_locality`,`ssl_organisation`,`ssl_organisation_unit`,`ssl_country`,`ssl_domain`,`ssl_request`,`ssl_cert`,`ssl_bundle`,`ssl_key`,`ssl_action`,`stats_password`,`stats_type`,`allow_override`,`apache_directives`,`nginx_directives`,`php_fpm_use_socket`,`php_fpm_chroot`,`pm`,`pm_max_children`,`pm_start_servers`,`pm_min_spare_servers`,`pm_max_spare_servers`,`pm_process_idle_timeout`,`pm_max_requests`,`php_open_basedir`,`custom_php_ini`,`backup_interval`,`backup_copies`,`backup_format_web`,`backup_format_db`,`backup_encrypt`,`backup_password`,`backup_excludes`,`active`,`traffic_quota_lock`,`proxy_directives`,`last_quota_notification`,`rewrite_rules`,`added_date`,`added_by`,`directive_snippets_id`,`enable_pagespeed`,`http_port`,`https_port`,`folder_directive_snippets`,`log_retention`,`proxy_protocol`,`server_php_id`,`jailkit_chroot_app_sections`,`jailkit_chroot_app_programs`,`delete_unused_jailkit`,`last_jailkit_update`,`last_jailkit_hash`,`disable_symlinknotowner`) VALUES ('260','1','2','riud','ru','','12','*','','sectest.simplified.host','vhost','0','name','/var/www/clients/client1/web260','','web260','client1','-1','-1','n','n','y','1','1','none','php-fpm','n','n','n','','','','y','y','y','n',NULL,NULL,NULL,NULL,NULL,NULL,'','',NULL,'','',NULL,'awstats','All','','','y','n','dynamic','10','2','1','5','10','0','/var/www/clients/client1/web260/web:/var/www/clients/client1/web260/private:/var/www/clients/client1/web260/tmp:/var/www/sectest.simplified.host/web:/srv/www/sectest.simplified.host/web:/usr/share/php5:/usr/share/php:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin:/dev/random:/dev/urandom','','none','1','default','gzip','n','',NULL,'y','n','',NULL,'','2024-11-22','admin','0','n','80','443',NULL,'10','n','39','','','y',NULL,NULL,'n') 22.11.2024-16:06 - DEBUG [plugins.inc:118] - Calling function 'ssl' from plugin 'apache2_plugin' raised by event 'web_domain_update'. 22.11.2024-16:06 - DEBUG [plugins.inc:118] - Calling function 'update' from plugin 'apache2_plugin' raised by event 'web_domain_update'. 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: chattr -i '/var/www/clients/client1/web260' - return code: 0 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: chattr +i '/var/www/clients/client1/web260' - return code: 0 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: df -T '/var/www/clients/client1/web260'|awk 'END{print $2,$NF}' - return code: 0 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: which 'setquota' 2> /dev/null - return code: 0 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: setquota -u 'web260' '0' '0' 0 0 -a &> /dev/null - return code: 0 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: setquota -T -u 'web260' 604800 604800 -a &> /dev/null - return code: 0 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: chattr +i '/var/www/clients/client1/web260' - return code: 0 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: which 'apache2ctl' 2> /dev/null - return code: 0 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: which 'apache2ctl' 2> /dev/null - return code: 0 22.11.2024-16:06 - DEBUG [apache2 plugin.inc:1831] - Enable SSL for: sectest.simplified.host 22.11.2024-16:06 - DEBUG [apache2 plugin.inc:1892] - Writing the vhost file: /etc/apache2/sites-available/sectest.simplified.host.vhost 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: which 'apache2ctl' 2> /dev/null - return code: 0 22.11.2024-16:06 - DEBUG [apache2 plugin.inc:3464] - Writing the PHP-FPM config file: /etc/php/8.4/fpm/pool.d/web260.conf 22.11.2024-16:06 - DEBUG [apache2 plugin.inc:3473] - Removed PHP-FPM config file: /etc/php/8.3/fpm/pool.d/web260.conf 22.11.2024-16:06 - DEBUG [services.inc:56] - Calling function 'restartPHP_FPM' from module 'web_module'. 22.11.2024-16:06 - DEBUG [system.inc:2089] - Trying to use Systemd to restart service 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: systemctl is-enabled 'php8.3-fpm' 2>&1 - return code: 0 22.11.2024-16:06 - DEBUG [web module.inc:316] - Restarting php-fpm: systemctl reload php8.3-fpm.service 22.11.2024-16:06 - DEBUG [services.inc:56] - Calling function 'restartPHP_FPM' from module 'web_module'. 22.11.2024-16:06 - DEBUG [system.inc:2089] - Trying to use Systemd to restart service 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: systemctl is-enabled 'php84-fpm' 2>&1 - return code: 4 22.11.2024-16:06 - DEBUG [system.inc:2106] - Failed to use Systemd to restart service php84-fpm, we try init script instead. 22.11.2024-16:06 - DEBUG [system.inc:2116] - Using init script to restart service 22.11.2024-16:06 - WARNING - No init script, we quit here. 22.11.2024-16:06 - DEBUG [web module.inc:316] - Restarting php-fpm: 22.11.2024-16:06 - WARNING - We got no init command, restart or reload of php-fpm service aborted. 22.11.2024-16:06 - DEBUG [apache2 plugin.inc:2010] - Apache status is: running 22.11.2024-16:06 - DEBUG [services.inc:56] - Calling function 'restartHttpd' from module 'web_module'. 22.11.2024-16:06 - DEBUG [system.inc:2089] - Trying to use Systemd to restart service 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: systemctl is-enabled 'apache2' 2>&1 - return code: 0 22.11.2024-16:06 - DEBUG [web module.inc:246] - Restarting httpd: systemctl restart apache2.service 22.11.2024-16:06 - DEBUG [apache2 plugin.inc:2013] - Apache restart return value is: 0 22.11.2024-16:06 - DEBUG [apache2 plugin.inc:2024] - Apache online status after restart is: running 22.11.2024-16:06 - DEBUG [modules.inc:205] - Processed datalog_id 15408 22.11.2024-16:06 - DEBUG [server:224] - Remove Lock: /usr/local/ispconfig/server/temp/.ispconfig_lock 22.11.2024-16:07 - DEBUG [z php fpm incron reload plugin.inc:31] - You must install incron in order to use this plugin 22.11.2024-16:07 - DEBUG [plugins.inc:155] - Calling function 'check_phpini_changes' from plugin 'webserver_plugin' raised by action 'server_plugins_loaded'. looks to me like this part could be the problem... 22.11.2024-16:06 - DEBUG [system.inc:2436] - safe_exec cmd: systemctl is-enabled 'php84-fpm' 2>&1 - return code: 4 22.11.2024-16:06 - DEBUG [system.inc:2106] - Failed to use Systemd to restart service php84-fpm, we try init script instead looks like a missing . in php84-fpm but no idea currently where it's getting that from. just tried going back to 8.3-fpm and the logs show 22.11.2024-16:14 - DEBUG [system.inc:2436] - safe_exec cmd: systemctl is-enabled 'php8.3-fpm' 2>&1 - return code: 0 22.11.2024-16:14 - DEBUG [web module.inc:316] - Restarting php-fpm: systemctl reload php8.3-fpm.service so definitely appears to be a missing . in the php8.4-fpm service causing an issue.
AAARRGGGHH. yep.. that looks a likely culprit.. you wouldn't believe the number of times i've checked and rechecked those settings today and not picked that up.. i'm.. just going to slink away in shame now....
right.. i've fixed the typo, and switched the site between different php versions multiple times, and it's all working ok now.. so it was all just a (hopefully temporary) admin IQ underflow error..
Just installed PHP 8.4 and added it as additional PHP version in ISPC (Ubuntu 24.04). All seems to be working fine from the get go. In addition I've kept system default to PHP 8.3 because of the yet unknown compatibility with ISPC.