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