在共享主机上部署Symfony2


Deploying Symfony2 on shared hosting

我找不到问题的回复。我正在努力了解如何在共享主机上部署symfony2应用程序。我知道我应该将我的"web"目录重命名为"public_html",但我在这个目录中有很多网站。我的目录结构如下:

-public_html
  -www.firstsite.com
  -www.secondsite.com
  ...
  -www.nextsite.com
-private_html

那么我应该把文件放在哪里呢?公共html下的应用程序、src、供应商,以及我应该直接放在"公共html"中的web文件?或者目录web应该在public_html中,而其他文件应该在public_html下?所以我会有:

-public_html
  -...
  -web
-private_html
-app
-src
-...

编辑:现在我在"public_html/example/"中有了整个应用程序工作正常,但安全吗?

您应该在"public_html"中为新网站创建一个文件夹。假设您拥有域名"example.com"。

您将拥有:public_html/example.com、public_html/example2.com、..

在example.com文件夹中,您将复制以下文件夹:app、src、public。。(Symfony的所有项目主文件夹和文件)。

回答你的问题。"编辑:现在我在"public_html/example/"中有了整个应用程序,它工作正常,但安全吗?"是的,很安全

只要在谷歌上搜索:"防止目录遍历",如果你想确保它是安全的。

另一种解决方案可以是在"public_html"之外的文件夹中安装/部署Symfony,我们将其命名为"Symfony_app"。

然后,您的目录结构可能看起来像这样:

-public_html
  -www.firstsite.com
  -www.secondsite.com
  ...
-symfony_app

然后,您应该在"public_html"文件夹中创建Symfony"web"文件夹的符号链接。

例如:

ln -s /home/your_username/symfony_app/web /home/your_username/public_html/www.symfony-site.com

**在创建符号链接之前,名为"www.symfony-site.com"的文件夹不得存在于"public_html"中!

最后一步是在cPanel中添加新的子域。在那里,你应该将你的新子域与"public_html"内的"www.symfony-site.com"符号链接连接起来。