Installation error: Chowning directories...PHP Fatal error: Maximum execution time of 750 seconds exceeded in /var/www/html/admin/libraries/Console/Chown.class.php on line 456

I just tried to install FreePBX 17 on Debian 12.15/x86_64, using installation script. This ended with error (the last few lines):

2026-08-12 12:26:07 - Installing asterisk22-snmp …
2026-08-12 12:26:12 - asterisk22-snmp installed successfully…
2026-08-12 12:26:12 - Installing asterisk22-speex …
2026-08-12 12:26:17 - asterisk22-speex installed successfully…
2026-08-12 12:26:17 - Installing asterisk22-sqlite3 …
2026-08-12 12:26:22 - asterisk22-sqlite3 installed successfully…
2026-08-12 12:26:22 - Installing asterisk22-res-digium-phone …
2026-08-12 12:26:27 - asterisk22-res-digium-phone installed successfully…
2026-08-12 12:26:27 - Installing asterisk22-voicemail …
2026-08-12 12:26:32 - asterisk22-voicemail installed successfully…
2026-08-12 12:26:32 - Installing asterisk22.0-freepbx-asterisk-modules …
2026-08-12 12:26:36 - asterisk22.0-freepbx-asterisk-modules installed successfully…
2026-08-12 12:26:37 - Installing asterisk-version-switch …
2026-08-12 12:26:41 - asterisk-version-switch installed successfully…
2026-08-12 12:26:41 - Installing asterisk-sounds-* …
2026-08-12 12:29:29 - asterisk-sounds-* installed successfully…
2026-08-12 12:29:29 - Installing FreePBX packages
2026-08-12 12:29:29 - Installing sysadmin17 …
2026-08-12 12:29:44 - sysadmin17 installed successfully…
2026-08-12 12:29:44 - Installing sangoma-pbx17 …
2026-08-12 12:29:59 - sangoma-pbx17 installed successfully…
2026-08-12 12:29:59 - Installing ffmpeg …
2026-08-12 12:30:05 - ffmpeg installed successfully…
2026-08-12 12:30:05 - Enabling modules.
2026-08-12 12:30:05 - Restarting fail2ban
2026-08-12 12:30:06 - Installing FreePBX 17
2026-08-12 12:30:06 - Installing ioncube-loader-82 …
2026-08-12 12:30:11 - ioncube-loader-82 installed successfully…
2026-08-12 12:30:11 - Installing freepbx17 …
2026-08-12 12:38:51 - freepbx17 installed successfully…
2026-08-12 12:38:51 - Installing all local modules
2026-08-12 12:38:55 - Upgrading FreePBX 17 modules
2026-08-12 12:59:44 - Installation failed at step Upgrading FreePBX 17 modules. Please check log /var/log/pbx/freepbx17-install-2026.08.12-12.13.58.log for details.
2026-08-12 12:59:44 - Displaying last 10 lines from the log file
Chowning directories…Done
Chowning directories…Done
Chowning directories…PHP Fatal error: Maximum execution time of 750 seconds exceeded in /var/www/html/admin/libraries/Console/Chown.class.php on line 456
Whoops\Exception\ErrorException: Maximum execution time of 750 seconds exceeded in file /var/www/html/admin/libraries/Console/Chown.class.php on line 456
Stack trace:

  1. Whoops\Exception\ErrorException->() /var/www/html/admin/libraries/Console/Chown.class.php:456
  2. Whoops\Run->handleError() /var/www/html/admin/libraries/Composer/vendor/filp/whoops/src/Whoops/Run.php:510
  3. Whoops\Run->handleShutdown() [internal]:0
    2026-08-12 12:59:44 - ****** INSTALLATION FAILED *****
    2026-08-12 12:59:44 - Error at line: 1307 exiting with code 255 (last command was: fwconsole ma upgradeall >> “$log”)
    2026-08-12 12:59:44 - Exiting script

and /var/log/pbx/freepbx17-install-2026.08.12-12.13.58.log tail is:

Extracting…Done
Download completed in 2 seconds
Updating tables virtual_queue_config, vqplus_queue_config, vqplus_qrule_config, vqplus_qrule_detail, vqplus_callback_config, vqplus_callback_calls, vqplus_callback_log, vqplus_callback_daemon_log, vqplus_qpause_codes…Done
Installing/Updating Required Libraries. This may take a while…The following messages are ONLY FOR DEBUGGING. Ignore anything that says ‘WARN’ or is just a warning
Running installation..
npm WARN deprecated [email protected]: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).

added 17 packages, and audited 18 packages in 3s

3 vulnerabilities (1 moderate, 1 high, 1 critical)

