apache - Symfony on Xampp (Apache) 问题:页面未加载
问题描述
我的 Apache 本地服务器在 XAMPP 上运行。我创建了新的 symfony 项目并且从一开始就遇到了问题。页面未加载。然后我使用以下命令安装了 .htaccess:
composer require symfony/apache-pack
它仍然没有工作。然后大约一个小时后,它开始自行工作。(我不确定我是否刷新了页面)。
无论如何,在使用控制器进行一些手动更改后,页面再次停止加载。
它说:
无法访问此站点
连接被重置。
ERR_CONNECTION_RESET
我真的不知道是什么导致了这个问题。
Apache 正在运行,其他项目(不是 Symfony)也运行良好。只有这个 symfony 项目是有问题的。
我想我已经正确设置了一切:
httpd-vhost 文件:
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/myproject/public"
ServerName myproject
</VirtualHost>
主机文件:
127.0.0.1 myproject
.htaccess 文件(由composer require symfony/apache-pack
命令创建):
DirectoryIndex index.php
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$
RewriteRule .* - [E=BASE:%1]
RewriteCond %{HTTP:Authorization} .+
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0]
RewriteCond %{ENV:REDIRECT_STATUS} =""
RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ %{ENV:BASE}/index.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
RedirectMatch 307 ^/$ /index.php/
</IfModule>
</IfModule>
所以我真的不知道如何解决这个问题。我尝试清除网络浏览器中的缓存,但没有帮助。
编辑:当我更改 index.php 而不是 symfony 代码时,它可以工作:
<?php
use App\Kernel;
require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
return function (array $context) {
return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
};
我尝试使用:
<?php
echo "Hello World!";
它呼应
你好世界
有任何问题。
编辑2:似乎问题出在路由上。当我创建 MainController.php (作为一个新文件)它停止工作。当我删除整个文件时,它又开始工作了。删除文件的内容是不行的,我真的需要删除实际的文件才能让它再次工作。诡异的。
编辑 3:这是我的 dev.log 文件的一些内容:
[2021-11-07T20:21:04.744060+01:00] php.DEBUG: Warning: DOMDocument::schemaValidateSource(): Invalid Schema {"exception":{"Symfony\\Component\\ErrorHandler\\Exception\\SilencedErrorContext":{"severity":2,"file":"C:\\xampp\\htdocs\\myproject_cz\\vendor\\symfony\\translation\\Util\\XliffUtils.php","line":113,"trace":[{"file":"C:\\xampp\\htdocs\\myproject_cz\\vendor\\symfony\\translation\\Util\\XliffUtils.php","line":64,"function":"shouldEnableEntityLoader","class":"Symfony\\Component\\Translation\\Util\\XliffUtils","type":"::"}],"count":1}}} []
[2021-11-07T20:39:31.249487+01:00] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET http://myproject_cz/"" at C:\xampp\htdocs\myproject_cz\vendor\symfony\http-kernel\EventListener\RouterListener.php line 136 {"exception":"[object] (Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException(code: 0): No route found for \"GET http://myproject_cz/\" at C:\\xampp\\htdocs\\myproject_cz\\vendor\\symfony\\http-kernel\\EventListener\\RouterListener.php:136)\n[previous exception] [object] (Symfony\\Component\\Routing\\Exception\\NoConfigurationException(code: 0): at C:\\xampp\\htdocs\\myproject_cz\\vendor\\symfony\\routing\\Matcher\\Dumper\\CompiledUrlMatcherTrait.php:182)"} []
[2021-11-07T20:39:31.518751+01:00] request.INFO: Matched route "_wdt". {"route":"_wdt","route_parameters":{"_route":"_wdt","_controller":"web_profiler.controller.profiler::toolbarAction","token":"61c0ae"},"request_uri":"http://myproject_cz/_wdt/61c0ae","method":"GET"} []
我猜 request.ERROR 将是导致问题的原因。
编辑 4:上面的所有日志报告都是在尚未创建控制器时通过刷新默认 symfony 页面生成的。所以它们都是无关紧要的。
当我创建一个新控制器时(通过从 Symfony 文档中复制 LuckyController 示例或使用命令:)$ php bin/console make:controller MainController
不再生成日志并且页面停止加载。它实际上似乎在每次刷新后加载了几秒钟,但随后它最终被 ERR_CONNECTION_RESET 页面卸载。
解决方案
推荐阅读
- c# - 无论如何我可以在 if 语句中将 int 与 int[] 进行比较吗?C#
- android - 如何在 15 秒后从服务启动处理程序以防止应用程序睡眠并将位置发送到 Web 服务?
- sass - gulp sass 在简单的 gulp-sass 测试中失败
- jquery - Consume XML RSS feed using jquery in a predefined template
- ag-grid - 当 stopEditingWhenGridLosesFocus 选项为 true 时,DatePicker 不起作用
- testing - 如何设置邮递员测试等于这个或那个
- c# - 构建失败,因为我杀死 vhost.exe 后无法复制 DLL
- python - 如何从立体获取深度图 - KITTI 数据集
- android - Android 房间数据库 - LiveData - 更新/插入/删除,跳过观察者(回调)
- .net - .NetCore SignalR + React - CORS 调用不起作用