PHP Software Collections

From SME Server
Jump to navigationJump to search


PythonIcon.png Skill level: Easy
The instructions for installing and using php scl can be followed by a beginner, changing options requires a basic knowledge of linux.


Is this article helpful to you?
Please consider donating or volunteering
Thank you!

PHP Software Collections for SME Server

Maintainer

stephdl Stéphane de Labrusse AKA Stephdl

Version

Contrib 9:
smeserver-php-scl
The latest version of smeserver-php-scl is available in the SME repository, click on the version number(s) for more information.


Description

The purpose of the contribs is to install PHP54, PHP55, PHP56 alongside the default php version installed with SME9 without having to remove or change the default php installation. We use the rpms from the remi repository which are in fact the same as those on the official official web site, but have the advantage of providing more choices.

All PHP rpms are installed in /opt , this prevents any interference or conflict with the default install of PHP.

Requirements

Warning.png Warning:
Only for SME Server 9 64 bit


Installation

Important.png Note:
Please be aware that currently there is a broken dependency which has to be resolved manually. Please see details here: https://forums.contribs.org/index.php/topic,52689.msg272168.html#msg272168


Remember to first configure the required remi and the epel repositories, then issue the following command on the SME Server shell:

/sbin/e-smith/db yum_repositories set remi repository \
Name 'Remi - EL6' \
BaseURL 'http://rpms.famillecollet.com/enterprise/6/remi/$basearch/' \
EnableGroups no \
GPGCheck yes \
GPGKey http://rpms.famillecollet.com/RPM-GPG-KEY-remi \
Visible yes \
Exclude mysql*,php-*,phpMyAdmin \
status disabled
 signal-event yum-modify


Then Issue the command line

yum install smeserver-php-scl --enablerepo=smecontribs,remi,epel

If you do not want to restart your server

signal-event php-update; config set UnsavedChanges no

or

signal-event post-upgrade; signal-event reboot

Go to the php-scl panel on Server Manager and activate the version of php you desire for each Ibay, or if you need for the whole server.

Limitation

If you use scl_php56/scl_php54/scl_php55 for the whole server, You can add also specific values (MemoryLimit,UpMaxFileSize,PostMaxSize,MaxExecTime,AllowUrlfOpen) per Ibay (either by db command or by the contrib smeserver-webhosting) because apache is the handler of php.

If you use scl_php56,scl_php55,scl_php54 per ibay, then you use php with a cgi application and you cannot add specific setting to apache with php_admin_flag or php_admin_value. Then if you want to add a specific setting like in Usage you must use it for the whole php applications by the command you can find in Usage

It is the limitation of php-scl

In short

  • PHP SCL for the whole server -> all settings can be set per Ibay normally with db or with smeserver-webhosting (these settings will overwritten those set in Usage)
  • PHP SCL per Ibay -> all settings must be set in each php{54,55,56} properties like in Usage. Of course all php applications (whatever the Ibay) will share the same settings.

Usage

When you want to change the version of php, you can use the panel (Php-Scl versions), either for changing the php version for an Ibay or for the whole server.

However if you want to change settings of a specific php version you have to use the command line, first see the new db entries.

After each modification don't forget to launch the event 'signal-event php-update'

[root@sme9b3dev64 ~]# config show php54
php54=configuration
   AllowUrlFopen=Off     #(On/Off)
   MaxExecutionTime=30
   MaxFileUpload=20
   MaxInputTime=60
   MemoryLimit=128M
   PhpModule=disabled    #(enabled/disabled)
   PostMaxSize=20M
   UploadMaxFilesize=10M
[root@sme9b3dev64 ~]# config show php55
php55=configuration
   AllowUrlFopen=Off     #(On/Off)
   MaxExecutionTime=30
   MaxFileUpload=20
   MaxInputTime=60
   MemoryLimit=128M
   PhpModule=disabled    #(enabled/disabled)
   PostMaxSize=20M
   UploadMaxFilesize=10M
[root@sme9b3dev64 ~]# config show php56
php56=configuration
   AllowUrlFopen=Off      #(On/Off)
   MaxExecutionTime=30
   MaxFileUpload=20
   MaxInputTime=60
   MemoryLimit=128M
   PhpModule=disabled    #(enabled/disabled)
   PostMaxSize=20M
   UploadMaxFilesize=10M


in fact you can choose manually (think about you have a panel for that) which version you want to use in the phpmod of apache (only one version can be used), for example

config setprop php56 PhpModule enabled
signal-event php-update

Since just one version can be used with php-mod, the lower version is used....all disabled and it is the php default version which is used

Run a command with a specific software environment

You can run a command from the shell with a specific env with:

scl enable php55 'php -v'

(useful for example if you need to run a cron job with an alternative PHP version)

Find other RPMS

Important.png Note:
Now when you want a specific rpm, you have to install it from the 'remi' repository. The name start by php54-php or php55-php or php56-php

here all the rpm available : http://rpms.famillecollet.com/enterprise/6/remi/x86_64/repoview/letter_p.group.html


If you want to see available rpm

yum list available php5\* --disablerepo=* --enablerepo=remi

For example if you want to install the php rpm for pgsql

yum install php54-php-pgsql php55-php-pgsql php56-php-pgsql --enablerepo=remi


Update

please do not enable remi and epel repo by default, as you might break you system or at least the update process.

regularly you should check for updates and apply them by doing so:

yum update smeserver-php-scl php54* php55* php56* --enablerepo=smecontribs,remi,epel

Uninstall

yum remove smeserver-php-scl

Bugs

Please raise bugs under the SME-Contribs section in bugzilla and select the smeserver-php-scl component or use this link .

"No open bugs found."

Changelog

Only released version in smecontrib are listed here.