Howdy,
I'm using Virtualmin for the past 3 years. Recently I noticed some of my web applications requesting to change the PHP version to 7.1.
ubuntu14.04
Webmin 1.900
Current PHP version: 7.0.3
I installed PHP 7.1/7.2/7.3 following this tutorial (https://www.virtualmin.com/documentation/web/multiplephp).
Eg: codes to install PHP7.1 :
sudo apt-get install php7.1 php7.1-cli php7.1-common php7.1-json php7.1-opcache
php7.1-mysql php7.1-mbstring php7.1-mcrypt php7.1-zip php7.1-fpm
Results of clicking "System Settings -> Re-Check Config" as follows
The following PHP versions are available : 5.5.9 (/usr/bin/php5-cgi), 5.6.39 (/usr/bin/php-cgi5.6),
7.0.33 (/usr/bin/php-cgi7.0), 7.1.25 (/usr/bin/php7.1), 7.2.13 (/usr/bin/php7.2),
7.3.0 (/usr/bin/php7.3), 5.5 (mod_php)
I created a subdomain and created index.php file with phpinfo
<?php
phpinfo();
?>
Phpinfo works fine with PHP 5.6 and PHP 7.0.3. But when I change it to PHP 7.1 or above from "Server config -> PHP version", it shows 500 internal server error.
With Maximum PHP script runtime: 30 Seconds
[fcgid:warn] [pid 16450] (104)Connection reset by peer: [client ***.***.**.**:2875]
mod_fcgid: error reading data from FastCGI server
[core:error] [pid 16895] [client ***.***.**.**:2876]
End of script output before headers: index.php
[cgi:error] [pid 15079] [client ***.***.**.**:2873]
End of script output before headers: php7.1.cgi
I would really appreciate if someone helps me out to figure out my mistake.
Thank you. Regards
I don't use Virtualmin's PHP version management so proceed carefully and be prepared to back track if necessary...
I edit each www.conf and change it to listen on a port. For example:
/etc/php/5.6/fpm/pool.d/www.conf
/etc/php/7.0/fpm/pool.d/www.conf
/etc/php/7.1/fpm/pool.d/www.conf
/etc/php/7.2/fpm/pool.d/www.conf
/etc/php/7.3/fpm/pool.d/www.conf
Change the listen statement as appropriate. Use a port that fits in with whatever 5.6 and 7.0 are using (should be different ports).
;listen = /run/php/php7.3-fpm.sock
listen = localhost:8073
Restart phpX.X-fpm services.
Your apache/nginx config file for each site should reference the appropriate port for the PHP version you want to use.
Thank you very much for looking at the post and spending your valuable time, noisemarine. I really appreciate it.
Once again I tried to troubleshoot the problem and found out the fault. I didn't install phpX.X-cgi. That caused the problem. Now it just works fine.
If anyone is looking for upgrading to PHP 7.1/7.2/7.2 these steps might help you.
Installing PHP 7.1/7.2 on Ubuntu 14.04
Install the PPA:
add-apt-repository ppa:ondrej/php && apt-get update
Install the PHP packages
apt-get install php7.1 php7.1-mysql php7.1-cgi php7.1-cli php7.1-fpm
apt-get install php7.2 php7.2-mysql php7.2-cgi php7.2-cli php7.2-fpm
Click System Settings -> Re-Check Config. You might see something like
The following PHP versions are available : .... 7.0.33 (/usr/bin/php-cgi7.0),
7.1.25 (/usr/bin/php7.1), 7.2.13 (/usr/bin/php7.2) ...
.
Configure the PHP version being used for a specific Virtual Server by selecting Server Configuration -> PHP Versions.
Read this to expand your knowledge about what you are doing
Please point out any mistakes in feel free to suggest improvements.
Thank you
Regards