如何在我的VPS上配置symfony

时间:2018-08-18 22:31:24

标签: symfony vps

我使用xampp在本地PC中创建了一个symfony项目,并创建了一个git仓库。它可以正确启动,因此我尝试将其移至我的VPS。 我在VPS中克隆了我的存储库,但是现在我可以看到公共项目中的所有文件和文件夹了。 我已经对应用程序和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文件,并禁用了默认文件。不幸的是发生了。我总是看到我所有的文件夹

我尝试

1 个答案:

答案 0 :(得分:2)

听起来像是各种问题。

首先,您的Web服务器具有所谓的文档根目录。这是Web服务器在您访问网站时将查找的文件夹。

例如,您的项目在/var/www/myapp中,因此在myapp/下,您拥有src/vendor/web/,依此类推。我们还假设Web服务器文档根目录设置为相同的文件夹。现在,当您访问网站时,您将能够查看所有文件夹,而不是您所构建的网站。

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

第二个问题是您的Web服务器中的某些安全设置,以确保当有人访问您的网站时,他们无权访问敏感数据。使用.htaccess文件来控制应用程序内部的访问非常普遍,但是如今,最佳实践是在Web服务器内部进行配置。使用Apache 2时,您可能会在/etc/apache2/sites-enabled/*中找到站点的配置(它可能会根据您的VPS运行的Linux系统而有所不同)。在内部,您应该看到一个配置,可以用以下内容替换现有设置:

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并通过您的应用程序路由此请求,使其显示ID为123的博客文章。

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

如果您无法使这些设置适合您,也可以随时提出一个后续问题,并确保将配置文件添加到该问题中,以使我们更轻松地帮助您解决所拥有的特定问题改变。

相关问题