Hey,

I'm running Drupal 8 with PHP 5.6.38. I am on a VPS hosting other sites (within same company).

In the current server configuration - I cannot use a newer version of PHP (i.s. PHP7) until EasyApache4 is installed. Once that is installed - I can designate the php version - per site.

Regarding the install/upgrade I was told the following:
"fcgi isn't available as a php handler, and that is the primary php handler in use at this time.  The options for ea4 are php-fpm or suphp."

QUESTION 1: Would this (switching the php handler) affect my Drupal site?

QUESTION 2: If so - what are the work-arounds?

Apologies as I don't know a lot about the inner-workings of servers.

Thanks for any answers & advice.

Comments

Kristi Wachter’s picture

Hi CB1_Dru1,

Your site will PROBABLY run fine using php-fpm. I have one site (out of several) using php-fpm, and we didn't experience any problems when we switched.

To be absolutely sure, though, it would be best to test your site on the system you're planning to switch to - PHP7 and EasyApache4. Can you get a second account for a month or so with your current provider and make a copy of your current site, using the newer software (PHP7 and EA4) you want to use, so you can do some thorough testing before making that change on your live server?

If there's any way to do that, I strongly recommend it.

I hope that helps.

Kristi

P.S. You can see some of the discussion of other Drupal users working with php-fpm here:

https://www.google.com/search?q=%22php-fpm%22+site%3Adrupal.org

For example, here's a pointer to an article about getting started:

https://groups.drupal.org/node/458613

˚ ˚ ˚ ˚ ˚
Kristi Wachter
Drupal consultant, evangelist, and enthusiast

CB1_Dru1’s picture

A little progress...

1 - I created a cloned server (VPS) with my hosting company.
2 - EasyApache4 now running.
3 - All sites currently running default PHP 5.6
4 - EasyApache4 running PHP FPM
5 - I took a Server Image so I have something to roll back to if needed.

Lastly - I see my version of MySql (5.6.38) will reach end-of-life in February, 2018. Which I guess means I need to update that also.

I'm now sort-of overwhelmed with choices I know little about.

Question 1 - Should I upgrade my MySql 5.6 to the recommended MariaDB 10.1 BEFORE upgrading the PHP version?

Question 2 - In the EasyApache4 interface - I have a myriad of "Packages" to choose from. The Default package contains the following: (I omitted listing the 5.4 & 5.5 Packages) --

Are the Requirements for 7.0 and 7.1 OKAY for my Drupal 8 install? IF NOT - what am I missing?

Currently Installed Packages
Contains Apache 2.4, PHP 5.4, PHP 5.5, PHP 5.6, PHP 7.0, and PHP 7.1

--------------------------------------------------------------------------

Current Profile
The currently installed packages on the server.

Apache 2.4:
config
config-runtime
devel
mod_bw
mod_bwlimited
mod_cgid
mod_deflate
mod_expires
mod_headers
mod_mpm_event
mod_proxy
mod_proxy_fcgi
mod_proxy_http
mod_proxy_wstunnel
mod_security2
mod_ssl
mod_suexec
mod_suphp
mod_unique_id
tools


PHP 5.6:
libc-client
pear
php-bcmath
php-bz2
php-calendar
php-cli
php-common
php-curl
php-devel
php-exif
php-fpm
php-ftp
php-gd
php-gettext
php-iconv
php-imap
php-ioncube5
php-litespeed
php-mbstring
php-mcrypt
php-mysqlnd
php-pdo
php-posix
php-soap
php-sockets
php-suhosin
php-xml
php-xmlrpc
php-zendguard
php-zip
runtime

PHP 7.0:
pear
php-bcmath
php-bz2
php-calendar
php-cli
php-common
php-curl
php-devel
php-exif
php-fpm
php-ftp
php-gd
php-gettext
php-iconv
php-litespeed
php-mbstring
php-mcrypt
php-mysqlnd
php-opcache
php-pdo
php-posix
php-soap
php-sockets
php-xml
php-xmlrpc
php-zip
runtime

PHP 7.1:
pear
php-bcmath
php-bz2
php-calendar
php-cli
php-common
php-curl
php-devel
php-exif
php-fpm
php-ftp
php-gd
php-gettext
php-iconv
php-litespeed
php-mbstring
php-mcrypt
php-mysqlnd
php-opcache
php-pdo
php-posix
php-soap
php-sockets
php-xml
php-xmlrpc
php-zip
runtime

Others:
apr
apr-devel
apr-util
apr-util-devel
cpanel-tools
documentroot
libcurl
libmcrypt
libnghttp2
modsec-sdbm-util
nghttp2
openssl
php-cli
php-cli-lsphp
profiles-cpanel

Question 3 - I see SuHosin is not listed in the PHP7.x lists, yet I used it for a previous situation - is it NOT able to be loaded with these new packages?

Question 4 - ZendGuard has compatibility issues with the latter versions of PHP 7. Is it okay that it is missing?

Any help with any of this would be appreciated. Thanks!

mmjvb’s picture

Q1: Not as such, provided it is implemented properly. The web server needs to support PHP. How that is implemented effects the web server and anything that is using it. The new configuration needs to match the current. A change in the underlying infrastructure should be treated as a migration. You need to test, proving that everything works as it is supposed to. Very unlikely the php handler is the only thing that is different.

Q2: Not really a work-around, considering a change in infrastructure a migration project should be the way to do it. Not treating it as a migration should be considered work-arounds. Obviously, when the sites have no importance, downtime is acceptable. Trusting you can get everything running again in due time is a viable alternative.

CB1_Dru1’s picture

I thought an easy first step might be to install the php 7 version of XAMPP on my windows machine. Then test a current backup of my site (php 5.6.29).

1 - I installed XAMPP
2 - Imported Database (after increasing some php.ini parameters
3 - Added site download to proper folder
4 - In browser typed the localhost:443/directory

This brought me to a Drupal8.4.2 Install page.

Which makes no sense and leaves me stumped.

Any thoughts? Thanks.

My fault - omitted files in copying to my XAMPP server. All works well on XAMPP server with PHP7. I know it's not the production server. But it's a first step.

suPhp is no longer supported so it looks like php-fpm is the only way to go. Checking on a testing server (but think that's wishful thinking). Thanks for the help!

mmjvb’s picture

When moving a site to a different infrastructure you need to make sure it fits. Obviously, when starting the installation process, it doesn't recognize the existing site.

Suggest to check the .htaccess in DocumentRoot, .htaccess in /directory and settings.php. They definitely need to be dealt with to recognize your existing site. One of the most obvious things you need to do is changing the database settings in settings.php, very unlikely that they remain the same. The other thing is running your site in /directory, might require changing /directory/.htaccess concerning rewriteBase. The last thing I can think of is having two .htaccess files might cause problems. Obviously, that depends on their content. Was the one of your site customized? Adjusted to match the infrastructure?