我正在使用 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" } }
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 环境,但我不确定。
symfony server:start
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
几天后,我偶然发现了这个 git 存储库:https ://github.com/dunglas/symfony-docker 。这是 Symfony 文档推荐的:Using Docker with Symfony。它使用 caddy 作为网络服务器。我从中吸取了教训,根据我的需要进行了调整,从那时起我就再也没有使用过 symfony 本地网络服务器。这是一个很好的项目,感谢 Kévin Dunglas和维护者。php图像约为200MB。Caddy 也是大约 40MB。非常适合产品和开发环境。
请仔细阅读 repo 并采用你能做的或一切。
免责声明:这不是您的问题/错误的答案,而是一个简单的替代方案。