XAMPP中的虚拟主机问题,基于Laravel的项目

Posted

技术标签:

【中文标题】XAMPP中的虚拟主机问题,基于Laravel的项目【英文标题】:Problem with Virtual Host in XAMPP, project based on Laravel 【发布时间】:2021-01-30 03:52:44 【问题描述】:

我正在尝试在 lacalhost 上的 laravel 中启动项目。这个项目不是我的,我致力于它,并试图弄清楚它是如何构建的。有主要文件:enter image description here

在这个文件中是 laravel.core。他的内心是这样的:enter image description here

在我的 XAMPP httpd-vhosts 中,我有 VirtualHost。在我的每个项目都正常工作之前,没有问题。在虚拟主机中,我创建 index.php 所在的主文件夹的路径。但是当我在浏览器中尝试打开时,会警告说这个网站很危险,因为它是自我认证的,之后,只有 XAMPP Dashboard,没有别的了。

在我的 index.php 中有路径:

require __DIR__.'/laravel_core/bootstrap/autoload.php';

在上面的文件中我有:

require __DIR__.'/../vendor/autoload.php';

编辑:

所以这里是 .htaccess:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %HTTPS !=on
    RewriteRule ^(.*)$ https://%HTTP_HOST%REQUEST_URI [L,R=301]

    # Handle Front Controller...
    RewriteCond %REQUEST_FILENAME !-d
    RewriteCond %REQUEST_FILENAME !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %HTTP:Authorization .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%HTTP:Authorization]
</IfModule>

在 index.php 中:

require __DIR__.'/laravel_core/bootstrap/autoload.php';

$app = require_once __DIR__.'/laravel_core/bootstrap/app.php';
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);

$response->send();

$kernel->terminate($request, $response);

在底部,我从我的 .env 添加代码,接下来是 bootsrap/autoload.php,最后是 vendor/autoload.php:

APP_ENV=local
APP_KEY=base64:2OWwGrH6hL+4MKkV7sZZ21MTjSHv/zacUDC67FWVBa4=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=testowa1
DB_USERNAME=testowa1
DB_PASSWORD=password
DB_TABLE_PREFIX=cms_

define('LARAVEL_START', microtime(true));
require __DIR__.'/../vendor/autoload.php';

require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit7c0fb85d4a884560a3dba2e1e877f7b0::getLoader();

【问题讨论】:

VirtualHost 可能只响应 ip 和端口的组合。如果这是您第一次收到此警报,则很可能您仅将它们配置为使用端口 80,但应用程序正在重定向到 443,因此 apache 不知道该提供什么服务。复制您的虚拟主机配置以使用正确的端口或重新配置应用程序。 我试着按照你的建议做点什么。我已将我的虚拟主机复制到正确的端口,但它没有帮助。接下来我创建了自己的 ssl 证书,还是一样。我试图重新配置我的应用程序,但我不知道具体如何。在我的 .env 文件中? 可能是重定向,有.htaccess 文件吗?请尝试收集有关重定向、服务器配置、您正在访问的 url 以及您最终到达的位置等的更多信息。否则我们只能根据疯狂的猜测继续。 我编辑了我的问题,并添加了一些代码,也许这有助于理解问题出在哪里。如果有人知道我可以添加什么资源,请写。 我仍然认为端口存在VirtualHost 问题...尝试从.htaccess(带有%HTTPS !=on 的那个)中删除第一对RewriteCond / RewriteRule。跨度> 【参考方案1】:

好的,这个问题通过msg解决了。他在评论中写道,问题出在 VirtualHost,当我删除 .htaccess 中提到的这两行时,显示 XAMPP 仪表板就没有问题了。

【讨论】:

以上是关于XAMPP中的虚拟主机问题,基于Laravel的项目的主要内容,如果未能解决你的问题,请参考以下文章

使用带有端口 8003 的 Xampp 为 Laravel 创建虚拟主机

Xampp 上的 Laravel 虚拟主机无法正常工作

使用虚拟主机 XAMPP 查看路由 Laravel 时出错

Xampp for Laravel 上的虚拟主机不工作

使用 laravel 框架时如何在 xampp 上创建虚拟主机

无法在本地主机(XAMPP)上打开 Laravel 日志(权限被拒绝)