Hello,
i updated today one of my server to Debian Stretch from Jessie and run into following problem.
Distro: Debian Stretch 9.1
Plugins installed: PHPSwitcher and Let´s encrypt (latest available versions)
PHP Versions via PHPSwitcher: 7.0.22 and 7.1.8
Shell-Script
- root@cloudserv:~# service psw7.1-fpm status● psw7.1-fpm.service - The PHP 7.1 FastCGI Process Manager Loaded: loaded (/etc/systemd/system/psw7.1-fpm.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Sun 2017-08-13 21:05:45 CEST; 5min ago Process: 6953 ExecStart=/opt/phpswitcher/20170811/php7.1/sbin/psw7.1-fpm --nodaemonize --fpm-config /opt/phpswitcher/20170811/php7.1/etc/php-fpm.conf (code=exited, status=127) Main PID: 6953 (code=exited, status=127)Aug 13 21:05:45 cloudserv systemd[1]: Started The PHP 7.1 FastCGI Process Manager.Aug 13 21:05:45 cloudserv psw7.1-fpm[6953]: /opt/phpswitcher/20170811/php7.1/sbin/psw7.1-fpm: error while loading shared libraries: libonig.so.2: cannot open shared object file: No such file or directoryAug 13 21:05:45 cloudserv systemd[1]: psw7.1-fpm.service: Main process exited, code=exited, status=127/n/aAug 13 21:05:45 cloudserv systemd[1]: psw7.1-fpm.service: Unit entered failed state.Aug 13 21:05:45 cloudserv systemd[1]: psw7.1-fpm.service: Failed with result 'exit-code'.root@cloudserv:~#
The php-fpm.conf
Perl
- ;;;;;;;;;;;;;;;;;;;;;; FPM Configuration ;;;;;;;;;;;;;;;;;;;;;;; All relative paths in this configuration file are relative to PHP's install; prefix (/opt/phpswitcher/20170811/php7.1). This prefix can be dynamically changed by using the; '-p' argument from the command line.;;;;;;;;;;;;;;;;;;; Global Options ;;;;;;;;;;;;;;;;;;;[global]; Pid file; Note: the default prefix is /opt/phpswitcher/20170811/php7.1/var; Default Value: nonepid = /var/run/phpswitcher/psw7.1-fpm.pid; Error log file; If it's set to "syslog", log is sent to syslogd instead of being written; into a local file.; Note: the default prefix is /opt/phpswitcher/20170811/php7.1/var; Default Value: log/php-fpm.logerror_log = /var/log/phpswitcher/psw7.1-fpm.log; syslog_facility is used to specify what type of program is logging the; message. This lets syslogd specify that messages from different facilities; will be handled differently.; See syslog(3) for possible values (ex daemon equiv LOG_DAEMON); Default Value: daemon;syslog.facility = daemon; syslog_ident is prepended to every message. If you have multiple FPM; instances running on the same server, you can change the default value; which must suit common needs.; Default Value: php-fpmsyslog.ident = psw7.1-fpm; Log level; Possible Values: alert, error, warning, notice, debug; Default Value: notice;log_level = notice; If this number of child processes exit with SIGSEGV or SIGBUS within the time; interval set by emergency_restart_interval then FPM will restart. A value; of '0' means 'Off'.; Default Value: 0emergency_restart_threshold = 10; Interval of time used by emergency_restart_interval to determine when; a graceful restart will be initiated. This can be useful to work around; accidental corruptions in an accelerator's shared memory.; Available Units: s(econds), m(inutes), h(ours), or d(ays); Default Unit: seconds; Default Value: 0emergency_restart_interval = 1m; Time limit for child processes to wait for a reaction on signals from master.; Available units: s(econds), m(inutes), h(ours), or d(ays); Default Unit: seconds; Default Value: 0process_control_timeout = 60s; The maximum number of processes FPM will fork. This has been designed to control; the global number of processes when using dynamic PM within a lot of pools.; Use it with caution.; Note: A value of 0 indicates no limit; Default Value: 0; process.max = 128; Specify the nice(2) priority to apply to the master process (only if set); The value can vary from -19 (highest priority) to 20 (lowest priority); Note: - It will only work if the FPM master process is launched as root; - The pool process will inherit the master process priority; unless specified otherwise; Default Value: no set; process.priority = -19; Send FPM to background. Set to 'no' to keep FPM in foreground for debugging.; Default Value: yesdaemonize = yes; Set open file descriptor rlimit for the master process.; Default Value: system defined value;rlimit_files = 1024; Set max core size rlimit for the master process.; Possible Values: 'unlimited' or an integer greater or equal to 0; Default Value: system defined value;rlimit_core = 0; Specify the event mechanism FPM will use. The following is available:; - select (any POSIX os); - poll (any POSIX os); - epoll (linux >= 2.5.44); - kqueue (FreeBSD >= 4.1, OpenBSD >= 2.9, NetBSD >= 2.0); - /dev/poll (Solaris >= 7); - port (Solaris >= 10); Default Value: not set (auto detection);events.mechanism = epoll; When FPM is built with systemd integration, specify the interval,; in seconds, between health report notification to systemd.; Set to 0 to disable.; Available Units: s(econds), m(inutes), h(ours); Default Unit: seconds; Default value: 10;systemd_interval = 10;;;;;;;;;;;;;;;;;;;;; Pool Definitions ;;;;;;;;;;;;;;;;;;;;;; Multiple pools of child processes may be started with different listening; ports and different management options. The name of the pool will be; used in logs and stats. There is no limitation on the number of pools which; FPM can handle. Your system will tell you anyway :); Include one or more files. If glob(3) exists, it is used to include a bunch of; files from a glob(3) pattern. This directive can be used everywhere in the; file.; Relative path can also be used. They will be prefixed by:; - the global prefix if it's been set (-p argument); - /opt/phpswitcher/20170811/php7.1 otherwiseinclude=/opt/phpswitcher/20170811/php7.1/etc/php-fpm.d/*.conf
And the domain.tld.conf
Perl
- [domain.tld]
- user = vu2003
- group = vu2003
- listen = /run/phpswitcher/psw7.1-fpm-domain.tld.sock
- listen.owner = vu2003
- listen.group = vu2003
- listen.mode = 0660
- pm = ondemand
- pm.max_children = 100
- pm.start_servers = 32
- pm.min_spare_servers = 16
- pm.max_spare_servers = 32
- pm.process_idle_timeout = 120s
- pm.max_requests = 1000
- chdir = /
- security.limit_extensions = .php .php3 .php4 .php5 .php7 .pht .phtml
- env[TMPDIR] = /var/www/virtual/domain.tld/phptmp
- php_admin_value[open_basedir] = /var/www/virtual/domain.tld/:/opt/phpswitcher/20170811/php7.1/share/pear/
- php_admin_value[upload_tmp_dir] = /var/www/virtual/domain.tld/phptmp
- php_admin_value[session.save_path] = /var/www/virtual/domain.tld/phptmp
- php_admin_value[soap.wsdl_cache_dir] = /var/www/virtual/domain.tld/phptmp
- php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f webmaster@domain.tld
- php_admin_value[max_execution_time] = 300
- php_admin_value[max_input_time] = 180
- php_admin_value[memory_limit] = 256M
- php_value[error_reporting] = E_ALL & ~E_DEPRECATED & ~E_STRICT
- php_flag[display_errors] = off
- php_admin_value[post_max_size] = 16M
- php_admin_value[upload_max_filesize] = 16M
- php_admin_flag[allow_url_fopen] = off
- php_admin_value[disable_functions] = exec,passthru,phpinfo,popen,proc_open,show_source,shell,shell_exec,symlink,system
Any idea? Thank you very much!
Best regards.