【问题标题】:How to deploy Symfony app in shared server如何在共享服务器中部署 Symfony 应用程序
【发布时间】:2018-10-29 19:08:59
【问题描述】:

我按照https://symfony.com/doc/current/setup.html 中的文档创建了一个 Symfony 应用程序

在我的本地服务器中,我使用php bin/console server:run 为应用程序提供服务,一切都很好。

但是现在我想将该应用程序部署在用于小型 PHP 应用程序(如没有太多逻辑的公司应用程序)的共享服务器中,我无法使其工作......在类似的服务器中,我的 zend 框架应用程序正常工作,但 symfony 不工作。

我注意到根目录中没有任何 index.php 文件。 这是一个带有 apache 的简单服务器,我只是通过 FTP 拖动文件(没有 SSH 连接),但服务器没有执行 php 框架

我是否必须生成构建或类似的东西才能将生成的文件移动到服务器?

【问题讨论】:

标签: apache symfony production-environment


【解决方案1】:

“public”目录中有一个 index.php,它应该是您的公共网络服务器路径的“root”。

有关网络服务器配置的详细信息,请参阅此页面,包括 Apache:

https://symfony.com/doc/current/setup/web_server_configuration.html

【讨论】:

  • 据我了解,我只需要更改作曲家文件中的 extra.public-dir ... 但随后我运行 php bin/console server:run 并收到错误 [ERROR] The document根目录“/../public”不存在。 (因为我更改了文件夹的名称),但没有考虑作曲家的更改。我是否需要运行其他命令?
【解决方案2】:

嗯,最后有人告诉我这是一个更简单的解决方案。 我只是将我的项目的所有内容(包括公共文件夹)复制并粘贴到我的共享服务器生成的 public_html 文件夹中。

然后在public_html中创建一个.htaccess,内容如下:

RewriteEngine On
RewriteRule .* public/index.php

仅此而已!

【讨论】:

  • 我不确定这是个好主意,因为它还会将所有资源(CSS、图像等)重定向到您的前端控制器。
【解决方案3】:

看,你可以这样做,但你不应该这样做。

您将浪费几天时间来弄清楚如何管理部署、安装依赖项、清空/预热缓存,而这只是针对最基本的 symfony 应用程序。

现在就停下来,省得自己头疼,买个 VPS。

我已经多次给出这个建议,大多数时候它都被置若罔闻。有一次我问一位开发人员:你浪费在这上面的 40 个小时值得吗?您为此向您的客户收取了 40 小时的费用,一个合适的 VPS 只需花费一半(总而言之),并且会让您免去很多未来的麻烦。

(Arne 关于服务器配置的帖子在技术上是正确的答案)

编辑:我不建议您在 VPS 上使用 php 服务器。 VPS 仍然需要 apache / nginx。

【讨论】:

  • 所以你告诉我,对于其他 PHP 框架,如 zend,拖放就足够了,但使用 symfony 我需要花费大量时间才能使其在共享服务器中工作?
  • 在某种程度上,是的。现代 PHP 框架,如 Symfony、Laravel 和许多不太流行的框架,不再使用复制粘贴部署,而是使用 composer、cli 脚本、部署工具等工具来管理应用程序。您仍然可以通过 FTP 复制内容并通过删除文件来清除缓存,但是随着应用程序的增长,您将越来越多地使用旧方法。
猜你喜欢
  • 2011-02-13
  • 1970-01-01
  • 2023-02-22
  • 2018-02-08
  • 2013-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多