diff --git a/doc/02-Installation.md b/doc/02-Installation.md index 7231c5c2e..94d5f004a 100644 --- a/doc/02-Installation.md +++ b/doc/02-Installation.md @@ -14,7 +14,7 @@ chapter. * [Icinga 2](https://www.icinga.com/products/icinga-2/) with the IDO database backend (MySQL or PostgreSQL) * A web server, e.g. Apache or Nginx -* PHP >= 5.3.0 with the following modules installed: cURL, gettext, intl, mbstring, OpenSSL and xml +* PHP >= 5.3.2 with the following modules installed: cURL, gettext, intl, mbstring, OpenSSL and xml * Default time zone configured for PHP in the php.ini file * LDAP PHP library when using Active Directory or LDAP for authentication * MySQL or PostgreSQL PHP libraries @@ -75,12 +75,6 @@ yum install https://packages.icinga.com/epel/icinga-rpm-release-7-latest.noarch. dnf install https://packages.icinga.com/fedora/icinga-rpm-release-26-latest.noarch.rpm ``` -**SLES 11**: -``` -zypper ar http://packages.icinga.com/SUSE/ICINGA-release-11.repo -zypper ref -``` - **SLES 12**: ``` zypper ar http://packages.icinga.com/SUSE/ICINGA-release.repo @@ -104,17 +98,46 @@ apk update #### RHEL/CentOS Notes -The packages for RHEL/CentOS depend on other packages which are distributed -as part of the [EPEL repository](https://fedoraproject.org/wiki/EPEL). +Our packages are build on and with packages from the **[EPEL repository](https://fedoraproject.org/wiki/EPEL)**. +Please enable it prior installing the Icinga packages. CentOS 7/6: ``` yum install epel-release ``` -If you are using RHEL you need enable the `optional` repository and then install -the [EPEL rpm package](https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F). +RedHat 7: +``` +yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm +``` +If you are using RHEL you need enable the **optional repository** in order to use some +contents of EPEL. + +RedHat: +``` +subscription-manager repos --enable rhel-7-server-optional-rpms +# or +subscription-manager repos --enable rhel-6-server-optional-rpms +``` + +Since version 2.5.0 we also require a **newer PHP version** than what is available +in RedHat itself. You need to enable the SCL repository, so that the dependencies +can pull in the newer PHP. + +CentOS: +``` +yum install centos-release-scl +``` + +RedHat: +``` +subscription-manager repos --enable rhel-server-rhscl-7-rpms +# or +subscription-manager repos --enable rhel-server-rhscl-6-rpms +``` + +Make sure to also read the chapter on [Setting up FPM](02-Installation.md#setting-up-fpm). #### Alpine Linux Notes @@ -152,6 +175,145 @@ apk add icingaweb2 ``` For Alpine Linux please read the [package repositories notes](02-Installation.md#package-repositories-alpine-notes). +### Setting up FPM + +If you are on CentOS / RedHat 6 or 7, or just want to run Icinga Web 2 with PHP-FPM instead +of the Apache module. + +| Operating System | FPM configuration path | +|---------------------|-----------------------------------| +| RedHat 7 (with SCL) | `/etc/opt/rh/rh-php71/php-fpm.d/` | +| RedHat 6 (with SCL) | `/etc/opt/rh/rh-php70/php-fpm.d/` | +| Debian/Ubuntu | `/etc/php*/*/fpm/pool.d/` | + +The default pool `www` should be sufficient for Icinga Web 2. + +On RedHat you need to start and enable the FPM service. + +RedHat / CentOS 7 (SCL package): +``` +systemctl start rh-php71-php-fpm.service +systemctl enable rh-php71-php-fpm.service +``` + +RedHat / CentOS 6 (SCL package): +``` +service rh-php70-php-fpm start +chkconfig rh-php70-php-fpm on +``` + +All module packages for PHP have this SCL prefix, so you can install a +database module like this: +``` +yum install rh-php71-php-mysqlnd +# or +yum install rh-php71-php-pgsql + +# on el6 +yum install rh-php70-php-mysqlnd +# or +yum install rh-php70-php-pgsql +``` + +On RedHat / CentOS 6 you also need to install `mod_proxy_fcgi` for httpd: +``` +yum install mod_proxy_fcgi +``` + +Depending on your web server installation, we might have installed or +updated the config file for icingaweb2 with defaults for FPM. + +Check `/etc/httpd/conf.d/icingaweb2.conf` or `/etc/apache2/conf.d/icingaweb2.conf`. +And `*.rpm*` `*.dpkg*` files there with updates. + +Make sure that the `FilesMatch` part is included for Apache. + +Also see the example from icingacli: +``` +icingacli setup config webserver apache +``` + +### Upgrading to FPM + +Valid for: + +* RedHat / CentOS 6 +* RedHat / CentOS 7 + +Other distributions are also possible if preferred, but not included here. + +Some upgrading work needs to be done manually, while we install PHP FPM +as dependency, you need to start the service, and configure some things. + +Please read [Setting up FPM](02-Installation.md#setting-up-fpm) first. + +**php.ini settings** you have tuned in the past needs to be migrated to a SCL installation +of PHP. + +Check these directories: + +* `/etc/php.ini` +* `/etc/php.d/*.ini` + +Most important for icingaweb2 is `date.timezone`. + +PHP settings should be stored to: + +* RedHat / CentOS 7: `/etc/opt/rh/rh-php71/php.d/` +* RedHat / CentOS 6: `/etc/opt/rh/rh-php70/php.d/` + +Make sure to **install the required database modules** + +RedHat / CentOS 7: +``` +yum install rh-php71-php-mysqlnd +# or +yum install rh-php71-php-pgsql +``` + +RedHat / CentOS 6: +``` +yum install rh-php70-php-mysqlnd +# or +yum install rh-php70-php-pgsql +``` + +After any PHP related change you now need to **restart FPM**: + +RedHat / CentOS 7: +``` +systemctl restart rh-php71-php-fpm.service +``` + +RedHat / CentOS 6: +``` +service rh-php70-php-fpm restart +``` + +If you don't need mod_php for other apps on the server, you should disable it in Apache. + +Disable PHP in Apache httpd: +``` +cd /etc/httpd +cp conf.d/php.conf{,.bak} +: >conf.d/php.conf + +# ONLY on el7! +cp conf.modules.d/10-php.conf{,.bak} +: >conf.modules.d/10-php.conf + +systemctl restart httpd.service +# or on el6 +service httpd restart +``` + +You can also uninstall the mod_php package, or all non-SCL PHP related packages. +``` +yum remove php +# or +yum remove php-common +``` + ### Preparing Web Setup You can set up Icinga Web 2 quickly and easily with the Icinga Web 2 setup wizard which is available the first time diff --git a/doc/80-Upgrading.md b/doc/80-Upgrading.md index 4838f6743..f9e2c9836 100644 --- a/doc/80-Upgrading.md +++ b/doc/80-Upgrading.md @@ -1,5 +1,35 @@ # Upgrading Icinga Web 2 +## Upgrading to Icinga Web 2 2.5.x + +**Attention:** Icinga Web 2 now requires **at least PHP 5.6** + +**Changes in packaging and dependencies** + +Valid for distributions: + +* RHEL / CentOS 6 + 7 + * Upgrading to PHP 7.0 / 7.1 via RedHat SCL (new dependency) + * See [Upgrading to FPM](02-Installation.md#upgrading-to-fpm) for manual steps that + are required +* SUSE SLE 12 + * Upgrading PHP to >= 5.6.0 via the alternative packages. + You might have to confirm the replacement of PHP < 5.6 - but that + should work with any other PHP app as well. + * Make sure to enable the new Apache module `a2enmod php7` and restart `apache2` + +**Discontinuing package updates** + +For the following distributions Icinga Web 2 won't be updated past 2.4.x anymore. + +* Debian 7 wheezy +* Ubuntu 14.04 LTS (trusty) +* SUSE SLE 11 (all service packs) + +Please think about replacing your central Icinga system to a newer distribution release. + +Also see [packages.icinga.com] for the currently supported distributions. + ## Upgrading to Icinga Web 2 2.4.x * Icinga Web 2 version 2.4.x does not introduce any backward incompatible change. @@ -82,3 +112,5 @@ If you delegated authentication to your web server using the `autologin` backend authentication backend to be able to log in again. The new name better reflects what's going on. A similar change affects environments that opted for not storing preferences, your new backend is `none`. + +[packages.icinga.com]: https://packages.icinga.com