To address issues that do not require attention, run:
npm audit fix

Some issues need review, and may require choosing
a different dependency.

Run npm audit for details.

Finished updating libraries!
Generating CSS…Done
Module vqplus version 17.0.11 successfully installed
Updating Hooks…Done
Chowning directories…Done
All upgrades completed successfully!
Updating Hooks…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…Done
Chowning directories…PHP Fatal error: Maximum execution time of 750 seconds exceeded in /var/www/html/admin/libraries/Console/Chown.class.php on line 456
Whoops\Exception\ErrorException: Maximum execution time of 750 seconds exceeded in file /var/www/html/admin/libraries/Console/Chown.class.php on line 456
Stack trace:

  1. Whoops\Exception\ErrorException->() /var/www/html/admin/libraries/Console/Chown.class.php:456
  2. Whoops\Run->handleError() /var/www/html/admin/libraries/Composer/vendor/filp/whoops/src/Whoops/Run.php:510
  3. Whoops\Run->handleShutdown() [internal]:0
    2026-08-12 12:59:44 - ****** INSTALLATION FAILED *****
    2026-08-12 12:59:44 - Error at line: 1307 exiting with code 255 (last command was: fwconsole ma upgradeall >> “$log”)
    2026-08-12 12:59:44 - Exiting script

/var/www/html/admin/libraries/Console/Chown.class.php at line 456 :

 435 public function chgrp($progress, $files, $group, $recursive = false) {
 436         foreach ($this->toIterator($files) as $file) {
 437                 if(!is_null($progress)) {
 438                         $progress->advance();
 439                 }
 440                 if(!file_exists($file)) {
 441                         continue;
 442                 }
 443                 if($this->checkBlacklist($file)){
 444                         $this->d(sprintf(_('%s skipped by configuration'), $file));
 445                         continue;
 446                 }
 447                 if ($recursive && is_dir($file) && !is_link($file)) {
 448                         $this->chgrp($progress, new \FilesystemIterator($file), $group, true);
 449                 }
 450                 if (is_link($file) && function_exists('lchgrp')) {
 451                         $this->d("Setting ".$file." group owner: ".$group);
 452                         if (true !== @lchgrp($file, $group) || (defined('HHVM_VERSION') && !posix_getgrnam($group))) {
 453                                 throw new IOException(sprintf('Failed to chgrp file "%s".', $file), 0, null, $file);
 454                         }
 455                 } else {
*456                         if (true !== @chgrp($file, $group)) {
 457                                 $this->d("Setting ".$file." group owner: ".$group);
 458                                 throw new IOException(sprintf('Failed to chgrp file "%s".', $file), 0, null, $file);
 459                         }
 460                 }
 461         }
 462 }
