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