Updating to PHP 7.2

updating to php72
adding rh-php72-php-intl
adding uninstallation commands for old php54 (sometimes updating breaks the apache config, because php54 config is recreated)
symlink command for binary for short paths for usage in cron
This commit is contained in:
michag86 2019-01-06 15:45:42 +01:00 committed by GitHub
parent a8b713c740
commit 874c3dc86f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 100 additions and 82 deletions

View File

@ -1,82 +0,0 @@
=========================================
Installing PHP 7.0 on RHEL 7 and CentOS 7
=========================================
PHP 5.4 has been end-of-life since September 2015 and is no longer supported by the PHP team. RHEL 7 still ships with PHP 5.4, and Red Hat supports it. Nextcloud 14+ requires PHP 7.0 or newer, so upgrading to 7.0 is required.
RHEL 7 Upgrade to PHP 7.0
-------------------------
To upgrade to PHP 7.0, you must use the Software Collections (SCL) repository to be in compliance with your RHEL support contract, and not any other third-party repository. Follow these steps to install PHP 7.0 from SCL. First you must use your Subscription Manager to enable SCL::
subscription-manager repos --enable rhel-server-rhscl-7-eus-rpms
Then install PHP 7.0 and these modules::
yum install rh-php70 rh-php70-php rh-php70-php-gd rh-php70-php-mbstring
You must also install the updated database module for your database. This installs the new PHP 7.0 module for MySQL/MariaDB::
yum install rh-php70-php-mysqlnd
If you are using the Nextcloud LDAP app, you need this module::
yum install rh-php70-php-ldap
Disable loading the old PHP Apache modules by changing their names::
mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php54.off
mv /etc/httpd/conf.modules.d/10-php.conf /etc/httpd/conf.modules.d/10-php54.off
Symlink the PHP 7.0 Apache modules into place::
ln -s /opt/rh/httpd24/root/etc/httpd/conf.d/rh-php70-php.conf /etc/httpd/conf.d/
ln -s /opt/rh/httpd24/root/etc/httpd/conf.modules.d/15-rh-php70-php.conf /etc/httpd/conf.modules.d/
ln -s /opt/rh/httpd24/root/etc/httpd/modules/librh-php70-php7.so /etc/httpd/modules/
Then restart Apache::
service httpd restart
Verify with ``phpinfo`` that your Apache server is using PHP 7.0 and loading the
correct modules; see :ref:`label-phpinfo` to learn how to use phpinfo.
CentOS 7 Upgrade to PHP 7.0
---------------------------
To upgrade to PHP 7.0, use the Red Hat Software Collections (SCL) repository.
Follow these steps to install PHP 7.0 from SCL. First install the SCL repository::
yum install centos-release-scl
Then install PHP 7.0 and these modules::
yum install rh-php70 rh-php70-php rh-php70-php-gd rh-php70-php-mbstring
You must also install the updated database module for your database. This installs the new PHP 7.0 module for MySQL/MariaDB::
yum install rh-php70-php-mysqlnd
If you are using the Nextcloud LDAP app, you need this module::
yum install rh-php70-php-ldap
Disable loading the old PHP Apache modules by changing their names::
mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php54.off
mv /etc/httpd/conf.modules.d/10-php.conf /etc/httpd/conf.modules.d/10-php54.off
Symlink the PHP 7.0 Apache modules into place::
ln -s /opt/rh/httpd24/root/etc/httpd/conf.d/rh-php70-php.conf /etc/httpd/conf.d/
ln -s /opt/rh/httpd24/root/etc/httpd/conf.modules.d/15-rh-php70-php.conf /etc/httpd/conf.modules.d/
ln -s /opt/rh/httpd24/root/etc/httpd/modules/librh-php70-php7.so /etc/httpd/modules/
Then restart Apache::
service httpd restart
Verify with ``phpinfo`` that your Apache server is using PHP 7.0 and loading the
correct modules; see :ref:`label-phpinfo` to learn how to use ``phpinfo``.

View File

