Symfony 5.3 中的 Malformed MIME header 错误

Malformed MIME header error in Symfony 5.3

我正在使用 Symfony 5.3 和 PHP 8.0.12 开发一个项目。我一直在自己的电脑上开发它,它运行良好。我现在想把它部署到一个远程容器上。

然而,当我启动内置于 Web 服务器的 Symfony 时,在访问任何已定义的路由时出现以下错误:

issue with server callback error="unable to fetch the response from the backend: malformed MIME header: missing colon: "FROM information_schema.schemata""

在这两种情况下(在我的计算机上和在容器中),服务器都连接到远程 PostgreSQL 数据库。容器连接到数据库似乎没有任何问题,因为我可以使用 psql 命令手动连接。

我尝试重新安装 Symfony(Symfony CLI 版本 v4.26.8)、Composer(版本 2.1.12)和大多数 PHP 库,但没有任何改变。

我不知道问题出在哪里。任何帮助将不胜感激。

这是我的 composer.json:

{
"type": "project",
"license": "proprietary",
"minimum-stability": "stable",
"prefer-stable": true,
"require": {
    "php": ">=7.2.5",
    "ext-ctype": "*",
    "ext-iconv": "*",
    "ext-json": "*",
    "composer/package-versions-deprecated": "1.11.99.2",
    "doctrine/annotations": "^1.13",
    "doctrine/doctrine-bundle": "^2.4",
    "doctrine/doctrine-migrations-bundle": "^3.1",
    "doctrine/orm": "^2.9",
    "lexik/jwt-authentication-bundle": "^2.13",
    "sensio/framework-extra-bundle": "^6.2",
    "symfony/apache-pack": "^1.0",
    "symfony/dotenv": "5.3.*",
    "symfony/flex": "^1.15",
    "symfony/framework-bundle": "5.3.*",
    "symfony/http-foundation": "5.3.*",
    "symfony/ldap": "5.3.*",
    "symfony/proxy-manager-bridge": "5.3.*",
    "symfony/security-bundle": "5.3.*",
    "symfony/stopwatch": "5.3.*",
    "symfony/web-profiler-bundle": "5.3.*",
    "symfony/property-access": "5.3.*",
    "symfony/runtime": "5.3.*",
    "symfony/security-csrf": "5.3.*",
    "symfony/serializer": "5.3.*",
    "symfony/yaml": "5.3.*"
},
"config": {
    "optimize-autoloader": true,
    "preferred-install": {
        "*": "dist"
    },
    "sort-packages": true
},
"autoload": {
    "psr-4": {
        "App\": "src/"
    }
},
"autoload-dev": {
    "psr-4": {
        "App\Tests\": "tests/"
    }
},
"replace": {
    "symfony/polyfill-ctype": "*",
    "symfony/polyfill-iconv": "*",
    "symfony/polyfill-php72": "*"
},
"scripts": {
    "auto-scripts": {
        "cache:clear": "symfony-cmd",
        "assets:install %PUBLIC_DIR%": "symfony-cmd"
    },
    "post-install-cmd": [
        "@auto-scripts"
    ],
    "post-update-cmd": [
        "@auto-scripts"
    ]
},
"conflict": {
    "symfony/symfony": "*"
},
"extra": {
    "symfony": {
        "allow-contrib": false,
        "require": "5.3.*"
    }
},
"require-dev": {
    "symfony/maker-bundle": "^1.33"
}
}

我在 php-alpine 容器中使用 symfony server:start 和 docker 时出现此错误。每次我 运行 迁移或 doctrine:schema:update 在新安装的实例中,我的 symfony 本地网络服务器都会抛出错误: issue with server callback error="unable to fetch the response from the backend: malformed MIME header: missing colon: "FROM information_schema.schemata 我通过删除高山容器并从 FROM ubuntu:20.04 图片:我还必须安装 php、驱动程序和所有依赖项。这与我的生产环境不相符,因为图像超过 1GB,这意味着它有我在生产中不需要的二进制文件。根据经验,symfony 本地网络服务器需要一个 python 环境,但我不确定。

几天后,我偶然发现了这个 git 存储库:https://github.com/dunglas/symfony-docker. which is recommended from Symfony docs here: Using Docker with Symfony. It uses caddy as the web-server. I learnt from it, tweaked to suit my needs and from then never used symfony local web-server. Its a good project, kudos to Kévin Dunglas 和维护者。 php 图片大约有 200MB。 Caddy 也大约有 40MB。非常适合生产环境和开发环境。

请仔细阅读 repo 并采纳你能采纳的或所有的。

免责声明:这不是对您problem/error的回答,而是一个简单的替代方案。

我在 docker (ubuntu) 中遇到了同样的问题 运行ning。 虽然我不完全确定为什么会发生这种情况,但我设法找到了一个简单的解决方法:

composer install 
composer run-script auto-scripts
symfony proxy:start --host=0.0.0.0 
symfony local:server:start --no-tls --port=8000

不知道为什么会这样,但是当你 运行 在 docker 中时,一切正常,你可以在 CONTAINER_IP:8000.[=12= 打开你的应用程序]

我决定 post 在这里,因为我花了 3 个小时才弄明白,所以希望这能节省一些人的时间。