Icinga / icingaweb2

A lightweight and extensible web interface to keep an eye on your environment. Analyse problems and act on them.
https://icinga.com/get-started/
GNU General Public License v2.0
808 stars 282 forks source link

Support PHP 8.4 #5269

Open Al2Klimov opened 1 month ago

Al2Klimov commented 1 month ago

RC1 is already in Debian experimental.

Admittedly, I haven't tried it out, yet.

Al2Klimov commented 1 week ago

Tests

  1. Get Debian stable
  2. Upgrade to testing
  3. Upgrade to unstable
  4. Upgrade to experimental, but keep unstable repo
  5. apt install libapache2-mod-php8.4 *
  6. apt install icingaweb2
  7. Open IW2 in browser

*) Skipping this step shows the regular login page btw. due to PHP 8.2

First page load

Deprecated: React\Promise\Timer\timeout(): Implicitly marking parameter $loop as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/react/promise-timer/src/functions.php on line 138

Deprecated: React\Promise\Timer\sleep(): Implicitly marking parameter $loop as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/react/promise-timer/src/functions.php on line 225

Deprecated: React\Promise\Timer\resolve(): Implicitly marking parameter $loop as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/react/promise-timer/src/functions.php on line 283

Deprecated: React\Promise\Timer\reject(): Implicitly marking parameter $loop as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/react/promise-timer/src/functions.php on line 326

Deprecated: Clue\React\Block\sleep(): Implicitly marking parameter $loop as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/clue/block-react/src/functions.php on line 49

Deprecated: Clue\React\Block\await(): Implicitly marking parameter $loop as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/clue/block-react/src/functions.php on line 116

Deprecated: Clue\React\Block\awaitAny(): Implicitly marking parameter $loop as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/clue/block-react/src/functions.php on line 227

Deprecated: Clue\React\Block\awaitAll(): Implicitly marking parameter $loop as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/clue/block-react/src/functions.php on line 325

Deprecated: Cron\CronExpression::factory(): Implicitly marking parameter $fieldFactory as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/ipl/vendor/dragonmantank/cron-expression/src/Cron/CronExpression.php on line 151

Deprecated: Cron\CronExpression::__construct(): Implicitly marking parameter $fieldFactory as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/ipl/vendor/dragonmantank/cron-expression/src/Cron/CronExpression.php on line 182

Deprecated: Icinga\Application\Config::__construct(): Implicitly marking parameter $config as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/php/Icinga/Application/Config.php on line 73

Deprecated: Icinga\Web\Session::create(): Implicitly marking parameter $session as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/php/Icinga/Web/Session.php on line 29

Deprecated: Icinga\Web\Session\PhpSession::create(): Implicitly marking parameter $options as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/php/Icinga/Web/Session/PhpSession.php on line 46

Deprecated: Icinga\Web\Session\PhpSession::__construct(): Implicitly marking parameter $options as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/php/Icinga/Web/Session/PhpSession.php on line 59

Deprecated: Constant E_STRICT is deprecated in /usr/share/php/Icinga/Application/ApplicationBootstrap.php on line 582

Deprecated: ini_set(): session.sid_bits_per_character INI setting is deprecated in /usr/share/php/Icinga/Web/Session/PhpSession.php on line 87

Deprecated: Zend_Controller_Front::dispatch(): Implicitly marking parameter $request as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/shardj/zf1-future/library/Zend/Controller/Front.php on line 835

Deprecated: Zend_Controller_Front::dispatch(): Implicitly marking parameter $response as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/shardj/zf1-future/library/Zend/Controller/Front.php on line 835

Deprecated: Zend_Layout_Controller_Plugin_Layout::__construct(): Implicitly marking parameter $layout as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/shardj/zf1-future/library/Zend/Layout/Controller/Plugin/Layout.php on line 51

Deprecated: Zend_Layout_Controller_Action_Helper_Layout::__construct(): Implicitly marking parameter $layout as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/shardj/zf1-future/library/Zend/Layout/Controller/Action/Helper/Layout.php on line 59

Deprecated: Zend_Controller_Action_Helper_Abstract::setActionController(): Implicitly marking parameter $actionController as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/shardj/zf1-future/library/Zend/Controller/Action/Helper/Abstract.php on line 55

Deprecated: Zend_Controller_Action::run(): Implicitly marking parameter $request as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/shardj/zf1-future/library/Zend/Controller/Action.php on line 549

Deprecated: Zend_Controller_Action::run(): Implicitly marking parameter $response as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/shardj/zf1-future/library/Zend/Controller/Action.php on line 549

Deprecated: Zend_Controller_Action::_forward(): Implicitly marking parameter $params as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/shardj/zf1-future/library/Zend/Controller/Action.php on line 717

Deprecated: Zend_Controller_Action::forward(): Implicitly marking parameter $params as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/shardj/zf1-future/library/Zend/Controller/Action.php on line 748

Deprecated: Zend_Controller_Dispatcher_Abstract::setResponse(): Implicitly marking parameter $response as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/shardj/zf1-future/library/Zend/Controller/Dispatcher/Abstract.php on line 359

Deprecated: Zend_Controller_Dispatcher_Interface::setResponse(): Implicitly marking parameter $response as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/shardj/zf1-future/library/Zend/Controller/Dispatcher/Interface.php on line 132

