gpt4 book ai didi

apache - Symfony2 网站不返回 404 错误

转载 作者:行者123 更新时间:2023-12-02 11:43:52 26 4
gpt4 key购买 nike

如果我尝试访问网站上不存在的任何资源(例如 example.com/this/path/does/not/exist 或 example.com/images/fakeimage.jpg),它不会返回404 错误。它只会挂起大约一分钟,然后就会超时,同时它会耗尽服务器上的 CPU 和 RAM。

我认为它可能是 .htaccess 文件,但它与默认的 Symfony 相同。

我的另一个想法是,这可能是我的 Apache Vhost 文件的问题,但我有另一个 Symfony 站点,使用相同的配置/不同的站点名称运行没有问题。

此时我对调试有点不知所措。我还可以看什么吗?

--编辑--我在日志中发现了这一点:

request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET /this/is/not/a/path"" at /var/www/dev/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/EventListener/RouterListener.php line 176 {"exception":"[object] (Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException(code: 0): No route found for \"GET /this/is/not/a/path\" at /var/www/dev/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/EventListener/RouterListener.php:176, Symfony\\Component\\Routing\\Exception\\ResourceNotFoundException(code: 0):  at /var/www/dev/app/cache/prod/appProdUrlMatcher.php:2209)"} []

接下来是大约 100 个:

[2016-08-22 15:26:10] request.CRITICAL: Uncaught PHP Exception Symfony\Component\Security\Core\Exception\AuthenticationCredentialsNotFoundException: "The token storage contains no authentication token. One possible reason may be that there is no firewall configured for this URL." at /var/www/dev/vendor/symfony/symfony/src/Symfony/Component/Security/Core/Authorization/AuthorizationChecker.php line 57 {"exception":"[object] (Symfony\\Component\\Security\\Core\\Exception\\AuthenticationCredentialsNotFoundException(code: 0): The token storage contains no authentication token. One possible reason may be that there is no firewall configured for this URL. at /var/www/dev/vendor/symfony/symfony/src/Symfony/Component/Security/Core/Authorization/AuthorizationChecker.php:57)"} []

我读到这可能与 Symfony 中的 security.yml 有关。以下可能有什么问题吗?

firewalls:
secured_area:
pattern: ^/
switch_user: { role: ROLE_SUPER_ADMIN, parameter: _switch_user }
oauth:
failure_path: "/login"
login_path: "/login"
check_path: /connect_check
provider: fos_userbundle
resource_owners:
facebook: "/login/check-facebook"
google: "/login/check-google"
oauth_user_provider:
service: app.provider.oauth
anonymous: true

form_login:
provider: fos_userbundle
check_path: fos_user_security_check
login_path: fos_user_security_login
csrf_provider: security.csrf.token_manager
use_referer: true

logout:
path: fos_user_security_logout
target: fos_user_security_login
success_handler: cps.sso.security.logout_success_handler
invalidate_session: false

access_denied_url: /
access_control:

- { path: ^/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: new$, role: ROLE_ADMIN}
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/homerecalls$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: $/reports-login, role: IS_AUTHENTICATED_ANONYMOUSLY}
- { path: ^/article/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/category/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/author/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/accounts/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/photo/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/fileupload/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/services/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/company/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resources/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/agents/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/sellers/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/buyers/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: ROLE_ADMIN }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
- { path: ^/user/, role: [ROLE_USER, ROLE_ADMIN]}
- { path: ^/profile/, role: [ROLE_USER, ROLE_ADMIN]}

最佳答案

好吧,我找到了解决方案,尽管我怀疑许多其他人实际上会因为与我相同的原因而遇到此问题。这篇文章让我走上了修复它的正确道路。 Symfony2 error 500 instead of 404 at production

我正在浏览这篇文章并结合我遇到的一些错误,并意识到几个月前,当我第一次学习 Symfony 时,我曾尝试在生产服务器上启用 Symfony Profiler,并在我的 config.yml 中使用此内容:

profiler:
matcher:
service: app.super_admin_matcher

这在 AppBundle/Profiler/SuperAdminMatcher.php 中:

<?php

namespace AppBundle\Profiler;

use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestMatcherInterface;

class SuperAdminMatcher implements RequestMatcherInterface
{
protected $authorizationChecker;

public function __construct(AuthorizationCheckerInterface $authorizationChecker)
{
$this->authorizationChecker = $authorizationChecker;
}

public function matches(Request $request)
{
return $this->authorizationChecker->isGranted('ROLE_SUPER_ADMIN');
}
}

?>

一旦我删除了我现在不需要的代码,一切就又开始正常工作了。

关于apache - Symfony2 网站不返回 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39088543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com