我已经在 AWS EC2 上使用 Amazon Linux 2 AMI 为 WordPress 托管设置了一个 LAMP 服务器。系统已经运行良好,但 WordPress 仪表板提示我更新 PHP 版本,因为我运行的是过时的 7.2.34。 WordPress推荐我更新到7.4。我按照本指南开始了这个过程 (https://greggborodaty.com/amazon-linux-2-upgrading-from-php-7-2-to-php-7-4/)
当我使用检查亚马逊可用的版本时
sudo amazon-linux-extras | grep php
唯一可用的较新版本是 8.0 和 8.1。在做了一些研究后,我认为 8.1 是最好的选择(它是一个稳定的版本)。
本来应该是 15 分钟的更新结果是 4 小时的崩溃,我以某种方式安装了 PHP 8.1,但 Apache 服务器仍在使用 7.2,我使用
php -v
检查并访问 test.php 页面通过浏览器。我确保执行所有必要的服务重新启动/重新启动,但我认为 Apache 的配置文件仍然指向 7.2 版本。我把它放下过夜,决定第二天继续。
今天早上 SSH-ing 到我的实例后,php 测试站点上的 PHP 版本是 8.1.15,但是
php -v
命令仍然显示 7.2.
WordPress 不再可访问说:“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展。” 我的实例上有 6 个可用更新。当我运行
sudo yum update
时,我得到以下输出:
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 3.7 kB 00:00:00
281 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package php-cli.x86_64 0:7.2.34-1.amzn2 will be updated
---> Package php-cli.x86_64 0:8.1.12-1.amzn2 will be an update
---> Package php-common.x86_64 0:7.2.34-1.amzn2 will be updated
--> Processing Dependency: php-common(x86-64) = 7.2.34-1.amzn2 for package: php-json-7.2.34-1.amzn2.x86_64
---> Package php-common.x86_64 0:8.1.12-1.amzn2 will be an update
---> Package php-fpm.x86_64 0:7.2.34-1.amzn2 will be updated
---> Package php-fpm.x86_64 0:8.1.12-1.amzn2 will be an update
---> Package php-gd.x86_64 0:7.2.34-1.amzn2 will be updated
---> Package php-gd.x86_64 0:8.1.12-1.amzn2 will be an update
---> Package php-mysqlnd.x86_64 0:7.2.34-1.amzn2 will be updated
---> Package php-mysqlnd.x86_64 0:8.1.12-1.amzn2 will be an update
---> Package php-pdo.x86_64 0:7.2.34-1.amzn2 will be updated
---> Package php-pdo.x86_64 0:8.1.12-1.amzn2 will be an update
--> Finished Dependency Resolution
Error: Package: php-json-7.2.34-1.amzn2.x86_64 (@amzn2extra-php7.2)
Requires: php-common(x86-64) = 7.2.34-1.amzn2
Removing: php-common-7.2.34-1.amzn2.x86_64 (@amzn2extra-php7.2)
php-common(x86-64) = 7.2.34-1.amzn2
Updated By: php-common-8.1.12-1.amzn2.x86_64 (amzn2extra-php8.1)
php-common(x86-64) = 8.1.12-1.amzn2
Available: php-common-5.4.16-43.amzn2.x86_64 (amzn2-core)
php-common(x86-64) = 5.4.16-43.amzn2
Available: php-common-5.4.16-43.amzn2.0.1.x86_64 (amzn2-core)
php-common(x86-64) = 5.4.16-43.amzn2.0.1
Available: php-common-5.4.16-43.amzn2.0.2.x86_64 (amzn2-core)
php-common(x86-64) = 5.4.16-43.amzn2.0.2
Available: php-common-5.4.16-43.amzn2.0.3.x86_64 (amzn2-core)
php-common(x86-64) = 5.4.16-43.amzn2.0.3
Available: php-common-5.4.16-43.amzn2.0.4.x86_64 (amzn2-core)
php-common(x86-64) = 5.4.16-43.amzn2.0.4
Available: php-common-5.4.16-45.amzn2.0.5.x86_64 (amzn2-core)
php-common(x86-64) = 5.4.16-45.amzn2.0.5
Available: php-common-5.4.16-45.amzn2.0.6.x86_64 (amzn2-core)
php-common(x86-64) = 5.4.16-45.amzn2.0.6
Available: php-common-5.4.16-46.amzn2.0.2.x86_64 (amzn2-core)
php-common(x86-64) = 5.4.16-46.amzn2.0.2
Available: php-common-8.1.11-1.amzn2.x86_64 (amzn2extra-php8.1)
php-common(x86-64) = 8.1.11-1.amzn2
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
我显然是个新手,可能会遗漏一些明显的东西。非常感谢任何帮助<3
我尝试了
--skip-broken
添加,它跳过了重要的更新并且没有解决问题。
我确保显示在 test.php 站点中的 php.ini 文件已按照本指南正确配置: https://wpbuffs.com/php-installation-missing-mysql-extension-required-by-wordpress/
尝试手动删除包。
sudo yum remove php-json-7.2.34-1.amzn2.x86_64