Deprecated: Zend_Controller_Action_Helper_ViewRenderer::__construct(): Implicitly marking parameter $view as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/shardj/zf1-future/library/Zend/Controller/Action/Helper/ViewRenderer.php on line 182

Deprecated: Icinga\Application\Modules\Manager::detectInstalledModules(): Implicitly marking parameter $availableDirs as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/php/Icinga/Application/Modules/Manager.php on line 648

Deprecated: Zend_Controller_Router_Route::__construct(): Implicitly marking parameter $translator as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/shardj/zf1-future/library/Zend/Controller/Router/Route.php on line 173

Deprecated: Zend_Controller_Router_Route::setDefaultTranslator(): Implicitly marking parameter $translator as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/shardj/zf1-future/library/Zend/Controller/Router/Route.php on line 491

Deprecated: Zend_Paginator::factory(): Implicitly marking parameter $prefixPaths as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/shardj/zf1-future/library/Zend/Paginator.php on line 270

Deprecated: Zend_Paginator::setView(): Implicitly marking parameter $view as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/shardj/zf1-future/library/Zend/Paginator.php on line 936

Deprecated: Zend_Paginator::render(): Implicitly marking parameter $view as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/shardj/zf1-future/library/Zend/Paginator.php on line 993

Deprecated: Zend_Xml_Security::scan(): Implicitly marking parameter $dom as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/shardj/zf1-future/library/Zend/Xml/Security.php on line 71

Deprecated: Zend_Xml_Security::scanFile(): Implicitly marking parameter $dom as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/shardj/zf1-future/library/Zend/Xml/Security.php on line 148

Deprecated: Zend_View_Helper_PaginationControl::paginationControl(): Implicitly marking parameter $paginator as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/vendor/vendor/shardj/zf1-future/library/Zend/View/Helper/PaginationControl.php on line 88

Deprecated: Icinga\Authentication\User\UserBackend::create(): Implicitly marking parameter $backendConfig as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/php/Icinga/Authentication/User/UserBackend.php on line 169

Deprecated: Icinga\Authentication\AuthChain::__construct(): Implicitly marking parameter $config as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/php/Icinga/Authentication/AuthChain.php on line 90

Deprecated: ipl\Stdlib\Str::trimSplit(): Implicitly marking parameter $limit as nullable is deprecated, the explicit nullable type must be used instead in /usr/share/icinga-php/ipl/vendor/ipl/stdlib/src/Str.php on line 79

Fatal error: Uncaught Error: Class "Locale" not found in /usr/share/icinga-php/ipl/vendor/ipl/i18n/src/Locale.php:125 Stack trace: #0 /usr/share/icinga-php/ipl/vendor/ipl/i18n/src/Locale.php(90): ipl\I18n\Locale->parseLocale() #1 /usr/share/php/Icinga/Application/Web.php(504): ipl\I18n\Locale->getPreferred() #2 /usr/share/php/Icinga/Application/ApplicationBootstrap.php(696): Icinga\Application\Web->detectLocale() #3 /usr/share/php/Icinga/Application/Web.php(106): Icinga\Application\ApplicationBootstrap->setupInternationalization() #4 /usr/share/php/Icinga/Application/ApplicationBootstrap.php(388): Icinga\Application\Web->bootstrap() #5 /usr/share/php/Icinga/Application/webrouter.php(105): Icinga\Application\ApplicationBootstrap::start() #6 /usr/share/icingaweb2/public/index.php(4): require_once('...') #7 {main} thrown in /usr/share/icinga-php/ipl/vendor/ipl/i18n/src/Locale.php on line 125

Second page load

Deprecated: Constant E_STRICT is deprecated in /usr/share/php/Icinga/Application/ApplicationBootstrap.php on line 582

Deprecated: ini_set(): session.sid_bits_per_character INI setting is deprecated in /usr/share/php/Icinga/Web/Session/PhpSession.php on line 87

Fatal error: Uncaught Error: Class "Locale" not found in /usr/share/icinga-php/ipl/vendor/ipl/i18n/src/Locale.php:125 Stack trace: #0 /usr/share/icinga-php/ipl/vendor/ipl/i18n/src/Locale.php(90): ipl\I18n\Locale->parseLocale() #1 /usr/share/php/Icinga/Application/Web.php(504): ipl\I18n\Locale->getPreferred() #2 /usr/share/php/Icinga/Application/ApplicationBootstrap.php(696): Icinga\Application\Web->detectLocale() #3 /usr/share/php/Icinga/Application/Web.php(106): Icinga\Application\ApplicationBootstrap->setupInternationalization() #4 /usr/share/php/Icinga/Application/ApplicationBootstrap.php(388): Icinga\Application\Web->bootstrap() #5 /usr/share/php/Icinga/Application/webrouter.php(105): Icinga\Application\ApplicationBootstrap::start() #6 /usr/share/icingaweb2/public/index.php(4): require_once('...') #7 {main} thrown in /usr/share/icinga-php/ipl/vendor/ipl/i18n/src/Locale.php on line 125

corrosive4354 commented 1 week ago

Although PHP 8.4 is still in beta, it has already begun to reveal some challenges related to compatibility with existing code. Especially for projects using older frameworks such as Icinga and Zend Framework,

If you need to use different versions of PHP, you can use the tool Servbay, which supports PHP8.4beta without worrying about environmental pollution.