Symfony получает список необходимых модулей PHP - PullRequest
0 голосов
/ 07 декабря 2018

При развертывании приложения Symfony на другом сервере мне часто приходится ждать composer install или cache:clear, чтобы узнать, установлен ли необходимый модуль PHP .

Например

 // Clearing the cache for the prod environment with debug false                                             


In Imagine.php line 172:

  Gd not installed  

И поэтому мне нужно запустить (или попросить системного инженера запустить) sudo apt-get install php-gd.

Есть ли способ узнать этот список перед развертыванием приложение?

Что-то вроде:

php bin/console debug:php-modules

PS Я бы хотел узнать решение без использования Docker.

Ответы [ 3 ]

0 голосов
/ 09 декабря 2018

Вы можете запустить composer check-platform-reqs после composer install, и он сообщит вам, отсутствует ли расширение.

Команда check-platform-reqs проверяет, что ваш PHPи версии расширений соответствуют требованиям платформы установленных пакетов.Это можно использовать для проверки того, что на производственном сервере есть все расширения, необходимые для запуска проекта, например, после его установки.

Хотя, исходя из вашего вопроса, я предполагаю, что вы используете Imagine библиотека, которая, глядя на это composer.json , не требует каких-либо расширений PHP , на самом деле они перечислены в качестве подсказок, и вы должны установить их вручную.

"suggest": {
    "ext-gd": "to use the GD implementation",
    "ext-imagick": "to use the Imagick implementation",
    "ext-gmagick": "to use the Gmagick implementation"
}
0 голосов
/ 09 декабря 2018

Если вашему приложению требуется расширение PHP, вы должны поместить его в composer.json:

{
    …
    "require": {
        "php": "^7.1",
        "ext-gd": "*",
        "ext-json": "*",
        …

. Это:

  1. предотвратит установку проекта, если модуль отсутствуетв любой среде
  2. предоставим вам справочную документацию, чтобы узнать, какие модули требуются
0 голосов
/ 07 декабря 2018

Я предлагаю вам установить все модули сразу, вот список:

php7.2 php7.2-enchant php7.2-mbstring php7.2-snmp php7.2-bcmath php7.2-fpm php7.2-mysql php7.2-soap php7.2-bz2 php7.2-gd php7.2-odbc php7.2-sqlite3 php7.2-cgi php7.2-gmp php7.2-opcache php7.2-sybase php7.2-cli php7.2-imap php7.2-pgsql php7.2-tidy php7.2-common php7.2-interbase php7.2-phpdbg php7.2-xml php7.2-curl php7.2-intl php7.2-pspell php7.2-xmlrpc php7.2-dba php7.2-json php7.2-readline php7.2-xsl php7.2-dev php7.2-ldap php7.2-recode php7.2-zip

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...