mahbub rahman
Tengo una aplicación de WordPress instalada en la instancia Amazon Linux 2 EC2. La versión actual de PHP instalada es 7.4. Quiero actualizar esta versión a 8.0
Ejecuté los siguientes comandos en el terminal EC2 para actualizar PHP:
$ amazon-linux-extras | grep php
42 php7.4=latest enabled [ =stable ]
_ php8.0 available [ =stable ]
$ amazon-linux-extras disable php7.4
....
....
42 php7.4 available [ =stable ]
.....
50 selinux-ng available [ =stable ]
51 php8.0 available [ =stable ]
.....
61 dnsmasq2.85 available [ =stable ]
* Extra topic has reached end of support.
$ amazon-linux-extras | grep php
42 php7.4 available [ =stable ]
51 php8.0 available [ =stable ]
$ amazon-linux-extras enable php8.0
....
42 _ php7.4 available [ =stable ]
....
51 php8.0=latest enabled [ =stable ]
.....
Now you can install:
# yum clean metadata
# yum install php-cli php-pdo php-fpm php-mysqlnd
$ yum clean metadata
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Cleaning repos: amzn2-core amzn2extra-docker amzn2extra-nginx1.12 amzn2extra-php8.0 mysql-connectors-community mysql-tools-community
: mysql80-community
21 metadata files removed
12 sqlite files removed
0 metadata files removed
$ yum info php
51 packages excluded due to repository priority protections
Available Packages
Name : php
Arch : x86_64
Version : 8.0.16
Release : 1.amzn2
Size : 3.3 M
Repo : amzn2extra-php8.0/2/x86_64
$ php -v
**PHP 7.4.28** (cli) (built: Feb 28 2022 23:38:08) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.28, Copyright (c), by Zend Technologies
$ yum install php-cli php-pdo php-fpm php-mysqlnd
--> Finished Dependency Resolution
Error: Package: php-json-7.4.28-1.amzn2.x86_64 (@amzn2extra-php7.4)
Requires: php-common(x86-64) = 7.4.28-1.amzn2
Removing: php-common-7.4.28-1.amzn2.x86_64 (@amzn2extra-php7.4)
php-common(x86-64) = 7.4.28-1.amzn2
Updated By: php-common-8.0.16-1.amzn2.x86_64 (amzn2extra-php8.0)
php-common(x86-64) = 8.0.16-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.0.0-2.amzn2.x86_64 (amzn2extra-php8.0)
php-common(x86-64) = 8.0.0-2.amzn2
Available: php-common-8.0.2-1.amzn2.x86_64 (amzn2extra-php8.0)
php-common(x86-64) = 8.0.2-1.amzn2
Available: php-common-8.0.6-1.amzn2.x86_64 (amzn2extra-php8.0)
php-common(x86-64) = 8.0.6-1.amzn2
Available: php-common-8.0.8-1.amzn2.x86_64 (amzn2extra-php8.0)
php-common(x86-64) = 8.0.8-1.amzn2
Available: php-common-8.0.13-1.amzn2.x86_64 (amzn2extra-php8.0)
php-common(x86-64) = 8.0.13-1.amzn2
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
A partir de la salida, se ve que la instalación anterior falló. Probé el comando anterior con –skip-roto también. Pero la salida es la misma.
Por el resultado, pensé que el problema está en el paquete php-json. Entonces traté de eliminar el paquete php-json:
$ yum -y remove php-json-7.4.28-1.amzn2.x86_64
Removed:
php-json.x86_64 0:7.4.28-1.amzn2
Dependency Removed:
php-cli.x86_64 0:7.4.28-1.amzn2 php-common.x86_64 0:7.4.28-1.amzn2 php-fpm.x86_64 0:7.4.28-1.amzn2
php-gd.x86_64 0:7.4.28-1.amzn2 php-mbstring.x86_64 0:7.4.28-1.amzn2 php-mysqlnd.x86_64 0:7.4.28-1.amzn2
php-opcache.x86_64 0:7.4.28-1.amzn2 php-pdo.x86_64 0:7.4.28-1.amzn2 php-xml.x86_64 0:7.4.28-1.amzn2
Complete!
Nuevamente traté de instalar los mismos paquetes como a continuación:
$ yum install php-cli php-pdo php-fpm php-mysqlnd
.....
Installed:
php.x86_64 0:8.0.16-1.amzn2
Dependency Installed:
apr.x86_64 0:1.7.0-9.amzn2 apr-util.x86_64 0:1.6.1-5.amzn2.0.2 ....
.... .... .....
$ systemctl restart nginx
$ systemctl restart php-fpm.service
Ahora traté de acceder al sitio y el navegador muestra ERROR HTTP 502. ¿Dónde he cometido un error?
Como referencia, utilicé los siguientes enlaces para realizar la actualización:
-
Tuve el mismo problema y eliminé
php-json
resolvió el problema. Solo quería señalar la razón por la que se muestra el mensaje de AWS porque a partir de PHP8, la extensión JSON no existe y ahora está siempre incluido en el núcleo de PHP.– Adhorger
12 de agosto de 2022 a las 19:54
¿Qué dicen sus registros de fpm? ¿Está fallando el inicio de php-fpm?
– jordanm
18 mayo 2022 a las 16:17
Después de instalar php-cli php-pdo php-fpm php-mysqlnd Al reiniciar php-fpm, no se quejó
– Mahbub Rahman
18 mayo 2022 a las 23:46