Symfony 5:错误 - 找不到 "GET /<SiteConfigAcces>" 的路由
Symfony 5 : Error - No route found for "GET /<SiteConfigAcces>"
我开发了一个站点 sympfony/phpp 我想部署在本地服务器上。
在我自己的电脑上开发后(在那里运行良好),我把项目放在本地服务器上,用apache,php 7.3.x,composer 2.0.0 under a debian 10 OS
工程从我的电脑到服务器的所有传输和设置都完成了。
项目文件夹名称为 si2a。它在目录 /var/www 中
我在 a symfony doc guideline.
之后使用 ACL 设置了对该目录的访问权限
我将站点配置文件设置为 si2afama.conf。最后一个在目录 /etc/apache2/sites-available 中。设置后,我激活站点,重新加载 apache 并清除缓存。这是 si2afama.conf 的包含:
<VirtualHost *:80>
ServerName si2afama
# ServerAlias www.si2afama.com
DocumentRoot /var/www/si2a/public
DirectoryIndex /index.php
<Directory /var/www/si2a/public>
AllowOverride All
Require all granted
Allow from All
FallbackResource /index.php
</Directory>
<Directory /var/www/si2a/public/bundles>
FallbackResource disabled
</Directory>
ErrorLog /var/log/apache2/si2a_error.log
CustomLog /var/log/apache2/si2a_access.log combined
</VirtualHost>
当我尝试访问该站点时,我发现了这个错误:
找不到“GET /si2afama”的路线
因为这是一个路由问题,这里有一些文件包含:
si2a/config/packages/routing.yaml
framework:
router:
utf8: true
si2a/config.routes.yaml
index:
path: /
controller: App\Controller\DefaultController::index
si2a/public/index.php.
<?php
use App\Kernel;
use Symfony\Component\ErrorHandler\Debug;
use Symfony\Component\HttpFoundation\Request;
require dirname(__DIR__).'/config/bootstrap.php';
if ($_SERVER['APP_DEBUG']) {
umask(0000);
Debug::enable();
}
if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? $_ENV['TRUSTED_PROXIES'] ?? false) {
Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST);
}
if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? $_ENV['TRUSTED_HOSTS'] ?? false) {
Request::setTrustedHosts([$trustedHosts]);
}
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
我真的不知道该怎么做才能解决这个问题。
请有人帮助我。谢谢。
尝试安装这个包 composer require symfony/apache-pack 它将创建一个 .htaccess 文件来解决你的问题
您的虚拟主机与您的域名和源代码目录相关,
如果你想为你的应用程序使用像 si2afama
这样的路由名称,你必须将它添加到 symfony 路由中。
# si2a/config.routes.yaml
index:
path: /
controller: App\Controller\DefaultController::index
si2afama:
path: /si2afama
controller: App\Controller\DefaultController::nameActionFromController
我开发了一个站点 sympfony/phpp 我想部署在本地服务器上。
在我自己的电脑上开发后(在那里运行良好),我把项目放在本地服务器上,用apache,php 7.3.x,composer 2.0.0 under a debian 10 OS
工程从我的电脑到服务器的所有传输和设置都完成了。 项目文件夹名称为 si2a。它在目录 /var/www 中 我在 a symfony doc guideline.
之后使用 ACL 设置了对该目录的访问权限我将站点配置文件设置为 si2afama.conf。最后一个在目录 /etc/apache2/sites-available 中。设置后,我激活站点,重新加载 apache 并清除缓存。这是 si2afama.conf 的包含:
<VirtualHost *:80>
ServerName si2afama
# ServerAlias www.si2afama.com
DocumentRoot /var/www/si2a/public
DirectoryIndex /index.php
<Directory /var/www/si2a/public>
AllowOverride All
Require all granted
Allow from All
FallbackResource /index.php
</Directory>
<Directory /var/www/si2a/public/bundles>
FallbackResource disabled
</Directory>
ErrorLog /var/log/apache2/si2a_error.log
CustomLog /var/log/apache2/si2a_access.log combined
</VirtualHost>
当我尝试访问该站点时,我发现了这个错误: 找不到“GET /si2afama”的路线
因为这是一个路由问题,这里有一些文件包含:
si2a/config/packages/routing.yaml
framework:
router:
utf8: true
si2a/config.routes.yaml
index:
path: /
controller: App\Controller\DefaultController::index
si2a/public/index.php.
<?php
use App\Kernel;
use Symfony\Component\ErrorHandler\Debug;
use Symfony\Component\HttpFoundation\Request;
require dirname(__DIR__).'/config/bootstrap.php';
if ($_SERVER['APP_DEBUG']) {
umask(0000);
Debug::enable();
}
if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? $_ENV['TRUSTED_PROXIES'] ?? false) {
Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST);
}
if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? $_ENV['TRUSTED_HOSTS'] ?? false) {
Request::setTrustedHosts([$trustedHosts]);
}
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
我真的不知道该怎么做才能解决这个问题。
请有人帮助我。谢谢。
尝试安装这个包 composer require symfony/apache-pack 它将创建一个 .htaccess 文件来解决你的问题
您的虚拟主机与您的域名和源代码目录相关,
如果你想为你的应用程序使用像 si2afama
这样的路由名称,你必须将它添加到 symfony 路由中。
# si2a/config.routes.yaml
index:
path: /
controller: App\Controller\DefaultController::index
si2afama:
path: /si2afama
controller: App\Controller\DefaultController::nameActionFromController