PHP configuration mode fpm was selected, but is not supported on this system!

With Virtualmin version 6.00 you can go to System Settings > Server Templates > Default Settings > PHP Options and select FPM (run as virtual server owner) for the Default PHP execution mode, however when creating a virtual server it gives:

Performing other Apache configuration .. .. configuration failed : PHP configuration mode fpm was selected, but is not supported on this system!

The FPM (run as virtual server owner) option was available just couple days ago, but after last update of Virtualmin if you go to Server Configuration > Website Options then you will see only

CGI wrapper (run as virtual server owner) FCGId (run as virtual server owner)

even php_mod is gone.

I hope the options are missing not because I didn't install PHP 7 that comes with Virtualmin as it is not possible to install php-memcache for it. Those options especially php_mod should be available for PHP 5.4.16 that is officially supported by Fedora, RHEL, CentOS systems.

Status: 
Active

Comments

Joe's picture
Submitted by Joe on Fri, 08/25/2017 - 10:29 Pro Licensee

I'm confused, as there are multiple components of your question here, and I'm not clear on what led to the state your system is in.

So, let's tackle them one at a time:

When did you install this system? (I made some changes to the yum groups over the past couple of days, but they shouldn't affect installations done before that.)

Virtualmin displays mod_php as an option based on whether the mod_php Apache module is being loaded. On CentOS that happens in /etc/httpd/conf.modules.d/10-php.conf. We don't touch that file during installation. Is the php package installed on your system?

# rpm -q php

If you don't have it, install it with yum install php and then fix the configuration again with virtualmin config-system --include Apache.

And, is the php module being loaded? Look for these lines in /etc/httpd/conf.modules.d/10-php.conf:

<IfModule prefork.c>
  LoadModule php5_module modules/libphp5.so
</IfModule>

That should be all Virtualmin needs to offer mod_php in execution modes unless it's been disabled further up in Virtualmin by an explicit configuration change.

I had accidentally rolled out a test version of our yum groups files that didn't include the php package (because I'd like to live in a world where mod_php is not enabled by default so we can reclaim that 150MB and direct folks to FPM or fcgid), but I thought you'd installed several days ago? Is this a new install from the past day or so?

Anyway, the thing that's worrying me most about this ticket is the FPM error. I can't think of why Virtualmin would say you don't have FPM unless the php-fpm package has been uninstalled. Do you have that package on your system?

