Symfony 4.x public 目录重命名为 public_html

Symfony 4.x public dir rename to public_html

我在将虚拟主机的目录重命名为 public_html 时遇到了一些困难。 根据最新 tutorial 我试图成功重命名它,但每次当我尝试使用控制台命令 运行 本地服务器时,我都会收到错误消息: [ERROR] The document root directory ".../.../App/public" does not exist.

我确定我的代码有问题。但我不知道在哪里。我是 Symfony 的新手。

这是我来自 composer.json 的代码:

"extra": {
    "symfony": {
        "allow-contrib": false,
        "require": "4.2.*",   
    }
    "public-dir": "public_html"
},

我是不是理解错了什么? 感谢您的帮助。

由于 index.php 文件是第一个 运行 文件(由网络服务器),您应该能够将 public 目录重命名为 public_html 并且它将工作,并且不需要更改 composer.json 中的任何内容(尽管这将如何影响框架代码,至少没有 运行 任何作曲家脚本,我不知道)。

我刚刚创建了一个新的 Symfony 4.2.3 项目,只是重命名了目录,运行宁(大多数)bin/console 命令不受影响。

内置服务器会有问题,但您可以告诉它使用哪个目录作为文档根目录:

mv public public_html
bin/console server:start --docroot=public_html/

[OK] Server listening on http://127.0.0.1:8000

不需要对 composer.json 进行更改。

如果代码片段完全代表您在 composer.json 中的内容,那么我注意到它的格式不正确 json 文件。在 "extra" 中,在 "symfony" 键的值之后,您需要放置一个分隔符“,”,然后在下一行中您可以添加更多的 key:value 对。如:

"extra": {
    "symfony": {
        "allow-contrib": false,
        "require": "4.2.*",   
    },
    "public-dir": "new_public_html_dirname"
}

格式不正确的 json 文件将阻止其执行。希望对你有帮助。

运行作曲家更新很重要。

composer update