diff -r 48c4eec2b7e6 -r 8c2e4d02f4ef wp/wp-admin/install.php
--- a/wp/wp-admin/install.php Fri Sep 05 18:40:08 2025 +0200
+++ b/wp/wp-admin/install.php Fri Sep 05 18:52:52 2025 +0200
@@ -67,7 +67,7 @@
>
-
+
@@ -232,12 +232,13 @@
}
/**
- * @global string $wp_version The WordPress version string.
- * @global string $required_php_version The required PHP version string.
- * @global string $required_mysql_version The required MySQL version string.
- * @global wpdb $wpdb WordPress database abstraction object.
+ * @global string $wp_version The WordPress version string.
+ * @global string $required_php_version The required PHP version string.
+ * @global string[] $required_php_extensions The names of required PHP extensions.
+ * @global string $required_mysql_version The required MySQL version string.
+ * @global wpdb $wpdb WordPress database abstraction object.
*/
-global $wp_version, $required_php_version, $required_mysql_version, $wpdb;
+global $wp_version, $required_php_version, $required_php_extensions, $required_mysql_version, $wpdb;
$php_version = PHP_VERSION;
$mysql_version = $wpdb->db_version();
@@ -298,6 +299,29 @@
die( '' . __( 'Requirements Not Met' ) . '
' . $compat . '
' );
}
+if ( isset( $required_php_extensions ) && is_array( $required_php_extensions ) ) {
+ $missing_extensions = array();
+
+ foreach ( $required_php_extensions as $extension ) {
+ if ( extension_loaded( $extension ) ) {
+ continue;
+ }
+
+ $missing_extensions[] = sprintf(
+ /* translators: 1: URL to WordPress release notes, 2: WordPress version number, 3: The PHP extension name needed. */
+ __( 'You cannot install because WordPress %2$s requires the %3$s PHP extension.' ),
+ $version_url,
+ $wp_version,
+ $extension
+ );
+ }
+
+ if ( count( $missing_extensions ) > 0 ) {
+ display_header();
+ die( '' . __( 'Requirements Not Met' ) . '
' . implode( '
', $missing_extensions ) . '