Estoy tratando de actualizar de php 5 a 7 en un servidor que aloja un proyecto Symfony. En realidad, la actualización de php 5 a 7 funcionó;
php --version PHP 7.2.29 (cli) (built: Mar 17 2020 11:58:47) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.29, Copyright (c) 1999-2018, by Zend Technologies
pero ahora en mi servidor solo funcionaban las páginas "públicas", es decir, cuando voy a una página que necesita el ORM, devuelve un error interno 500. El archivo del servidor de registro me da esta salida:
[2020-03-20 14:38:49] request.CRITICAL: Uncaught PHP Exception Symfony\Component\Validator\Exception\MappingException: "Extension DOM is required." at /var/www/myProject/vendor/symfony/symfony/src/Symfony/Component/Validator/Mapping/Loader/XmlFileLoader.php line 179 {"exception":"[object] (Symfony\\Component\\Validator\\Exception\\MappingException(code: 0): Extension DOM is required. at /var/www/myProject/vendor/symfony/symfony/src/Symfony/Component/Validator/Mapping/Loader/XmlFileLoader.php:179, RuntimeException(code: 0): Extension DOM is required. at /var/www/myProject/vendor/symfony/symfony/src/Symfony/Component/Config/Util/XmlUtils.php:45)"} [] [2020-03-20 14:38:50] security.INFO: No expression found; abstaining from voting. [] [] [2020-03-20 14:38:50] security.INFO: No expression found; abstaining from voting. [] []
Así que busqué en Google el error y así lo hice:
sudo yum install php72-php-mbstring php72-php-xml php72-php-xmlrpc
Entonces :
php -d memory_limit=-1 composer.phar update --no-cache php -d memory_limit=-1 app/console cache:clear --env=prod sudo systemctl restart httpd.service
Y sigo teniendo este error...
EDITAR: La versión cli es PHP 7.2.29 que usa el archivo /etc/opt/remi/php72/php.ini y el servidor PHP (mostrado por phpinfo(); función) muestra la versión PHP 7.2.28 que usa /etc/php archivo .ini. Creo que tengo que investigar con alguna configuración de apache.
Debe verificar que la extensión esté realmente cargada. Tenga en cuenta que PHP CLI y PHP utilizados por su servidor web son dos bestias diferentes y pueden tener archivos de configuración diferentes. Cree una página .php
simple en su proyecto con
<?php phpinfo();
... navegue hasta él en su navegador y vea qué extensiones están realmente cargadas.
Siga las instrucciones de su distribución para activar las que faltan.
Así que en realidad la solución fue:
1 Vuelva a vincular la versión de mi paquete con la versión 'buena' de PHP utilizada por mi servidor (desinstale y vuelva a instalar php 7.2)
y 2 escriba sudo yum install php-sql
Eso es extraño, pero eso resolvió mi problema.