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

时间:2018-10-29 19:09:00

标签: apache symfony production-environment

我根据https://symfony.com/doc/current/setup.html

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

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

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

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

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

3 个答案:

答案 0 :(得分:2)

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

有关Web服务器配置(包括Apache)的详细信息,请参见此页面:

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

答案 1 :(得分:0)

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

您将花费大量时间来弄清楚如何管理部署,安装依赖项,清空/预热缓存,这仅适用于最基本的symfony应用程序。

立即停止,省去头痛,购买VPS。

我多次给这个建议,大多数时候它都充耳不闻。一次,我问一位开发人员:您在此上浪费40个小时值得吗?您为此花了40个小时向客户收费,一个合适的VPS只需花费一半(总共),就可以省掉很多以后的麻烦。

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

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

答案 2 :(得分:0)

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

然后在public_html中创建具有以下内容的.htaccess:

[WARNING] java.lang.ClassCastException: 
    org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper$HttpSessionWrapper 
    cannot be cast to org.eclipse.jetty.server.session.SessionHandler$SessionIf 
    while invoking onComplete listener
    org.eclipse.jetty.server.session.SessionHandler$SessionAsyncListener@67e50aa3

仅此而已!