{ my $phpversion="81"; if ($PHP_VERSION eq $phpversion){ if (($roundcube{'status'} || 'disabled') eq 'enabled'){ my $max_upload_size = ($roundcube{MaxUploadSize} || '100M'); $max_upload_size .= 'M' if ($max_upload_size =~ m/^\d+$/); my $memory_limit = ($roundcube{MemoryLimit} || '512M'); $memory_limit .= 'M' if ($memory_limit =~ m/^\d+$/); my $open_basedir= $roundcube{PHPBaseDir} || ''; my $include_path = ".:/usr/share/pear-addons:/usr/share/pear:/usr/share/pear-data/:/usr/share/php". ":/opt/remi/php81/root/usr/share/pear:/opt/remi/php81/root/usr/share/php". ":/opt/remi/php81/root/usr/share/pear-data/:/opt/remi/php82/root/usr/share/pear-data/:/opt/remi/php83/root/usr/share/pear-data/"; $open_basedir = "/usr/share/roundcubemail:/etc/roundcubemail/:/var/log/roundcubemail:/var/lib/roundcubemail:/var/log/roundcube.log:/var/lib/php/roundcube:/home/e-smith/files/roundcube:/dev/urandom:/proc/meminfo:/usr/share/GeoIP/GeoLite2-Country.mmdb:/proc/cpuinfo:$open_basedir:$include_path"; my $id = 'roundcube'; my $max_children = $roundcube{'PHPmaxChildren'} || 20; my $min_spare_servers = $roundcube{'PHPminServers'} || 4; my $start_servers = $roundcube{'PHPstartServers'} || 6; my $max_spare_servers = $roundcube{'PHPmaxServers'} || 8; my $max_requests = $roundcube{'PHPmaxRequests'} || 1000; $min_spare_servers = ( $min_spare_servers > $max_spare_servers ) ? printf("%.0f",$max_spare_servers/2) : $min_spare_servers; $start_servers = ( $start_servers > $max_spare_servers ) ? printf("%.0f", $max_spare_servers /2 + $min_spare_servers/2 ) : $start_servers; $OUT .=<<_EOF; [php$PHP_VERSION-$id] user = www group = www listen.owner = root listen.group = www listen.mode = 0660 listen = /var/run/php-fpm/php$PHP_VERSION-$id.sock pm = dynamic pm.max_children = $max_children pm.start_servers = $start_servers pm.min_spare_servers = $min_spare_servers pm.max_spare_servers = $max_spare_servers pm.max_requests = $max_requests php_admin_value[sys_temp_dir] = /var/lib/php/$id/tmp php_admin_value[session.save_path] = /var/lib/php/$id/session php_admin_value[session.gc_maxlifetime] = 86400 php_admin_value[upload_tmp_dir] = /var/lib/php/$id/tmp php_admin_value[error_log] = /var/log/php/$id/error.log slowlog = /var/log/php/roundcube/slow.log php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f php@{ $DomainName } php_admin_flag[display_errors] = off php_admin_flag[log_errors] = on php_admin_value[error_reporting] = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT php_admin_value[error_log] = syslog php_admin_value[memory_limit] = $memory_limit php_admin_value[max_execution_time] = 3600 php_admin_value[post_max_size] = $max_upload_size php_admin_value[upload_max_filesize] = $max_upload_size php_admin_value[disable_functions] = system, show_source, symlink, dl, passthru php_value[include_path] = $include_path php_admin_value[open_basedir] = $open_basedir php_admin_flag[allow_url_fopen] = on php_admin_flag[file_upload] = on php_admin_flag[session.cookie_httponly] = on php_admin_flag[allow_url_include] = off php_admin_value[session.save_handler] = files php_admin_flag[output_buffering] = off _EOF } else{ $OUT .= '; RoudnCube is disabled'; } } }