一尘不染

Symfony 5.3 中格式错误的 MIME 标头错误

php

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

但是,当我启动内置 Webserver 的 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"
}
}

阅读 67

收藏
2022-07-25

共1个答案

一尘不染

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

几天后,我偶然发现了这个 git 存储库:https ://github.com/dunglas/symfony-docker 。这是 Symfony 文档推荐的:Using Docker with Symfony。它使用 caddy 作为网络服务器。我从中吸取了教训,根据我的需要进行了调整,从那时起我就再也没有使用过 symfony 本地网络服务器。这是一个很好的项目,感谢 Kévin Dunglas和维护者。php图像约为200MB。Caddy 也是大约 40MB。非常适合产品和开发环境。

请仔细阅读 repo 并采用你能做的或一切。

免责声明:这不是您的问题/错误的答案,而是一个简单的替代方案。

2022-07-25