I have created a new website in order to run a piece of software called freescout which uses the php Laravel framework.
Unfortunately, it needs some php functions that are disabled by default in HestiaCP’s php.ini files and naturally, I get errors and stacktraces when trying to use it (when it tries to schedule an internal job that will send outgoing emails).
The functions required are pcntl_async_signals, pcntl_signal and pcntl_signal.
I’ve manually and globally removed these three from disabled_functions of /etc/php/7.4/{fpm,cli}/php.ini and successfully managed to fix my problem for the time being.
But I would like to ask if there is a way
a) to make it only for this specific website, not global
b) make it stick around after an upgrade, because I assume that it will be overridden in a future upgrade
I copied /usr/local/hestia/install/deb/templates/web/php-fpm/default.tpl to freescout.tpl (in the same path).
I added the extra setting required for freescout in the new template file
php_admin_value[disable_functions] = pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_unshare,
The new template wasn’t visible in the web control panel until I run “v-update-web-templates”. Maybe you could add a note in the documentation for this step too, please?
@eris thank you very much for clarifying everything.
Using the new template, the new fpm pool config file has the values required, and solved the web based part of freescout’s problems.
Unfortunately, there is a cronjob that also needs to run “php artisan schedule:run”, but the cli php.ini version has not been altered, the functions are still listed in “disable_functions” there …