Symfony获取所需的PHP模块列表

时间:2018-12-07 10:59:13

标签: php symfony deployment

将Symfony应用程序部署到另一台服务器时,我经常需要等待composer installcache: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

P.S。我想在不使用Docker的情况下了解解决方案。

3 个答案:

答案 0 :(得分:2)

您可以在composer install之后运行composer check-platform-reqs,它会告诉您扩展名是否丢失。

  

check-platform-reqs命令检查您的PHP和扩展版本是否符合已安装软件包的平台要求。例如,这可以用于验证生产服务器是否具有运行项目后所需的所有扩展。

尽管,从您的问题来看,我认为您正在使用Imagine库,通过查看it's 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"
}

答案 1 :(得分:0)

如果您的应用程序需要PHP扩展名,则应将其放在composer.json中:

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

它将:

  1. 如果在任何环境中都缺少模块,则防止安装项目
  2. 给您参考文档以了解需要哪些模块

答案 2 :(得分:-1)

我建议您一次安装所有模块,这是列表:

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