Project

General

Profile

Actions

Feature #13446

closed

Upgrade PHP from 7.4 to 8.1

Added by Reid Linnemann over 1 year ago. Updated about 1 year ago.

Status:
Closed
Priority:
Normal
Category:
PHP Interpreter
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
(Total: 0.00 h)
Plus Target Version:
23.01
Release Notes:
Default

Description

php 7.4 is EOL Nov. 28, 2022. We are migrating to php 8.1 as a result. Several changes will need to be made to accomplish this, including but not limited to:

  • Changing the php version for the package builds
  • System update changes to handle the transition from php74 to php81
  • Code changes to accommodate changing semantics in expression evaluation and function behavior
    • Arrays no longer can be indexed with curly brace syntax
    • Default flags for htmlspecialchars changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401

Subtasks 45 (0 open45 closed)

Bug #13317: ``array_filter`` PHP Errors in ``interfaces.inc``ResolvedReid Linnemann

Actions
Regression #13512: PHP 8.1 Syntax Error in DNS Resolver Configuration ScreenResolvedJim Pingle

Actions
pfSense Packages - Bug #13513: Cannot install SquidResolvedReid Linnemann

Actions
Regression #13514: PHP 8.1 - Syntax error when disabling a gateway under SYSTEM > GATEWAYS > EDITResolvedChristian McDonald

Actions
pfSense Packages - Bug #13515: Snort with PHP 8.1 - TypeError when saving edits to an interfaceResolved

Actions
pfSense Packages - Bug #13516: Snort with PHP 8.1 - TypeError when attempting to view a Suppression List on a Snort interfaceResolved

Actions
pfSense Packages - Bug #13531: Suricata GUI broken with PHP 8.1Resolved

Actions
Regression #13535: Pfsense 2.7 (14.0-CURRENT) - Freeradius, Pfblocker not working or showing up in menuResolvedChristian McDonald

Actions
Regression #13553: PHP error when creating a new limiterResolvedChristian McDonald

Actions
Regression #13559: GUI not starting after update to 2.7ResolvedChristian McDonald

Actions
Regression #13563: PHP Error when attempting to save configuration after disabling a gatewayResolvedChristian McDonald

Actions
pfSense Packages - Bug #13564: PHP error after creating a Route MapResolvedReid Linnemann

Actions
pfSense Packages - Bug #13566: Non-devel pfBlocker Package Broken in 2.7 CE with PHP 8.1ResolvedChristian McDonald

Actions
pfSense Packages - Regression #13570: openvpn-client-export php error in 2.7ResolvedJim Pingle

Actions
Regression #13581: Empty Dynamic DNS entry causes PHP errors in various contextsResolvedJim Pingle

Actions
Regression #13583: PHP error when defining an IP address and gateway manually from the Console menu using option 2) Set Interface(s) IP addressResolvedChristian McDonald

Actions
pfSense Packages - Bug #13589: PHP Errors during cellular package installation on CE 2.7ResolvedJim Pingle

Actions
pfSense Packages - Regression #13597: haproxy-devel PHP8 regression when saving a backend entryResolvedMarcos M

Actions
Regression #13599: Error when disabling sshdResolvedChristian McDonald

Actions
Bug #13607: Malformed format strings in French translation causing PHP errors.ResolvedChristian McDonald

Actions
pfSense Packages - Bug #13609: Editing ACLs in BIND Package Produces PHP error in CE 2.7.XResolvedChristian McDonald

Actions
Regression #13614: Cannot Edit Firewall Rules - 2.7.0-DEVELOPMENT (amd64) built on Mon Oct 31 06:05:27 UTC 2022ResolvedReid Linnemann

Actions
pfSense Packages - Bug #13619: PHP Error in pfblockerNG-devel widgetResolvedReid Linnemann

Actions
Regression #13627: PHP: Easyrule from the firewall logResolvedJim Pingle

Actions
pfSense Packages - Regression #13628: FreeRADIUS Users cleared out each time a user is add, removed, or modifiedResolvedMarcos M

Actions
pfSense Packages - Bug #13640: PHP Error: util.inc:1932ResolvedReid Linnemann

Actions
pfSense Packages - Bug #13642: PHP Error: frr_zebra.inc:159ResolvedReid Linnemann

Actions
Bug #13645: PHP errors regarding sshResolvedReid Linnemann

Actions
Bug #13659: replace direct config accesses for system/webgui paths in system_advanced_admin.incResolvedReid Linnemann

Actions
Regression #13660: PHP8.1 error after applying floating rules changesResolvedReid Linnemann

Actions
Regression #13661: Input validation issues on firewall_shaper.phpResolvedReid Linnemann

Actions
Regression #13663: WIFI interface configuration creates invalid xmlResolvedJim Pingle

Actions
Bug #13676: PHP errors on services_dhcpv6_relay.phpResolvedReid Linnemann

Actions
pfSense Packages - Regression #13697: pfBlockerNG alerts error on 2.7.0 devel and PHP 8.1ResolvedReid Linnemann

Actions
Regression #13705: PHP8.1 Captive Portal TypeErrorResolvedChristian McDonald

Actions
pfSense Packages - Regression #13714: PHP8.1 error when adding a new interface.Resolved

Actions
Regression #13719: PHP8.1 error when saving DHCP Server settings.ResolvedMarcos M

Actions
pfSense Packages - Bug #13752: Avahi broken on PHP 8.1ResolvedJim Pingle

Actions
pfSense Packages - Bug #13774: PIMD Interfaces drop-down empty on dev snapshots w/PHP 8.1ResolvedJim Pingle

Actions
pfSense Packages - Bug #13775: Status Traffic Totals PHP error on dev snapshots w/PHP 8.1ResolvedJim Pingle

