如何在我的 VPS 上配置 symfony

how configure symfony on my VPS

我在我的本地 PC 上用 xampp 创建了一个 symfony 项目并且我创建了一个 git repository.It 正确启动所以我试图将它移动到我的 VPS。 我在我的 VPS 中克隆了我的存储库,但我发现现在我可以看到我的 public 项目的所有文件和文件夹。 我已经保留了对 app 和 src 以及其他文件的读取和其他权限,但我认为我可以看到所有文件是不正常的.. 如果我共享(打开端口)我的 xampp 本地它不会发生。 当我克隆我的 symfony 项目时,我需要做一些配置吗??

我的配置/etc/apache2/apache.conf

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Require all denied
</Directory>

<Directory /usr/share>
    AllowOverride None
    Require all granted
</Directory>

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

在 /etc/apache2/sites-avaiables/rasp.conf 中,我遵循 symfony 指南

 DocumentRoot /var/www/html/conticasa/web
<Directory /var/www/html/conticasa/web>
    # enable the .htaccess rewrites
    AllowOverride All
    Require all granted
</Directory>

ErrorLog /var/log/apache2/project_error.log
CustomLog /var/log/apache2/project_access.log combined

我启用了 rasp.conf 文件并禁用了默认文件。不幸的是发生了。我总是看到我所有的文件夹

我试着

听起来像是一堆问题。

首先,您的网络服务器有一个所谓的文档根目录。这是当您访问您的网站时 Web 服务器将查看的文件夹。

例如,您的项目在 /var/www/myapp 中,所以在 myapp/ 下方,您有 src/vendor/web/ 等等。我们还假设 Web 服务器文档根目录设置为同一个文件夹。现在,当您访问您的网站时,您将能够看到所有文件夹,而不是您建立的网站。

解决方案是将您的 Web 服务器的文档根目录指向 myapp/ 中的 web/-文件夹,因此在我们的示例中 /var/www/myapp/web(使用 Symfony 4 web/-文件夹已重命名为 public/,因此只需将其替换为那个)。

第二个问题是您的网络服务器中的一些安全设置,以确保当有人访问您的网站时他们无法访问敏感数据。使用 .htaccess 文件来控制应用程序内部的访问是很常见的,但现在最好的做法是在 Web 服务器内部配置它。当您使用 Apache 2 时,您可能会在 /etc/apache2/sites-enabled/* 中找到您站点的配置(它可能因 Linux 系统而异,您的 VPS 是 运行)。在里面你应该看到一个配置,你可以用这个替换现有的设置:

DocumentRoot /var/www/myapp/web
<Directory /var/www/project/web>
    AllowOverride None
    Order Allow,Deny
    Allow from All

    FallbackResource /app.php
</Directory>

这表示,每当尝试访问不存在的内容时,例如您的路由之一,如 www.example.com/blog/post/123,它将返回到 Symfony 的前端控制器 app.php 并通过您的应用程序路由此请求,使其显示您的博客 post 和 id 123.

Symfony 有一个文档页面,可以帮助您为 Apache 和 nginx(另一种流行的网络服务器软件)进行良好的默认配置:https://symfony.com/doc/3.4/setup/web_server_configuration.html

此外,如果您在使用这些设置时遇到问题,请随时提出后续问题,并确保将配置文件添加到问题中,以便我们更轻松地帮助您解决具体问题你必须改变。