如何在共享服务器中部署 Symfony 应用程序

How to deploy Symfony app in shared server

我按照 https://symfony.com/doc/current/setup.html

中的文档创建了一个 Symfony 应用程序

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

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

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

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

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

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

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

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

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

现在停下来,让自己不再头疼,买一个 VPS。

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

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

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

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

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

RewriteEngine On
RewriteRule .* public/index.php

仅此而已!