`
I can't think of where the problem could be. Can anyone advise?
Thanks in advance, Franta H.

I tried running the installation script sng_freepbx_debian_install.sh one more time. And lo and behold - the second run seems to have completed successfully, and the FreePBX web interface now appears to be working (previously, only the default Debian homepage was displayed)!
The end of the console output is now:

2026-08-12 15:10:12 - Updating repository
2026-08-12 15:10:20 - Installing required packages
2026-08-12 15:10:33 - Removing unnecessary packages
2026-08-12 15:10:35 - Execution time to install all the dependent packages : 41 s
2026-08-12 15:10:35 - Setting up folders and asterisk config
2026-08-12 15:10:37 - Installing Asterisk packages.
2026-08-12 15:10:39 - Installing FreePBX packages
2026-08-12 15:10:39 - Enabling modules.
2026-08-12 15:10:39 - Restarting fail2ban
2026-08-12 15:10:41 - Installing FreePBX 17
2026-08-12 15:10:41 - Installing all local modules
2026-08-12 15:10:43 - Upgrading FreePBX 17 modules
2026-08-12 15:10:48 - Reloading and restarting FreePBX 17
2026-08-12 15:12:36 - Wrapping up the installation process
2026-08-12 15:12:39 - Holding Packages
2026-08-12 15:12:42 - Setting up logrotate.conf
2026-08-12 15:12:43 - Creating script to run post every apt command is finished executing
2026-08-12 15:12:43 - Refreshing modules signatures.
2026-08-12 15:13:21 - FreePBX 17 Installation finished successfully.
2026-08-12 15:13:21 - Post-installation validation
2026-08-12 15:13:21 - Apache2 service is running on port 80.
2026-08-12 15:13:21 - Installed PHP version 8.2.33 is compatible with FreePBX.
2026-08-12 15:13:25 - All Modules are Enabled.
2026-08-12 15:13:26 - restapps module is assigned to its default port.
2026-08-12 15:13:27 - restapi module is assigned to its default port.
2026-08-12 15:13:28 - ucp module is assigned to its default port.
2026-08-12 15:13:29 - acp module is assigned to its default port.
2026-08-12 15:13:30 - hpro module is assigned to its default port.
2026-08-12 15:13:31 - leport module is assigned to its default port.
2026-08-12 15:13:32 - sslrestapps module is assigned to its default port.
2026-08-12 15:13:33 - sslrestapi module is assigned to its default port.
2026-08-12 15:13:34 - sslucp module is assigned to its default port.
2026-08-12 15:13:35 - sslacp module is assigned to its default port.
2026-08-12 15:13:36 - sslhpro module is assigned to its default port.
2026-08-12 15:13:37 - sslsngphone module is assigned to its default port.
2026-08-12 15:13:39 - No Offline Processes found.
2026-08-12 15:13:40 - Job list : +----+----------------------+-----------------------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------+---------+
| ID | Module               | Job                               | Cron         | Next Run            | Action                                                                                                                                 | Enabled |
+----+----------------------+-----------------------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------+---------+
| 8  | cdrpro               | livecallsync                      | */5 * * * *  | 2026-08-12 13:15:00 | Class: FreePBX\modules\Cdrpro\Job                                                                                                      | Yes     |
| 16 | pbxmfa               | checkUserTrustedDevicesAndLicense | 0 0 * * *    | 2026-08-13 00:00:00 | Class: FreePBX\modules\Pbxmfa\Job                                                                                                      | Yes     |
| 3  | sysadmin             | checkportal                       | @daily       | 2026-08-13 00:00:00 | Command: [ -e /var/www/html/admin/modules/sysadmin/bin/check_portal.php ] && /var/www/html/admin/modules/sysadmin/bin/check_portal.php | Yes     |
| 4  | sysadmin             | ddnsupdate                        | @daily       | 2026-08-13 00:00:00 | Class: FreePBX\modules\Sysadmin\Job\DdnsUpdate                                                                                         | Yes     |
| 5  | sysadmin             | checkstorage                      | @hourly      | 2026-08-12 14:00:00 | Command: [ -x /var/lib/asterisk/bin/storage.php ] && /var/lib/asterisk/bin/storage.php                                                 | Yes     |
| 6  | endpoint             | clearcdr                          | 5 * * * *    | 2026-08-12 14:05:00 | Class: FreePBX\modules\Endpoint\Job                                                                                                    | Yes     |
| 7  | calendar             | sync                              | * * * * *    | 2026-08-12 13:14:00 | Class: FreePBX\modules\Calendar\Job                                                                                                    | Yes     |
| 9  | dashboard            | scheduler                         | * * * * *    | 2026-08-12 13:14:00 | Class: FreePBX\modules\Dashboard\Job                                                                                                   | Yes     |
| 10 | firewall             | firewall                          | */15 * * * * | 2026-08-12 13:15:00 | Command: [ -e /etc/asterisk/firewall.enabled ] && touch /var/spool/asterisk/incron/firewall.firewall                                   | Yes     |
| 11 | firewall             | syncIDetection                    | */5 * * * *  | 2026-08-12 13:15:00 | Command: [ -e /usr/sbin/fwconsole ] && /usr/sbin/fwconsole firewall sync                                                               | Yes     |
| 12 | restapps             | deletesymlinks                    | 0 1 * * *    | 2026-08-13 01:00:00 | Command: /usr/sbin/fwconsole phoneapps --deletesymlinks                                                                                | Yes     |
| 19 | qxact_reports        | sync                              | */5 * * * *  | 2026-08-12 13:15:00 | Command: /usr/sbin/fwconsole qxactreports --sync -q 2>&1 > /dev/null                                                                   | Yes     |
| 20 | qxact_reports        | queuelogretention                 | 1 0 * * *    | 2026-08-13 00:01:00 | Class: FreePBX\modules\Qxact_reports\Job                                                                                               | Yes     |
| 21 | recording_report     | clean                             | 30 22 * * *  | 2026-08-12 22:30:00 | Command: /usr/sbin/fwconsole recordingreports -s -c                                                                                    | Yes     |
| 22 | recording_report     | backup                            | 0 0 1 * *    | 2026-09-01 00:00:00 | Command: php /var/lib/asterisk/agi-bin/backuprecordings.php                                                                            | Yes     |
| 23 | sangomaconnect       | sync                              | */5 * * * *  | 2026-08-12 13:15:00 | Command: /var/www/html/admin/modules/sangomaconnect/bin/keep_alive.php 2>&1 >/dev/null                                                 | Yes     |
| 24 | sangomaconnect       | checkSSL                          | 0 2 * * *    | 2026-08-13 02:00:00 | Command: /var/www/html/admin/modules/sangomaconnect/bin/check_certificates_sc.php 2>&1 >/dev/null                                      | Yes     |
| 25 | sangomaconnect       | checkLicense                      | 0 1 * * *    | 2026-08-13 01:00:00 | Command: /var/www/html/admin/modules/sangomaconnect/bin/check_license_sc.php                                                           | Yes     |
| 26 | sangomaconnect       | clean                             | @daily       | 2026-08-13 00:00:00 | Command: /usr/sbin/fwconsole sc cleanGarbageDeviceData 2>&1 > /dev/null                                                                | Yes     |
| 27 | sangomaconnect       | cleanupOldChats                   | @daily       | 2026-08-13 00:00:00 | Command: /var/www/html/admin/modules/sangomaconnect/bin/cleanup_sangoma_phone_chats.php 2>&1 >/dev/null                                | Yes     |
| 28 | sipstation           | check                             | @daily       | 2026-08-13 00:00:00 | Command: [ -x /var/lib/asterisk/bin/freepbx_sipstation_check ] && /var/lib/asterisk/bin/freepbx_sipstation_check 2>&1 > /dev/null      | Yes     |
| 29 | vqplus_callback_logs | sync                              | 59 23 * * *  | 2026-08-12 23:59:00 | Command: /usr/sbin/fwconsole vqplus daemonlog -q 2>&1 > /dev/null                                                                      | Yes     |
| 30 | timeconditions       | schedtc                           | * * * * *    | 2026-08-12 13:14:00 | Class: FreePBX\modules\Timeconditions\Job                                                                                              | Yes     |
| 32 | oc                   | health                            | @daily       | 2026-08-13 00:00:00 | Command: /usr/sbin/fwconsole oracle health --logs > /dev/null 2>&1                                                                     | Yes     |
| 33 | pms                  | wu_alert                          | * * * * *    | 2026-08-12 13:14:00 | Class: FreePBX\modules\Pms\Job                                                                                                         | Yes     |
| 34 | pms                  | mk_dirty                          | @daily       | 2026-08-13 00:00:00 | Command: /usr/sbin/fwconsole pms mk_dirty > /dev/null 2>&1                                                                             | Yes     |
+----+----------------------+-----------------------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------+---------+
2026-08-12 15:13:40 - Asterisk 22.10.1
2026-08-12 15:13:40 - Installed Digium Phones module version: (22.0_3.6.12)
2026-08-12 15:13:40 - Total script Execution Time: 226
2026-08-12 15:13:40 - Finished FreePBX 17 installation process for voipsrv Linux voipsrv 6.1.0-52-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.180-1 (2026-08-03) x86_64 GNU/Linux
2026-08-12 15:13:40 - Join us on the FreePBX Community Forum: https://community.freepbx.org/ 
______                   ______ ______ __   __
|  ___|                  | ___ \| ___ \\ \ / /
| |_    _ __   ___   ___ | |_/ /| |_/ / \ V / 
|  _|  | '__| / _ \ / _ \|  __/ | ___ \ /   \ 
| |    | |   |  __/|  __/| |    | |_/ // /^\ \
\_|    |_|    \___| \___|\_|    \____/ \/   \/
                                              
                                              
NOTICE! You have 4 notifications! Please log into the UI to see them!
Current Network Configuration
+-----------+-------------------+----------------------------------------+
| Interface | MAC Address       | IP Addresses                           |
+-----------+-------------------+----------------------------------------+
| enp2s0    | 50:EB:F6:27:97:25 | 172.31.48.149                          |
|           |                   | fe80::52eb:f6ff:fe27:9725              |
+-----------+-------------------+----------------------------------------+

Please note most tasks should be handled through the GUI.
You can access the GUI by typing one of the above IPs in to your web browser.
For support please visit: 
    http://www.freepbx.org/support-and-professional-services

+---------------------------------------------------------------------+
| This machine is not activated.  Activating your system ensures that |
| your machine is eligible for support and that it has the ability to |
| install Commercial Modules.                                         |
|                                                                     |
| If you already have a Deployment ID for this machine, simply run:   |
|                                                                     |
|    fwconsole sysadmin activate deploymentid                         |
|                                                                     |
| to assign that Deployment ID to this system. If this system is new, |
| please go to Activation (which is on the System Admin page in the   |
| Web UI) and create a new Deployment there.                          |
+---------------------------------------------------------------------+

2026-08-12 15:13:41 - Exiting script
`
So hopefully everything is okay...