[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [php-maint] Bug#827446: libapache2-mod-php5: postinst script changes MPM back to prefork, even with updates



Control: reassign -1 apache2
Control: affects -1 libapache2-mod-php5

Rudy,

this needs to be fixed in apache2. Generally speaking a2enmod honors
when administrator disables the module and it doesn't re-enable it in
maintainer scripts, I have no idea why this is not the case with
apache2_switch_mpm. Maybe apache2 maintainers can shed some light on it.

Cheers,
-- 
Ondřej Surý <ondrej@sury.org>
Knot DNS (https://www.knot-dns.cz/) – a high-performance DNS server
Knot Resolver (https://www.knot-resolver.cz/) – secure, privacy-aware,
fast DNS(SEC) resolver
Vše pro chleba (https://vseprochleba.cz) – Potřeby pro pečení chleba
všeho druhu

On Thu, Jun 16, 2016, at 10:31, Rudy Broersma wrote:
> Package: libapache2-mod-php5
> Version: 5.6.22+dfsg-0+deb8u1
> Severity: minor
> 
> Dear Maintainer,
> 
> We have noticed that when a Debian package update is released for
> libapache2-mod-php5,
> that the dpkg/apt postinst script changes the Apache2 MPM back to
> prefork. This
> is done in /var/lib/dpkg/info/libapache2-mod-php5.postinst line 15 to 21:
> 
>         mpm=$(a2query -M)
>         case "$(a2query -M)" in
>             prefork|itk) return 0;;
>             *) if apache2_switch_mpm prefork; then return 0; fi;;
>         esac
>         apache2_msg err "Could not switch to prefork MPM, not enabling
>         php5"
>         return 1
> 
> In our situation, we have software that depends on libapache2-mod-php5
> (Plesk), but
> do not actually use php5 as an Apache module. We are also running the
> event MPM.
> 
> Now, with an update to this package, the MPM on production machines is
> changed back
> to the prefork MPM causing configuration to get lost, settings like
> MaxClients to fallback
> to tiny defaults, etc, etc.
> 
> I can understand that when installing libapache2-mod-php5 changing the
> MPM is justified,
> but I dont feel this is justified when installing updates. For example,
> in our
> case we dont use the PHP5 module, but we need it due to dependencies by
> Plesk.
> 
> Usually, when installing Debian updates, and the package comes with a
> modified configuration
> file dpkg will ask the administrator if he wants to ignore, view or
> implement the new configuration
> file. I believe this is the way to go when changing the MPM as well, as
> it means a pretty
> heafty change to the Apache webserver.
> 
> The postinst script currently just changes the MPM without asking any
> questions. I feel this
> is a too big of a change to perform without asking for confirmation.
> 
> So in short I would like to propose a change to the postinst script for
> this package:
> 
> 1. Require user input for changing the MPM. This will also ensure the
> package is not
>    updated using unattended-upgrades (which is what happend in our case).
> 
> or
> 
> 2. Stop changing the MPM, atleast when updating the package.
> 
> 
> -- Package-specific info:
> ==== Additional PHP 5 information ====
> 
> ++++ PHP 5 SAPI (php5query -S): ++++
> apache2
> cgi
> fpm
> embed
> cli
> 
> ++++ PHP 5 Extensions (php5query -M -v): ++++
> pdo_sqlite (Enabled for apache2 by maintainer script)
> pdo_sqlite (Enabled for cgi by maintainer script)
> pdo_sqlite (Enabled for fpm by maintainer script)
> pdo_sqlite (Enabled for embed by maintainer script)
> pdo_sqlite (Enabled for cli by maintainer script)
> imap (Enabled for apache2 by maintainer script)
> imap (Enabled for cgi by maintainer script)
> imap (Enabled for fpm by maintainer script)
> imap (Enabled for embed by maintainer script)
> imap (Enabled for cli by maintainer script)
> intl (Enabled for apache2 by maintainer script)
> intl (Enabled for cgi by maintainer script)
> intl (Enabled for fpm by maintainer script)
> intl (Enabled for embed by maintainer script)
> intl (Enabled for cli by maintainer script)
> curl (Enabled for apache2 by maintainer script)
> curl (Enabled for cgi by maintainer script)
> curl (Enabled for fpm by maintainer script)
> curl (Enabled for embed by maintainer script)
> curl (Enabled for cli by maintainer script)
> pdo (Enabled for apache2 by maintainer script)
> pdo (Enabled for cgi by maintainer script)
> pdo (Enabled for fpm by maintainer script)
> pdo (Enabled for embed by maintainer script)
> pdo (Enabled for cli by maintainer script)
> sqlite3 (Enabled for apache2 by maintainer script)
> sqlite3 (Enabled for cgi by maintainer script)
> sqlite3 (Enabled for fpm by maintainer script)
> sqlite3 (Enabled for embed by maintainer script)
> sqlite3 (Enabled for cli by maintainer script)
> mysql (Enabled for apache2 by maintainer script)
> mysql (Enabled for cgi by maintainer script)
> mysql (Enabled for fpm by maintainer script)
> mysql (Enabled for embed by maintainer script)
> mysql (Enabled for cli by maintainer script)
> json (Enabled for apache2 by maintainer script)
> json (Enabled for cgi by maintainer script)
> json (Enabled for fpm by maintainer script)
> json (Enabled for embed by maintainer script)
> json (Enabled for cli by maintainer script)
> puppet (Enabled for apache2 by local administrator)
> puppet (Enabled for cgi by local administrator)
> puppet (Enabled for fpm by local administrator)
> puppet (Enabled for embed by local administrator)
> puppet (Enabled for cli by local administrator)
> imagick (Enabled for apache2 by maintainer script)
> imagick (Enabled for cgi by maintainer script)
> imagick (Enabled for fpm by maintainer script)
> imagick (Enabled for embed by maintainer script)
> imagick (Enabled for cli by maintainer script)
> readline (Enabled for apache2 by maintainer script)
> readline (Enabled for cgi by maintainer script)
> readline (Enabled for fpm by maintainer script)
> readline (Enabled for embed by maintainer script)
> readline (Enabled for cli by maintainer script)
> gd (Enabled for apache2 by maintainer script)
> gd (Enabled for cgi by maintainer script)
> gd (Enabled for fpm by maintainer script)
> gd (Enabled for embed by maintainer script)
> gd (Enabled for cli by maintainer script)
> xmlrpc (Enabled for apache2 by maintainer script)
> xmlrpc (Enabled for cgi by maintainer script)
> xmlrpc (Enabled for fpm by maintainer script)
> xmlrpc (Enabled for embed by maintainer script)
> xmlrpc (Enabled for cli by maintainer script)
> mysqli (Enabled for apache2 by maintainer script)
> mysqli (Enabled for cgi by maintainer script)
> mysqli (Enabled for fpm by maintainer script)
> mysqli (Enabled for embed by maintainer script)
> mysqli (Enabled for cli by maintainer script)
> pdo_mysql (Enabled for apache2 by maintainer script)
> pdo_mysql (Enabled for cgi by maintainer script)
> pdo_mysql (Enabled for fpm by maintainer script)
> pdo_mysql (Enabled for embed by maintainer script)
> pdo_mysql (Enabled for cli by maintainer script)
> opcache (Enabled for apache2 by maintainer script)
> opcache (Enabled for cgi by maintainer script)
> opcache (Enabled for fpm by maintainer script)
> opcache (Enabled for embed by maintainer script)
> opcache (Enabled for cli by maintainer script)
> mcrypt (Enabled for apache2 by maintainer script)
> mcrypt (Enabled for cgi by maintainer script)
> mcrypt (Enabled for fpm by maintainer script)
> mcrypt (Enabled for embed by maintainer script)
> mcrypt (Enabled for cli by maintainer script)
> mysqlnd (Enabled for apache2 by maintainer script)
> mysqlnd (Enabled for cgi by maintainer script)
> mysqlnd (Enabled for fpm by maintainer script)
> mysqlnd (Enabled for embed by maintainer script)
> mysqlnd (Enabled for cli by maintainer script)
> xsl (Enabled for apache2 by maintainer script)
> xsl (Enabled for cgi by maintainer script)
> xsl (Enabled for fpm by maintainer script)
> xsl (Enabled for embed by maintainer script)
> xsl (Enabled for cli by maintainer script)
> 
> ++++ Configuration files: ++++
> [PHP]
> engine = On
> short_open_tag = on
> asp_tags = Off
> precision = 14
> output_buffering = 4096
> zlib.output_compression = Off
> implicit_flush = Off
> unserialize_callback_func =
> serialize_precision = 17
> disable_functions =
> pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
> disable_classes =
> zend.enable_gc = On
> expose_php = off
> max_execution_time = 60
> max_input_time = 60
> memory_limit = 128M
> error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
> display_errors = Off
> display_startup_errors = Off
> log_errors = On
> log_errors_max_len = 1024
> ignore_repeated_errors = Off
> ignore_repeated_source = Off
> report_memleaks = On
> track_errors = Off
> html_errors = On
> variables_order = "GPCS"
> request_order = "GP"
> register_argc_argv = Off
> auto_globals_jit = On
> post_max_size = 8M
> auto_prepend_file =
> auto_append_file =
> default_mimetype = "text/html"
> include_path = ".:"
> doc_root =
> user_dir =
> enable_dl = Off
> file_uploads = on
> upload_max_filesize = 128M
> max_file_uploads = 20
> allow_url_fopen = On
> allow_url_include = Off
> default_socket_timeout = 60
> [CLI Server]
> cli_server.color = On
> [Date]
> [filter]
> [iconv]
> [intl]
> [sqlite]
> [sqlite3]
> [Pcre]
> [Pdo]
> [Pdo_mysql]
> pdo_mysql.cache_size = 2000
> pdo_mysql.default_socket=
> [Phar]
> [mail function]
> SMTP = localhost
> smtp_port = 25
> mail.add_x_header = On
> [SQL]
> sql.safe_mode = Off
> [ODBC]
> odbc.allow_persistent = On
> odbc.check_persistent = On
> odbc.max_persistent = -1
> odbc.max_links = -1
> odbc.defaultlrl = 4096
> odbc.defaultbinmode = 1
> [Interbase]
> ibase.allow_persistent = 1
> ibase.max_persistent = -1
> ibase.max_links = -1
> ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
> ibase.dateformat = "%Y-%m-%d"
> ibase.timeformat = "%H:%M:%S"
> [MySQL]
> mysql.allow_local_infile = On
> mysql.allow_persistent = On
> mysql.cache_size = 2000
> mysql.max_persistent = -1
> mysql.max_links = -1
> mysql.default_port =
> mysql.default_socket =
> mysql.default_host =
> mysql.default_user =
> mysql.default_password =
> mysql.connect_timeout = 60
> mysql.trace_mode = Off
> [MySQLi]
> mysqli.max_persistent = -1
> mysqli.allow_persistent = On
> mysqli.max_links = -1
> mysqli.cache_size = 2000
> mysqli.default_port = 3306
> mysqli.default_socket =
> mysqli.default_host =
> mysqli.default_user =
> mysqli.default_pw =
> mysqli.reconnect = Off
> [mysqlnd]
> mysqlnd.collect_statistics = On
> mysqlnd.collect_memory_statistics = Off
> [OCI8]
> [PostgreSQL]
> pgsql.allow_persistent = On
> pgsql.auto_reset_persistent = Off
> pgsql.max_persistent = -1
> pgsql.max_links = -1
> pgsql.ignore_notice = 0
> pgsql.log_notice = 0
> [Sybase-CT]
> sybct.allow_persistent = On
> sybct.max_persistent = -1
> sybct.max_links = -1
> sybct.min_server_severity = 10
> sybct.min_client_severity = 10
> [bcmath]
> bcmath.scale = 0
> [browscap]
> [Session]
> session.save_handler = files
> session.use_cookies = 1
> session.use_only_cookies = 1
> session.name = PHPSESSID
> session.auto_start = 0
> session.cookie_lifetime = 0
> session.cookie_path = /
> session.cookie_domain =
> session.cookie_httponly =
> session.serialize_handler = php
> session.gc_probability = 0
> session.gc_divisor = 1000
> session.gc_maxlifetime = 1440
> session.bug_compat_42 = Off
> session.bug_compat_warn = Off
> session.referer_check =
> session.cache_limiter = nocache
> session.cache_expire = 180
> session.use_trans_sid = 0
> session.hash_function = 0
> session.hash_bits_per_character = 5
> url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
> [MSSQL]
> mssql.allow_persistent = On
> mssql.max_persistent = -1
> mssql.max_links = -1
> mssql.min_error_severity = 10
> mssql.min_message_severity = 10
> mssql.compatability_mode = Off
> mssql.secure_connection = Off
> [Assertion]
> [COM]
> [mbstring]
> [gd]
> [exif]
> [Tidy]
> tidy.clean_output = Off
> [soap]
> soap.wsdl_cache_enabled=1
> soap.wsdl_cache_dir="/tmp"
> soap.wsdl_cache_ttl=86400
> soap.wsdl_cache_limit = 5
> [sysvshm]
> [ldap]
> ldap.max_links = -1
> [mcrypt]
> [dba]
> 
> **** /etc/php5/apache2/conf.d/10-mysqlnd.ini ****
> extension=mysqlnd.so
> 
> **** /etc/php5/apache2/conf.d/20-mcrypt.ini ****
> extension=mcrypt.so
> 
> **** /etc/php5/apache2/conf.d/20-readline.ini ****
> extension=readline.so
> 
> **** /etc/php5/apache2/conf.d/20-gd.ini ****
> extension=gd.so
> 
> **** /etc/php5/apache2/conf.d/20-imagick.ini ****
> extension=imagick.so
> 
> **** /etc/php5/apache2/conf.d/20-mysqli.ini ****
> extension=mysqli.so
> 
> **** /etc/php5/apache2/conf.d/zend_extensions_psa.ini ****
> 
> **** /etc/php5/apache2/conf.d/20-xsl.ini ****
> extension=xsl.so
> 
> **** /etc/php5/apache2/conf.d/20-intl.ini ****
> extension=intl.so
> 
> **** /etc/php5/apache2/conf.d/20-json.ini ****
> extension=json.so
> 
> **** /etc/php5/apache2/conf.d/20-pdo_sqlite.ini ****
> extension=pdo_sqlite.so
> 
> **** /etc/php5/apache2/conf.d/20-imap.ini ****
> extension=imap.so
> 
> **** /etc/php5/apache2/conf.d/20-pdo_mysql.ini ****
> extension=pdo_mysql.so
> 
> **** /etc/php5/apache2/conf.d/20-puppet.ini ****
> max_input_vars = 12000
> max_input_time = 180
> upload_max_filesize = 250M
> post_max_size = 250M
> upload_tmp_dir = /tmp
> memory_limit = 2048M
> gpc_magic_quotes = Off
> date.timezone = "Europe/Amsterdam"
> always_populate_raw_post_data = -1
> default_socket_timeout = 900
> openssl.capath = "/etc/ssl/certs/"
> 
> **** /etc/php5/apache2/conf.d/20-mysql.ini ****
> extension=mysql.so
> 
> **** /etc/php5/apache2/conf.d/20-curl.ini ****
> extension=curl.so
> 
> **** /etc/php5/apache2/conf.d/10-pdo.ini ****
> extension=pdo.so
> 
> **** /etc/php5/apache2/conf.d/05-opcache.ini ****
> zend_extension=opcache.so
> 
> **** /etc/php5/apache2/conf.d/00-ioncube-loader-5.6.ini ****
> zend_extension=/usr/lib/php5/20131226/ioncube_loader_lin_5.6.so
> 
> **** /etc/php5/apache2/conf.d/20-sqlite3.ini ****
> extension=sqlite3.so
> 
> **** /etc/php5/apache2/conf.d/20-xmlrpc.ini ****
> extension=xmlrpc.so
> 
> 
> -- System Information:
> Debian Release: 8.5
>   APT prefers stable-updates
>   APT policy: (500, 'stable-updates'), (500, 'stable')
> Architecture: amd64 (x86_64)
> Foreign Architectures: i386
> 
> Kernel: Linux 3.16.0-4-amd64 (SMP w/12 CPU cores)
> Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored:
> LC_ALL set to en_US.UTF-8)
> Shell: /bin/sh linked to /bin/dash
> Init: systemd (via /run/systemd/system)
> 
> Versions of packages libapache2-mod-php5 depends on:
> ii  apache2                             2.4.10-10+deb8u4
> ii  apache2-bin [apache2-api-20120211]  2.4.10-10+deb8u4
> ii  libbz2-1.0                          1.0.6-7+b3
> ii  libc6                               2.19-18+deb8u4
> ii  libcomerr2                          1.42.12-1.1
> ii  libdb5.3                            5.3.28-9
> ii  libgssapi-krb5-2                    1.12.1+dfsg-19+deb8u2
> ii  libk5crypto3                        1.12.1+dfsg-19+deb8u2
> ii  libkrb5-3                           1.12.1+dfsg-19+deb8u2
> ii  libmagic1                           1:5.22+15-2+deb8u1
> ii  libonig2                            5.9.5-3.2
> ii  libpcre3                            2:8.35-3.3+deb8u4
> ii  libqdbm14                           1.8.78-5+b1
> ii  libssl1.0.0                         1.0.1t-1+deb8u2
> ii  libstdc++6                          4.9.2-10
> ii  libxml2                             2.9.1+dfsg1-5+deb8u2
> ii  mime-support                        3.58
> ii  php5-cli                            5.6.22+dfsg-0+deb8u1
> ii  php5-common                         5.6.22+dfsg-0+deb8u1
> ii  php5-json                           1.3.6-1
> ii  tzdata                              2016d-0+deb8u1
> ii  ucf                                 3.0030
> ii  zlib1g                              1:1.2.8.dfsg-2+b1
> 
> libapache2-mod-php5 recommends no packages.
> 
> Versions of packages libapache2-mod-php5 suggests:
> ii  php-pear  5.6.22+dfsg-0+deb8u1
> 
> Versions of packages php5-common depends on:
> ii  libc6   2.19-18+deb8u4
> ii  lsof    4.86+dfsg-1
> ii  psmisc  22.21-2
> ii  sed     4.2.2-4+b1
> ii  ucf     3.0030
> 
> Versions of packages php5-common suggests:
> pn  php5-user-cache  <none>
> 
> -- debconf-show failed
> 
> _______________________________________________
> pkg-php-maint mailing list
> pkg-php-maint@lists.alioth.debian.org
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-php-maint


Reply to: