How to install PHP 7.x as PHP-FPM & FastCGI for ISPConfig 3.1 with apt on Debian 8 and 9

The final version of PHP 7.1 is available now. PHP 7.1 is the next generation of the PHP programming language, it is up to 2 times faster than PHP 5.6 and 14 times faster than PHP 5.0 according to the release notes. The new PHP version is not 100% compatible with PHP 5.x as some deprecated API's have been removed, so it is a good idea to start testing your web sites for compatibility with this new release. This can be done easily and without affecting all sites on your server by using the multi PHP version feature in ISPConfig 3. The PHP version can be selected in the ISPConfig 3 website settings for each site individually. This feature works with PHP-FPM and FastCGI. This tutorial shows how to install PHP 7.x as a PHP-FPM and a FastCGI version on a Debian Jessie or Stretch server from the Debian PHP Package maintainers site directly.

1 Preliminary Note

I will install PHP directly from Debian PHP Package maintainers site https://packages.sury.org/php/ with apt-get. This will not overwrite the existing installation but will change the default used PHP version to the newest installed one! So it is very important to add a new PHP version for the installed version to ISPConfig and change all sites to this version first. If you are using cron jobs calling PHP scripts you have to adapt them too, later more on that.

Because other packages as openssl are updated too, the installed packages from sury.org can not simply removed after installation. You first have to downgrade this packages to the Debian versions before you are able to remove the PHP packages without breaking other packages. The simplest way for me was to deactivate the new added repository, then installed packages from sury.org will apear as self created or deprecated packages in aptitude and you are able to downgrade package after package.

Please note that PHP-FPM can be used on both Apache and Nginx servers while FastCGI is available for Apache servers only.

2 Enable PHP versions in ISPConfig

In ISPConfig 3, you can configure the new PHP versions under System > Additional PHP Versions.

Add Debian's PHP version

You can skip this step if you do not have a Debian version of PHP installed.

First of all you have to add a new version for the already installed PHP version. On the Name tab, you just fill in a name for the PHP version (e.g. Debian 5.6) - this PHP version will be listed under this name in the website settings in ISPConfig:

Enter the name of the custom PHP version

Go to the FastCGI Settings tab and fill out the fields as follows:

Path to the PHP FastCGI binary: php5-cgi
Path to the php.ini directory: /etc/php5/cgi/php.ini

PHP 7.1 FastCGI

Then go to the PHP-FPM Settings tab and fill out the fields as follows:

Path to the PHP-FPM init script: php5-fpm
Path to the php.ini directory: /etc/php5/fpm/php.ini
Path to the PHP-FPM pool directory: /etc/php5/fpm/pool.d

PHP 7.1 FPM settings

Important step for cron jobs

If you use cron jobs calling PHP scripts you also have to tell cron which version to use. Add php5 in the beginning of the command to use the Debian's version. If you are not sure what you exactly are using follow the symlink /usr/bin/php and use its final destination as prefix.

Add other PHP versions

Currently there are 3 versions available at https://packages.sury.org/php/ and you have to repeat the last step now for every version you will install. But use the following settings instead:

PHP 5.6

Path to the PHP FastCGI binary: php-cgi5.6
Path to the php.ini directory: /etc/php/5.6/cgi/php.ini
Path to the PHP-FPM init script: php5.6-fpm
Path to the php.ini directory: /etc/php/5.6/fpm/php.ini
Path to the PHP-FPM pool directory: /etc/php/5.6/fpm/pool.d

The cli version for e.g. cron jobs has the name php5.6.

PHP 7.0

Path to the PHP FastCGI binary: php-cgi7.0
Path to the php.ini directory: /etc/php/7.0/cgi/php.ini
Path to the PHP-FPM init script: php7.0-fpm
Path to the php.ini directory: /etc/php/7.0/fpm/php.ini
Path to the PHP-FPM pool directory: /etc/php/7.0/fpm/pool.d

The cli version for e.g. cron jobs has the name php7.0.

PHP 7.1

Path to the PHP FastCGI binary: php-cgi7.1
Path to the php.ini directory: /etc/php/7.1/cgi/php.ini
Path to the PHP-FPM init script: php7.1-fpm
Path to the php.ini directory: /etc/php/7.1/fpm/php.ini
Path to the PHP-FPM pool directory: /etc/php/7.1/fpm/pool.d

The cli version for e.g. cron jobs has the name php7.1.

PHP 7.2

Path to the PHP FastCGI binary: php-cgi7.2
Path to the php.ini directory: /etc/php/7.2/cgi/php.ini
Path to the PHP-FPM init script: php7.2-fpm
Path to the php.ini directory: /etc/php/7.2/fpm/php.ini
Path to the PHP-FPM pool directory: /etc/php/7.2/fpm/pool.d

The cli version for e.g. cron jobs has the name php7.2.

PHP 7.3

Path to the PHP FastCGI binary: php-cgi7.3
Path to the php.ini directory: /etc/php/7.3/cgi/php.ini
Path to the PHP-FPM init script: php7.3-fpm
Path to the php.ini directory: /etc/php/7.3/fpm/php.ini
Path to the PHP-FPM pool directory: /etc/php/7.3/fpm/pool.d

The cli version for e.g. cron jobs has the name php7.3.

3 Change PHP version of websites

You can skip this step if you do not have a Debian version of PHP installed.

Now change the PHP version of all websites to the newly created version (e.g. Debian 5.6).

And do not forget to change the cron jobs as mentioned above.

4 Add the repository at packages.sury.org

To add the repository at packages.sury.org and its BGP keys to apt use these commands:

apt-get install -y apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

The next command is just one line, don't add any line breaks:

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
apt-get update

To upgrade already installed packages from the new repository use this command:

apt-get upgrade

5 Install PHP from packages.sury.org

I am offering here multiple options to install, please pick the desired versions and simply skip the rest!

5.1 Install PHP 5.6

To install PHP use this command:

apt-get install php5.6 php5.6-cli php5.6-cgi php5.6-fpm

5.2 Install PHP 7.0

To install PHP use this command:

apt-get install php7.0 php7.0-cli php7.0-cgi php7.0-fpm

5.3 Install PHP 7.1

To install PHP use this command:

apt-get install php7.1 php7.1-cli php7.1-cgi php7.1-fpm

5.4 Install PHP 7.2

To install PHP use this command:

apt-get install php7.2 php7.2-cli php7.2-cgi php7.2-fpm

5.5 Install PHP 7.3

To install PHP use this command:

apt-get install php7.3 php7.3-cli php7.3-cgi php7.3-fpm

5.6 Install the lastest PHP version

To install the lastest PHP version use this command:

apt-get install php php-cli php-cgi php-fpm

6 Install Memcache extension (optional)

To install Memcache use this command:

apt-get install php-memcache php-memcached

7 Install APCu extension (optional)

To install APC user cache use this command:

apt-get install php-apcu php-apcu-bc

8 Install xDebug extension (optional)

The xDebug module is a debugging extension for PHP. The installation is optional.

To install xDebug use this command:

apt-get install php-xdebug

This package seems to have other default settings than the Debian package php5-xdebug. Depending on your software you have to change settings like xdebug.max_nesting_level to get it running!

9 Install other extensions (optional)

There are a lot of additional extensions you can install for PHP. Here is a list of available packages, some of them you have to install for each version separately. Simply delete packages you are not going to use from the following commands:

9.1 Version independent packages

apt-get install

9.2 Version dependent packages

apt-get install

10 Set Debian default PHP back to the original version

The default PHP of the operating system has to remain at the original version. To fix that, run these commands:

update-alternatives --config php
update-alternatives --config php-cgi

On Debian 9: Choose PHP 7.0, on Debian 8, choose PHP 5.6 in the dialog that appears.

11 Restart FPM daemon

Finally, restart the php-fpm daemons. Run the commands for the previously installed ones:

service php5.6-fpm restart
service php7.0-fpm restart
service php7.1-fpm restart
service php7.2-fpm restart
service php7.3-fpm restart
Share this page:

Suggested articles

35 Comment(s)

Add comment

Comments

By: Nicholas at: 2017-07-11 15:01:51

Plz for centos?!

By: Karl at: 2017-07-11 20:39:40

Will ISP config create phpfpm pools for each website as different user?

By: till at: 2017-07-12 06:35:01

yes

By: Arek at: 2017-07-12 09:42:20

1. Is point 9 completed? 9.1 and 9.2 look the same...

2. Point 6 - If I have memcache installed from default debian repos, will not this make conflict?

3. After install php7.0 and php7.1 on debian jessie with default 5.6 installed ISPConfig 3.1 stop work. Log: WARNING - There is already a lockfile set, but no process running with this pid (11667). Continuing.

Class 'mysqli' not found in /usr/local/ispconfig/server/lib/classes/db_mysql.inc.php on line 30

I think install command should include php7.0-mysql too.After install php in /etc/alternatives was changed to php7.1 and ISPConfig has problem with this. 

By: Ruben at: 2017-07-12 12:08:39

The article needs huge improvement.

There are some points which are not finished and it caused trouble, but I have fixed it.

 

You need to change the fpm init script (if applicable) to:

php5.6-fpm

php7.0-fpm

php7.1-fpm

 

And you need to install some packages:

phpX.X-mysql and phpX.X-mbstring

 

These websites have helped me:

HowtoForge discussion

Another website

By: Ruben at: 2017-07-12 11:46:48

I think that paths to FPM init scripts are wrong. Those are what I have in my server:

 

php5.6-fpm

php7.0-fpm

php7.1-fpm

By: Plamen Vasilev at: 2017-07-12 21:13:11

Please add in article and php 7.2:

apt-get install php7.2 php7.2-cli php7.2-cgi php7.2-fpm

By: Tiago at: 2017-07-12 22:25:48

Can I use this tutorial in Ubuntu 14.04?

By: Plamen Vasilev at: 2017-07-12 22:28:45

Please add in article and commands after install php7.1 or/and php7.2:

update-alternatives --config phpupdate-alternatives --config php-fpmupdate-alternatives --config php-cgi

and select debian default version (5.6 for Jessie, 7.0 for Stretch)

because if lastest installed version is php7.1 (for example) - /usr/bin/php -v shown:

 $ php -vPHP 7.1.7-1+0~20170711133214.5+stretch~1.gbp5284f4 (cli)

By: gOOvER at: 2017-07-16 07:01:22

After installing php7.1 it's needed to set in Debian 9:

update-alternatives --config php

update-alternatives --config php-cgi

 

manuell to 7.0. Else ispconfig3 will not start end ends in an Error 500

By: gOOvER at: 2017-07-16 07:37:51

Update: On Debian 9 i must reinstall a lot of packages:

apt-get install php-zip php-zeroc-ice php-xml php-tcpdf php-ssh2 php-soap php-snmp php-redis php-php-gettext php-mysql php-pear php-net-smtp php-net-socket php-net-imap php-net-nntp php-mcrypt php-mbstring php-imap php-intl php-json php-imagick php-gnupg php-gd php-geoip php-fpm php-dev php-mail php-mail-mime php-curl php-cli php-cgi php-bz2 php-bcmath php-apcu php-auth-sasl php-apcu-bc php7.1-common php7.0-common php5.6-common php7.1-opcache php7.0-opcache php5.6-opcache php7.1-mysql php7.0-mysql php5.6-mysq

By: Oitsuki at: 2017-07-18 02:52:08

Hello,

After installer php 7.1, I have been this error PHP Fatal error:  Uncaught Error: Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'

/etc/php/7.1 I haven"t apache2 /etc/php/7.1/cgi/php.ini  : do something must make ?

My version php 7.0 works fine I go back but i would know why the 7.1 does'nt wok/etc/php/7.0  : I have apache2 not in 7.1

 

 

By: Piotr at: 2017-09-11 11:45:35

Hey,

I have a problem. I made the installation as in the tutorial. Everything works okey, but I have a problem with Joomla and PHP 5.6. I installed VPS with Debian 9 and PHP 7.1, 7.0 and 5.6. With PHP 7.0 and PHP 7.1 the page is okey, but after switching to PHP 5.6 a white page appears. I do not know what the problem is. It appears on Joomla 2.5.28 and Jommel 3.7. I suspect this is a problem with SQL, but I do not know how to solve it. I need PHP 5.6 because I have one page in Joomla 2.5.28 and I can not update to Joomla 3.7. When switching to PHP 5.6 another CMS works (Wordpress). Probably missing some extra modules. Did anyone have such a problem?

By: Jesse Norell at: 2017-09-20 21:10:06

 On Debian 9, I installed as above and have all versions (including 7.2) tested in fpm and cgi mode against a default wordpress installation.The paths to the PHP-FPM init scripts in step 2 indeed need changed (php-fpm5.6 -> php5.6-fpm, etc.) as others have commented.I ran these queries on the ispconfig server (master server in a multi-server setup) to update all sites using the default php version, which I had named 'PHP 5.6 from Debian' (note the exact name you use is included in the query):

  update web_domain  set fastcgi_php_version = 'PHP 5.6 from Debian:php5-fpm:/etc/php5/fpm/php.ini:/etc/php5/fpm/pool.d'  where php = 'php-fpm'  and fastcgi_php_version = '';  update web_domain  set fastcgi_php_version = 'PHP 5.6 from Debian:php5-cgi:/etc/php5/cgi/php.ini'  where php = 'fast-cgi'  and fastcgi_php_version = '';I then went to Tools > Resync and resync'd all Websites.There are three alternatives which need set back after installing:# update-alternatives --set php /usr/bin/php5# update-alternatives --set php-cgi /usr/bin/php5-cgi# update-alternatives --set php-cgi-bin /usr/lib/cgi-bin/php5Very few php sites will work without installing several extensions (step 9);I used dpkg to list currently installed debian packages and install the same for each new php version.Note there is no xcache extension for the 7.x versions, and 7.2 does not have mcrypt.# dpkg --list | grep '^i.  php5-' | awk '{print $2}' | sed s/5/5.6/g | xargs apt-get install -y# dpkg --list | grep '^i.  php5-' | awk '{print $2}' | egrep -v -- '-xcache$' | sed s/5/7.0/g | xargs apt-get install -y# dpkg --list | grep '^i.  php5-' | awk '{print $2}' | egrep -v -- '-xcache$' | sed s/5/7.1/g | xargs apt-get install -y# dpkg --list | grep '^i.  php5-' | awk '{print $2}' | egrep -v -- '-xcache$|-mcrypt$' | sed s/5/7.2/g | xargs apt-get install -yAnd mbstring wasn't caught with the above commands, so:# apt-get install -y php-mbstring php5.6-mbstring php7.0-mbstring php7.1-mbstring php7.2-mbstringMissing from the instructions is the need for php.ini changes; start by copying your old Debian 5.6 php.ini to the new 5.6, then look at what settings you changed and make the same to the other versions.# cd /etc/php# mv 5.6/cli/php.ini 5.6/cli/php.ini.dist; cp ../php5/cli/php.ini 5.6/cli/php.ini# mv 5.6/cgi/php.ini 5.6/cgi/php.ini.dist; cp ../php5/cgi/php.ini 5.6/cgi/php.ini# mv 5.6/fpm/php.ini 5.6/fpm/php.ini.dist; cp ../php5/fpm/php.ini 5.6/fpm/php.ini# diff -u 5.6/cgi/php.ini.dist 5.6/cgi/php.ini# vi 7.*/*/php.ini

By: SEB at: 2017-09-22 23:27:54

Maybe a little more accurately. Very briefly.

By: Tuto&Co at: 2017-11-16 07:34:01

Package php7.1 is not available for Debian stretch in packages.sury.org, only php7.0 is available and works.

 

The following packages have unmet dependencies:

 php7.1 : Depends: libapache2-mod-php7.1 but it is not installable or

                   php7.1-fpm but it is not installable or

                   php7.1-cgi but it is not installable

          Depends: php7.1-common but it is not installable

By: Dani at: 2017-12-05 12:04:06

After doing this steps i changed the php version of one website. Now the task is hanging and hanging and hanging. Whats my false?

By: nikolaosp at: 2017-12-11 11:20:47

The answer from Ruben was essential.  There is a problem with the instructions and you need to add the mysql and mbstring packages as per Ruben's comment.

 

Thank you for your help

 

Ruben said:

"The article needs huge improvement.

There are some points which are not finished and it caused trouble, but I have fixed it.

 

You need to change the fpm init script (if applicable) to:

php5.6-fpm

php7.0-fpm

php7.1-fpm

 

And you need to install some packages:

phpX.X-mysql and phpX.X-mbstring

 

These websites have helped me:

HowtoForge discussion

Another website "

By: sunghost at: 2017-12-19 11:02:05

Hi,

i have to upgrade from Jessie to Stretch and noticed on Testsystem, that default PHP Version changed from 5.6 to 7.0. I use to upgrade PHP Versions in ISPConfig the compile way and now want to use this howto as a new possibility. It seems simple, but i am not sure if it will work successfully. I have to test it. One Question i have is - When newer version of PHP released, can i do a simple apt-get udpate and 5.6, 7.0, 7.1 and 7.2 will upgraded? How secure is the souce of this packaged provided by sury.org?

By: Mat at: 2018-01-03 23:34:32

Dear all,

has maybe anybody tested if it works also with php 7.2 ?

Thanks in advance & kind regards,

Mat

By: ffab at: 2018-05-05 14:35:41

Yes Mat. it works also with php 7.2.

By: till at: 2018-11-01 16:15:49

And now with PHP 7.3 as well.

By: Indieben at: 2018-11-01 17:02:20

Firstly a note for anybody who's starting point is not PHP 5.6 (that would be fairly ancient) - I, for example, had totally overhauled my server and installed Debian 9 with PHP 7.0 and then visited this tutorial: 

1) Follow the "paths" for 7.0 (as if you had just installed it as part of this tutorial) that are about half way down the page when saving your current version (as per the initial steps) Naturally, you do not need to reinstall 7.0, presuming you started with it before you came to this tutorial). 

2) If you want to install 5.6 for ancient websites, follow the instructions in the tutorial that are available for a new install of that. As I understand it, there are numerous security issues with continuing on 5.6 so please thoroughly research. 

3) Install all of the other PHP versions that you require.

4) Slightly annoyingly, it was necessary to add all of these into PHP Versions for each client manually as there was no option to add them for all Clients. For a system set up for resellers, I think this is a bit short sighted. Personally, I don't resell websites but I do like to split some things up between "clients" for different projects.  

This tutorial page would benefit from being split up into sub tutorials for the different scenarios as, even though it is a very updated tutorial, it is trying to cater to far too many user groups and it has become overly complicated. 

It would seem that this tutorial also was very poorly written when it started out given the amount of proposed changes. It would be helpful if Till (or another Admin/Moderator) would actually highlight the comments that have been incorporated (Till says that many have been added into the tutorial itself) and which comments he considers are wrong as it's impossible for anybody but an expert to decipher what is wrong, what is correct and when to follow the instructions in the tutorial and when not to. It needs a fair bit of reorganisation and a good clear-out. 

I understand that Till has just added PHP 7.3 instructions whilst I was messaging about this tutorial. I'm not convinced that PHP 7.3 is widely accepted since it was only released on 25 October 2018 (as I write: a week ago) -> I will submit to the knowlege of the more experienced here but I would proceed with caution (at least as far as assigning any websites to run it - particularly those running a Content Management System such as Joomla, Drupal etc). 

indieben. 

Freenode: ##ispconfig (not an official ISPConfig Channel). 

By: till at: 2018-11-01 17:21:41

You install just the PHP versions that you want to use of course. PHOP 5.6 is old but still required on most servers, no matter if you use Debian 8 or 9 as many older websites still do not support PHP 7. I've added PHP 7.2 support and PHP 7.3 support in the guide today, not just 7.3 as you asked me to test the guide. Even the old version worked flawlessly on a fresh Debian 9 ISPConfig system here. As with any new PHP version, 7.3 will become mainstream in the same way that any other 5.x and 7.x version became mainstream before and web designers that develop sites might want to test if their code is compatible with the upcoming mainstream version

In regard to 4) That's not the case. The default is even to have it available for all clients. Simply select no client (it's the default in ISPconfig) to make it available for all users.

In regard to comments on the tutorial, every comment that is older than the updated date of the tutorial is outdated as the guide is tested on the date when it got updated and worked without issues at that time.

By: Indieben at: 2018-11-01 17:41:03

Thanks Till for the helpful clarification there :-) I was not aware that "default" equated to "all clients". Handy to know, particularly if someone has a whole bunch of real clients!

By: Indieben at: 2018-11-01 17:46:28

In a totally separate reply strand, I would be extremely grateful for some help identifying what the issue is in relation to my Joomla installs (that are bang up to date). 

I have tried assigning PHP 7.1 and PHP 7.2 to the websites that they are installed on and all as I get, upon loading the website is "error". I think this is Joomla's default display when things do not work. 

Essentially, despite following the tutorial to the letter, none of the Joomla websites work on PHP 7.1. or PHP 7.2. I didn't get as far as 7.3! They worked fine when I changed back to 7.0 (this, for me, was initially installed when I set up the whole server). I've checked all of the paths are correct, I've reloaded as per the instructions and I've restarted the web server to no avail. 

Does anybody also have any instructions for how to allocate a PHP version to a specific sub-directory (say, one that is not a CMS). This would be handy where somebody has website "software" that will only run on, say, 7.0 whereas Joomla (installed in the root) requires 7.2? Would that be a .htaccess job, would there be anything more to it etc?

I also noticed, with these comments being on moderation, it's stripping out the paragraphing making longer messages more hard to read. 

Thanks.  

By: till at: 2018-11-01 18:03:53

Please post in the iSPConfig forum to get help with your server problem: https://www.howtoforge.com/community/forums/installation-configuration.27/

By: Indieben at: 2018-11-01 18:11:33

Till, 

I respectfully disagree. If Joomla worked fine with 7.0 installed (and I did not need to tell Joomla that 7.0 was the server environment as this was automatically detected, and, the PHP environment is not hard coded into the configuration.php file) then it's important to work out whether there is an issue with the tutorial or not. As I said earlier by private comment, just because there has not been a comment about it does not mean that somebody hasn't already come across the issue but has not commented here. Also, I had highlighted that this is not a Joomla question per se, it's an example of the tutorial not working. 

By: till at: 2018-11-01 18:32:31

The comment section exists so that users can post comments to improve the tutorial. The comment section is not the place for individual server support or to debug another software like Joomla that is not even covered in the tutorial. There is an issue with the Joomla install on your server and we will help you to find out what the cause is, but this can have a lot of reasons e.g. the Joomla version is not compatible with the PHP version you use now or your Joomla install uses PHP modules that you did not install for that new PHP version yet or a php.ini setting is not compatible with Joomla and so on, I will not start discussing that here in detail or explain how to check in the apache log nginx log file how to find out why your Joomla install is not working as it will clutter the tutorial comments. There is free support for ISPConfig available in the forum, if you like to get help with your Joomla problem, then post there.

By: Indieben at: 2018-11-01 19:05:58

"The comment section exists so that users can post comments to improve the tutorial." > Yes, precisely, please read my logic above and you will see that that's the point I am making. 

"The comment section is not the place for individual server support or to debug another software like Joomla that is not even covered in the tutorial." > I am not requesting individual server support any more than any other user is highlighting their experiences in direct relation to the tutorial. As for Joomla, it runs on PHP, worked before I completed the tutorial and now doesn't work - that totally links Joomla as an example to this tutorial. 

"There is an issue with the Joomla install on your server" -> Yes, related to the instructions in this tutorial but you have not evidenced that it is not related so that you can say that my comments are a request for individual support (otherwise I would have posted in the other section to begin with).

"...the Joomla version is not compatible with the PHP version you use now..." > Joomla itself is highly recommending that the PHP version is updated. As stated before, 7.1 and 7.2 (as installed using the instructions in this tutorial) have both been tested and neither work. As also stated before, PHP 7.0 (that was originally installed by me when I installed the server) works (highlighting that there is no issue with my server otherwise PHP 7.0 would not work). 

"...or your Joomla install uses PHP modules that you did not install for that new PHP version yet or a php.ini setting is not compatible with Joomla..." > I had no cause to manually install any PHP modules to begin with when Joomla worked. This confirms that Joomla works with default PHP modules that came as standard with PHP 7.0 in the same way as PHP 5.6 where no extra PHP modules were installed either). 

Debug - fair comment. 

Please do not think that I have not thought carefully about the most appropriate place for my comments. I totally respect and share that it is irritating if comments are placed in the wrong areas. Please understand by my very direct response where I am coming from. Thanks. 

 

 

 

By: till at: 2018-11-01 19:39:58

> "...or your Joomla install uses PHP modules that you did not install for that new PHP version yet or a php.ini setting is not compatible with Joomla..." > I had no cause to manually install any PHP modules to begin with when Joomla worked. This confirms that Joomla works with default PHP modules that came as standard with PHP 7.0 in the same way as PHP 5.6 where no extra PHP modules were installed either).

The default php version has many optional PHP modules which you installed at the time you setup your server, create a phpinfo() file and check it if you don't remember what you installed during initial setup or look at the tutorial you used to install your server. Your argumentation that a new PHP version must work with Joomla without installing the PHP modules that Joomla requires makes not much sense to me. Here a short list of these modules that you probably installed for the default PHP:

php7.0-gd php7.0-mysql php7.0-imap php7.0-mcrypt php7.0-curl php7.0-intl php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php-gettext php7.0-zip php7.0-mbstring php7.0-soap

Look at the Joomla system requirements and install the modules that Joomla lists there. If you would have looked at the log file, you would probably have seen which modules are needed as well as they result in failed function calls.

By: Indieben at: 2018-11-05 14:24:28

Dear Till, 

Thanks for this. Any modules installed, a) during the initial PHP 5.6 ISPConfig 3 server install were as specified within tutorials on here. When I wiped the server (having backed up the websites) and installed a Debian 9, PHP 7.0 ISPConfig 3 server, I again followed the tutorials on here. Any PHP modules that may have been installed would have been those that I was instructed within the tutorials to install. I therefore referred to them as "default" presuming that since they would have been detailed (or installed automatically) , that they were pre-requisites of a working PHP install.

I also simply followed the instructions in this tutorial as well without adding any extra PHP modules of my own. 

It seems to make sense to open a new topic in the support section and link back here with the result once I have completed the suggestions that you have mentioned above. I trust that that should be OK as it answers questions for others since Joomla is a very popular CMS that people would want to work after completing this tutorial. 

Thanks. 

By: VPIII at: 2018-11-29 00:57:39

found that still had to install mysql extentions for each PHP version as well.

php5.6-mysql php7.0-mysql php7.1-mysql php7.2-mysql php7.3-mysql

if you happen to not read / do the first part of the article or have thrashed your default PHP somehow like maybe me......

 

https://www.howtoforge.com/community/threads/electronico_nc-fixed-it-oops-php-updates-broke-admin-side.80719/#post-382500

php --version

 

/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter

update second one with info from first one - then should all be better....

 

still haven't updated crons because didn't know where that was all at... blah... /etc/cron?!?

By: Indieben at: 2018-12-07 05:12:32

I promised an update on my posts. As someone has recently commented, it is necessary to search for modules currently installed on the PHP version that you currently run and ensure that these modules are also installed on any extra php versions that you install above. I don’t feel that this is made totally clear. 

 

I think part of the issues I experienced were that the perfect server tutorials cover the installation of the most popular PHP extensions whereas this tutorial doesn’t cover that and so I presumed that the modules installed for PHP 7.0 (the PHP version I installed in the Debian 9 tutorial) would still function with the newer versions of PHP. 

 

There is is a discrepancy between the perfect server tutorials that are deliberately made easy and this tutorial. That’s my update anyway! 

By: Firesphere at: 2018-12-09 01:39:39

If I select PHP7.3, I get a 503 error and the following in my logs:

```[proxy_fcgi:error] [pid 13206] [client IP:53304] AH01067: Failed to read FastCGI header[proxy_fcgi:error] [pid 13206] (104)Connection reset by peer: [client IP:53304] AH01075: Error dispatching request to :```

Any clue what might be going on here?