Skip to content

[Issue] Fix PHP 8.5: KEY_MYSQL_SSL_VERIFY hardcoded as 1014 collides with ren… #40855

@m2-assistant

Description

@m2-assistant

This issue is automatically created based on existing pull request: #40849: Fix PHP 8.5: KEY_MYSQL_SSL_VERIFY hardcoded as 1014 collides with ren…


…amed Pdo\Mysql constant

PHP 8.5 removed ATTR_SERVER_PUBLIC_KEY, shifting all Pdo\Mysql constant values down by one. KEY_MYSQL_SSL_VERIFY was hardcoded as 1014 (a legacy workaround for PHP 7.1.3 support) which now maps to ATTR_LOCAL_INFILE_DIRECTORY instead of ATTR_SSL_VERIFY_SERVER_CERT, causing every Magento 2.4.9 installation on PHP 8.5 to crash on boot with an open_basedir error.

Apply the same PHP_VERSION_ID >= 80400 pattern already used for KEY_MYSQL_SSL_KEY, KEY_MYSQL_SSL_CERT and KEY_MYSQL_SSL_CA.

Description (*)

PHP 8.5 removed Pdo\Mysql::ATTR_SERVER_PUBLIC_KEY, shifting all constant integer values down by one. KEY_MYSQL_SSL_VERIFY was hardcoded as 1014 (legacy workaround for PHP 7.1.3). On PHP 8.5, 1014 is now ATTR_LOCAL_INFILE_DIRECTORY which expects a path — passing false crashes every installation on boot with an open_basedir PDOException.

Applies the same PHP_VERSION_ID >= 80400 pattern already used for KEY_MYSQL_SSL_KEY, KEY_MYSQL_SSL_CERT and KEY_MYSQL_SSL_CA.

Related Pull Requests

Manual testing scenarios (*)

  1. Fresh install Magento 2.4.9 on PHP 8.5 with open_basedir — crashes without fix
  2. Apply fix, reinstall — boots successfully
  3. Check env.php: driver_options contains 1013 => false (correct) instead of 1014 => false

Questions or comments

Contribution checklist (*)

  • Pull request has a meaningful description of its purpose
  • All commits are accompanied by meaningful commit messages
  • All new or changed code is covered with unit/integration tests (if applicable)
  • README.md files for modified modules are updated and included in the pull request if any README.md predefined sections require an update
  • All automated tests passed successfully (all builds are green)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Issue: ready for confirmationReported on 2.4.xIndicates original Magento version for the Issue report.Triage: Dev.ExperienceIssue related to Developer Experience and needs help with Triage to Confirm or Reject it

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Ready for Confirmation

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions