我使用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文件,并禁用了默认文件。不幸的是发生了。我总是看到我所有的文件夹
我尝试
答案 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
如果您无法使这些设置适合您,也可以随时提出一个后续问题,并确保将配置文件添加到该问题中,以使我们更轻松地帮助您解决所拥有的特定问题改变。