[php-maint] Bug#827446: libapache2-mod-php5: postinst script changes MPM back to prefork, even with updates
Rudy Broersma
r.broersma at exsilia.net
Thu Jun 16 08:31:33 UTC 2016
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
More information about the pkg-php-maint
mailing list