Actions
Regression #13781: DNS Forwarder: PHP error in ``services_dnsmasq_edit``ResolvedJim Pingle

Actions
pfSense Plus - Bug #13799: Unbound python module persistently shows enabled in resolver settingsResolvedChristian McDonald

Actions
Regression #13876: PHP error on diag_backup.php with no packages installedResolvedJim Pingle

Actions
Regression #13890: Captive Portal Voucher Rolls Status "Fatal error"ResolvedJim Pingle

Actions
pfSense Packages - Regression #13892: PHP error from ``status_monitoring.php`` with empty OpenVPN serversResolvedJim Pingle

Actions
Actions #1

Updated by Reid Linnemann over 1 year ago

Commits already made that do not reference this issue:

c064bf3244 * Replace another config access in authgui.inc
c4117e8348 * Make array/config_set_path() create intermediary paths
84ba2e6e39 * Restore scope to address sent to Net_IPv6::compress now that it is fixed
2cd097e540 * Replace direct config accessin openvpn.inc
e0012fc384 * Fix missing format specifier in input field help
d0ca7530fe * Replace direct config accesses in status_graph.php, status_ntpd.php
466d0e9639 * Correct format specifier in input help
910a1f7462 * Fix warnings in firewall_virtual_ip.inc
66ab66c34d * Replace direct config array access in diag_packet_capture.php
746f30e3ce * Add config and config lib requires to guionfig.inc
1073f4c64a * Remove direct config array accesses from firewall_virtual_ip.inc
eec3ca7f7d * Add config/array_del_path helper function and associated test
3bea27fd5a * Rename run_dhcp6client_process param to debugOption
18ad79330e * Correct a stray single quote in a config path
27cb0c5a43 * In get_ll_scope(), remove intermediate $scope variable
63de060fcc * Remove '/enable' from a path given to config_path_enabled()
1ae906ba20 * Clean up declared and unused variables in config.console.inc
123efede33 * Fix some missing '/'es in config paths
2ca58ffd8c * Replace several direct config accesses in filter.inc
dc337505fc * Fix unused and undefined variable warnings in util.inc
24b3f37e51 * Fix unexpected type string for exec output
5daccf2d5e * Fix undefined and unused variable warnings in interfaces.inc
207482a5fd * Replace direct config array accesses in interfaces.inc
345d9f0e95 * Replace some direct config array accesses in wizard.php
a949b7ae0d * Correct deprecated implode() syntax
2f971e2294 * Fix warnings in guiconfig.inc, unexpanded string in get_config_path call
a329c99b97 * Replace config array accesses in guiconfig.inc
2d5c75fa9e * Change some config array accesses in interfaces.php
4964770922 * Replace some config array access in services_dnsmasq.inc
5922dddf78 * Replace config array accesses in create_interface_list()
fab98cb6d6 * Fix multilevel array access outside config in util.inc
077588c354 * Make list assign from explode output safer
5833da659d * Fix some undefined variable warnings
988a687c70 * Fix several unsafe multilevel config array accesses in setup wizard
b4d8cf58d7 * Correct single quoted string with parameter expansion
c6188970ed * Silence unused/undef'd variable warnings in filter.inc
4c16247e47 * Replace multilevel config array access around the web gui port
f5b9146243 * Replace multilevel config array accesses regarding openvpn
a25e9691a1 * Replace multilevel array accesses regarding v4 and v6 gateways
9fb6cc1841 * Replace more problematic multilevel config array access
51e30f1100 * Fix text_to_compressed_ipv6() to omit %ifname from v6 addresses
41025e0abf * Use config_path_enabled() and config_get_path() for troublesome paths
0321579175 * Add config_path_enabled() function and associated tests
10ad25403b * Replace more direct config array access with config_get_path()
1376d10967 * Change numerous direct references into config to config_get_path()
0595258266 * Correct dhcpv6 enable check to use config_get_path()
fb2be38ac6 * Use config_get_path for openvpn interfaces and ifgroups
09d0ff02b2 * Use config_get_path for looking up static ARP entries
29bed7608a * Use config_get_path() for friendly ifnames and vlan configs
926479e873 * Make php stdout and stderr less verbose for nonfatal messages
6d0aa23df1 * Add missing require of interfaces.inc to util.inc
de3f6463ca * Correct required param after optional param syntax errors
ddf7b2dbc4 * Silence warnings about missing global key 'booting'
92abdaf028 * Add config_get_path and config_set_path for config element access
47fb5604e9 * Inhibit startup error printing to stdout in read_global_var
dfd11d44f1 * Add php81 extensions dir path
22c89db32a * Use array_values() to expand $cert_curve_compatible
b880c1a349 * Select default php version 8.1
Actions #2

Updated by Reid Linnemann over 1 year ago

  • Description updated (diff)
Actions #3

Updated by Reid Linnemann over 1 year ago

  • Description updated (diff)
Actions #4

Updated by Christian McDonald over 1 year ago

  • Status changed from In Progress to Feedback
  • % Done changed from 0 to 100
Actions #5

Updated by Jim Pingle over 1 year ago

  • Tracker changed from Todo to Feature
  • Subject changed from Upgrade to php from 7.4 to 8.1 to Upgrade PHP from 7.4 to 8.1
  • Target version set to 2.7.0
  • Private changed from Yes to No
  • Plus Target Version set to 23.01

Fixing this up so we can use it as a parent issue for all the various PHP-related issues being tracked

Actions #7

Updated by Jim Pingle about 1 year ago

  • Status changed from Feedback to Closed

All done for 23.01. New issues can be handled separately.

Actions

Also available in: Atom PDF