@ -0,0 +1,100 @@
=========================================
Installing PHP 7.2 on RHEL 7 and CentOS 7
=========================================
PHP 5.4 has been end-of-life since September 2015 and is no longer supported by the PHP team. RHEL 7 still ships with PHP 5.4, and Red Hat supports it. Nextcloud 14+ requires PHP 7.0 or newer, so upgrading to 7.0 or newer is required.
RHEL 7 Upgrade to PHP 7.2
-------------------------
To upgrade to PHP 7.2, you must use the Software Collections (SCL) repository to be in compliance with your RHEL support contract, and not any other third-party repository. Follow these steps to install PHP 7.2 from SCL. First you must use your Subscription Manager to enable SCL::
subscription-manager repos --enable rhel-server-rhscl-7-eus-rpms
Then install PHP 7.2 and these modules::
yum install rh-php72 rh-php72-php rh-php72-php-gd rh-php72-php-mbstring rh-php72-php-intl
You must also install the updated database module for your database. This installs the new PHP 7.2 module for MySQL/MariaDB::
yum install rh-php72-php-mysqlnd
If you are using the Nextcloud LDAP app, you need this module::
yum install rh-php72-php-ldap
Disable loading the old PHP Apache modules by changing their names::
mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php54.off
mv /etc/httpd/conf.modules.d/10-php.conf /etc/httpd/conf.modules.d/10-php54.off
Symlink the PHP 7.2 Apache modules into place::
ln -s /opt/rh/httpd24/root/etc/httpd/conf.d/rh-php72-php.conf /etc/httpd/conf.d/
ln -s /opt/rh/httpd24/root/etc/httpd/conf.modules.d/15-rh-php72-php.conf /etc/httpd/conf.modules.d/
ln -s /opt/rh/httpd24/root/etc/httpd/modules/librh-php72-php7.so /etc/httpd/modules/
Then restart Apache::
service httpd restart
Verify with ``phpinfo`` that your Apache server is using PHP 7.2 and loading the
correct modules; see :ref:`label-phpinfo` to learn how to use ``phpinfo``.
If there is no requirement for php 5.4, you can remove it:
yum remove php*
rm /etc/httpd/conf.modules.d/10-php54.off /etc/httpd/conf.d/php54.off
After uninstalling, you can symlink the PHP 7.2 binary to use the short path (e.g. for cron)::
ln -s /opt/rh/rh-php72/root/usr/bin/php /usr/bin/php
CentOS 7 Upgrade to PHP 7.2
---------------------------
To upgrade to PHP 7.2, use the Red Hat Software Collections (SCL) repository.
Follow these steps to install PHP 7.2 from SCL. First install the SCL repository::
yum install centos-release-scl
Then install PHP 7.2 and these modules::
yum install rh-php72 rh-php72-php rh-php72-php-gd rh-php72-php-mbstring rh-php72-php-intl
You must also install the updated database module for your database. This installs the new PHP 7.2 module for MySQL/MariaDB::
yum install rh-php72-php-mysqlnd
If you are using the Nextcloud LDAP app, you need this module::
yum install rh-php72-php-ldap
Disable loading the old PHP Apache modules by changing their names::
mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php54.off
mv /etc/httpd/conf.modules.d/10-php.conf /etc/httpd/conf.modules.d/10-php54.off
Symlink the PHP 7.2 Apache modules into place::
ln -s /opt/rh/httpd24/root/etc/httpd/conf.d/rh-php72-php.conf /etc/httpd/conf.d/
ln -s /opt/rh/httpd24/root/etc/httpd/conf.modules.d/15-rh-php72-php.conf /etc/httpd/conf.modules.d/
ln -s /opt/rh/httpd24/root/etc/httpd/modules/librh-php72-php7.so /etc/httpd/modules/
Then restart Apache::
service httpd restart
Verify with ``phpinfo`` that your Apache server is using PHP 7.2 and loading the
correct modules; see :ref:`label-phpinfo` to learn how to use ``phpinfo``.
If there is no requirement for php 5.4, you can remove it:
yum remove php*
rm /etc/httpd/conf.modules.d/10-php54.off /etc/httpd/conf.d/php54.off
After uninstalling, you can symlink the PHP 7.2 binary to use the short path (e.g. for cron)::
ln -s /opt/rh/rh-php72/root/usr/bin/php /usr/bin/php