I'll look into whether we can make a php-memcache package available for php70. But, you don't need to uninstall php70 packages to use the system-provided php 5.4. (And, if you're worried about users choosing the wrong version, you can disable it in Virtualmin, even without uninstalling it.)

James,

I've deployed completely fresh Virtualmin system yesterday (just without PHP 7) and it naturally installs the default PHP:

php -v
PHP 5.4.16 (cli) (built: Nov  6 2016 00:29:02)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

However, the rpm -q php command gives:

rpm -q php
package php is not installed

so after running:

yum install php
virtualmin config-system --include Apache

I finally see:

Apachemod_php (run as Apache's user)
CGI wrapper (run as virtual server owner)
FCGId (run as virtual server owner)

but still no fpm.

And to say frankly, I have no idea what kind of packages the system has as I was just trying to install vanilla Virtualmin system, but yum install php-fpm gives:

yum install php-fpm
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.sonn.com
* epel: mirror.sjc02.svwh.net
* extras: centos.eecs.wsu.edu
* updates: centos.sonn.com
Package php-fpm-5.4.16-42.el7.x86_64 already installed and latest version
Nothing to do

And just so you understand this is not a production server, it is just a test server to try Virtualmin before rolling it out to our customers. We have to run this kind of checks as lastly Virtualmin comes broken very often. So please acknowledge this error report and get it fixed as users are not supposed to additionally install packages - Virtualmin took very good care of installing all the necessary packages before.

I'll look into whether we can make a php-memcache package available for php70. But, you don't need to uninstall php70 packages to use the system-provided php 5.4. (And, if you're worried about users choosing the wrong version, you can disable it in Virtualmin, even without uninstalling it.)

You, guys, even didn't show up on https://www.virtualmin.com/node/53190, so from past experience I take your promises with bit of skepticism. We deal with Drupal projects for which Memcache is essential and we simply can not depend on when you, guys, roll out that or another feature. The alternative way of installing PHP 7 mentioned on https://www.virtualmin.com/node/53190 suffices for our needs for now. And just so you understand it is not only about Memcache, but also other important packages like:

php-pecl-json-post
php-pecl-memcache
php-pecl-zip
php-imap

Do you think the reported subject matter happened just because I opted PHP 7 out using:

DISABLE_SCL=1
export DISABLE_SCL

as suggested on https://www.virtualmin.com/node/53190.

I've just installed Virtualmin as is (i.e. without DISABLE_SCL=1) and it has shown

The following PHP versions are available : 5.4.16 (/bin/php-cgi), 7.0.10 (/opt/rh/rh-php70/root/usr/bin/php-cgi), 5.4 (mod_php)

and all the options are available on Website Options:

Apachemod_php (run as Apache's user)
CGI wrapper (run as virtual server owner)
FCGId (run as virtual server owner)
FPM (run as virtual server owner)

So to conclude, if you do not go with PHP 7 imposed by Virtualmin then you don't have those options. I don't know how come you, guys, configured PHP running mods to be dependent on PHP 7, but please note that PHP 5.4.16 is the default one for RHEL/CentOS and should be treated as.

Joe's picture
Submitted by Joe on Sat, 08/26/2017 - 09:01 Pro Licensee

The DISABLE_SCL option is still pretty new and untested (that's why it doesn't show up in the --help output yet). I'll have to spend some time experimenting to know why things are acting weird there.

But, to be clear, mod_php is provided by the php (or rh-php70-php) package; the php command you're executing is provided by the php-cli package. So, running php -v tells you the version of the php-cli package is in your user path, it doesn't tell you anything about what is configured in Apache or Virtualmin.

Is php-fpm installed? That's what Virtualmin needs to provide the FPM execution mode. For me, 5.4 is the version that is selected when I do a fresh install of Virtualmin (likewise, the default mod_php version is 5.4, and mod_fcgid uses it, too). I had to switch manually to use the php70 packages, which it sounds like is what you want Virtualmin to do. I dunno what's going on there that you're seeing different behavior. I'll run a test today with DISABLE_SCL (but, you should not need this option just to use the system default php...that should be what happens anyway).

Also, I would think you could install the remi PHP7 packages if you want them, though I haven't tested them. They have their own names and paths, so they should be fine to co-exist with the rh-php70 packages.

So, I'm not sure what to do here. The default is exactly what you've said you want. I'm not sure why it isn't happening for you; there was a problem for a couple of days where mod_php (the php package) was not being installed by default, but that's been fixed. Installing right now should have all of the execution options available: mod_php, FPM, fcgid, and CGI. And they should all use 5.4.16 by default, but should be switchable to 7.0.

So, if you perform a default installation (no options, and without DISABLE_SCL defined) is that not what happens for you?

If you install Virtualmin with imposed PHP 7 then everything looks ok. I guess until this is fixed we will install Virtualmin without touching DISABLE_SCL option, then remove imposed PHP 7 and install it from Remi repositories. We have no problem to go around this issue for our setups, however since RHEL/CentOS systems officially support only PHP 5.4.16, I believe this should fixed on your end. In other words, Virtualmin should be functional with the software version officially supported by upstream vendor in the first place. And any addon software should not break the functionality of the main LAMP stack components.

Just in case if someone is walking in our shoes:

When running the installation script with DISABLE_SCL=1 && export DISABLE_SCL, and then installing PHP 7 from Remi repository, you end up without php-fpm. So to get it running, you need to run:

yum install php70-php-fpm

comment in the following lines in /etc/httpd/conf.modules.d/00-proxy.conf

LoadModule proxy_module modules/mod_proxy.so

and restart Apache and wait for Webmin to sync info for couple minutes as restarting Webmin at once and checking failed.

Hi. I running through a similar problem. I have debian 9, installed php7.2 and it doesn't allow me to use it as FPM. I have set the templates to default to FPM but even in new domains, it doesn't work. Already looked and I have mod_fcgi enabled in apache. Any ideas?

OK.solution: add
< FilesMatch .php$ > SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/" < / FilesMatch >
just before any < /VirtualHost > end tag.
And, don't touch again website options for sites (FPM, modphp,etc) - if you touch, Virtualmin overwrittes this with a port 8000 that doesn't work.
I solved my issue but anyhow would be good if Virtalmin would include this solution into the package

When creating a new server: Performing other Apache configuration .. .. configuration failed : PHP configuration mode mod_php was selected, but is not supported on this system!

This is a new system that I am currently testing before putting into production. Fresh install FreeBSD 11.1, webmin 1.880, Virtualmin 6.03 httpd-error.log: Apache/2.4.33 (FreeBSD) PHP/5.6.35 configured -- resuming normal operations /server-info: Loaded Modules mod_php5.c

For anyone who's seeing this - if you SSH in as root and run virtualmin check-config , which PHP execution modes does it report are supported?

I have local root access. I cannot find virualmin I have done a full search of the entire system.
I have even untarred virtual-server-6.03.gpl.wbm.gz that I download to install as a module and virualmin does not exist in that file either. The online interactive config check only reported one warning (regarding IPv6).

I should have noted that both webmin and virtualmin seem to work properly through https://localhhost:10000 (some small problems but may be a config issues). To install virtualmin I downloaded wget https://download.webmin.com/download/virtualmin/virtual-server-6.03.gpl.wbm.gz and I installed it as a local file from Webmin > Webmin Configuration > Webmin Modules > ( https://192.168.2.218:10000/webmin/edit_mods.cgi?xnavigation=1 )

HI @JamieCameron , I run virtualmin check-config as root:

The following PHP versions are available : 7.0.30 (/usr/bin/php-cgi7.0), 7.2.5 (/usr/bin/php-cgi7.2).

@ls4680 - we recommend you install Virtualmin on a fresh system using our install script. Just installing the webmin module will skip all the dependency setup process.

sh install.sh
grep: /etc/mtab: No such file or directory
slib.sh                                       100% of   21 kB  730 kBps 00m00s

  Welcome to the Virtualmin GPL installer, version 6.0.10

  This script must be run on a freshly installed supported OS. It does not
  perform updates or upgrades (use your system package manager) or license
  changes (use the "virtualmin change-license" command).

  The systems currently supported by install.sh are:

    CentOS/RHEL Linux 6 and 7 on x86_64
    Debian 7, 8, and 9, on i386 and amd64
    Ubuntu 14.04 LTS and 16.04 LTS, on i386 and amd64

  If your OS/version/arch is not listed, installation will fail. More
  details about the systems supported by the script can be found here:

    https://www.virtualmin.com/os-support

  The selected package bundle is LAMP and the size of install is
  full. It will require up to 650 MB of disk space.

  Exit and re-run this script with --help flag to see available options.

Continue? (y/n)
awk: can't open file /proc/meminfo
source line number 1
awk: can't open file /proc/meminfo
source line number 1
[ERROR] Memory is below 1024 MB. A full installation may not be possible.

  Your system has less than 1024} MB of available memory and swap. Installation is
  likely to fail, especially on Debian/Ubuntu systems (apt-get grows very large
  when installing large lists of packages). You could exit and re-install with
  the --minimal flag to install a more compact selection of packages, or we can
  try to create a swap file for you. To create a swap file, you'll need 1256MB
  free disk space, in addition to 200-300MB of free space for package installation.

  Would you like to continue? If you continue, you will be given the option to create
  a swap file. (y/n) y
Phase 1 of 3: Setup
Failed to detect a supported operating system.
[ERROR]  Your OS is not currently supported by this installer.
[ERROR]  You can probably run Virtualmin Professional on your system, anyway,
[ERROR]  but you'll have to install it using the manual installation process.
#

FYI - system has 128 GB RAM and 32 GB swap

I also have an older system that I set up an older virtualmin on FreeBSD using the previously described method without issue?!?! see https://www.virtualmin.com/os-support

Check for meminfo on your box.

@Jamie

Please explain them and other Users here this ist not the way! POST 9 https://www.virtualmin.com/comment/793878#comment-793878

While so no user/ virtual server pools the way it is handling i thought should be the default port 8000 , then next 8001 and so on, or you change in other ways but not as sugested by post 9!!!!!!! Then Firewall (FPS..)

I ran into more of these problems for having in Support forum solutions from Users ( yep they mean it well) but are in the wrong way and messing up system!

Please take care as Support team of virtualmin of such ( wrong/error) solutions written down here in Support Forum, or this forum is going the same way as medical searches results on the web. ;) Also you ending up in messed up systems where looking for real BUGS is so more problematic and takes support time also.

ns4 ~#meminfo
meminfo: Command not found.
ns4 ~#perl /usr/local/bin/free
SYSTEM MEMORY INFORMATION:
mem_wire:        1727651840 (   1647MB) [  1%] Wired: disabled for paging out
mem_active:  +      6647808 (      6MB) [  0%] Active: recently referenced
mem_inactive:+     88039424 (     83MB) [  0%] Inactive: recently not referenced
mem_cache:   +            0 (      0MB) [  0%] Cached: almost avail. for allocation
mem_free:    + 131995316224 ( 125880MB) [ 98%] Free: fully available for allocation
mem_gap_vm:  +         4096 (      0MB) [  0%] Memory gap: UNKNOWN
-------------- ------------ ----------- ------
mem_all:     = 133817659392 ( 127618MB) [100%] Total real memory managed
mem_gap_sys: +   3469242368 (   3308MB)        Memory gap: Kernel?!
-------------- ------------ -----------
mem_phys:    = 137286901760 ( 130926MB)        Total real memory available
mem_gap_hw:  +    152051712 (    145MB)        Memory gap: Segment Mappings?!
-------------- ------------ -----------
mem_hw:      = 137438953472 ( 131072MB)        Total real memory installed

SYSTEM MEMORY SUMMARY:
mem_used:        5355597824 (   5107MB) [  3%] Logically used memory
mem_avail:   + 132083355648 ( 125964MB) [ 96%] Logically available memory
-------------- ------------ ----------- ------
mem_total:   = 137438953472 ( 131072MB) [100%] Logically total memory
ns4 ~#