Symfony 2.8 проект с использованием PHP7: требуется расширение DOM - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь обновить php 5 до 7 на сервере, на котором размещен проект symfony. На самом деле обновление с php 5 до 7 работало;

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

, но теперь на моем сервере работали только "publi c" страницы, я имею в виду, когда я go страница, которая нуждается в ORM это возвращает внутреннюю ошибку 500 Файл журнала сервера дает мне такой вывод:

[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. [] []

Итак, я погуглил ошибку, и поэтому я сделал это:

sudo yum install php72-php-mbstring php72-php-xml php72-php-xmlrpc

Тогда:

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

И Я все еще получаю эту ошибку ...

РЕДАКТИРОВАТЬ: Cli-версия PHP 7.2.29, которая использует файл /etc/opt/remi/php72/php.ini и сервер PHP ( показывается функцией phpinfo (); function) show PHP версия 7.2.28, которая использует файл /etc/php.ini. Я думаю, что я должен исследовать с некоторыми apache конфигурации.

Ответы [ 2 ]

1 голос
/ 23 марта 2020

Вы должны проверить, что расширение действительно загружено. Имейте в виду, что PHP CLI и PHP, используемые вашим веб-сервером, - это два разных зверя, и они вполне могут иметь разные файлы конфигурации. Создайте простую страницу .php в своем проекте с помощью

<?php phpinfo();

... перейдите к ней в своем браузере и посмотрите, какие расширения действительно загружены.

Следуйте инструкциям из вашего дистрибутива, чтобы активировать недостающие.

0 голосов
/ 30 марта 2020

Таким образом, на самом деле решение было:

1 повторно связать мою версию пакета с «хорошей» версией PHP, используемой моим сервером (удалить и переустановить php 7.2)

и 2 типа sudo yum install php-sql

Это странно, но это решило мою проблему.

...