【发布时间】:2021-01-10 11:42:24
【问题描述】:
我是 PHP 新手,我想开始我从另一个来源复制的 laravel 项目。我收到 500 错误。如果我尝试调试公用文件夹中的 index.php,我会得到一个奇怪的行为,即如果代码中的内核行在那里,die 函数不起作用。我不明白,我以为die函数会停止执行。
<?php
die ('hi'); //this die
use Illuminate\Contracts\Http\Kernel;
use Illuminate\Http\Request;
define('LARAVEL_START', microtime(true));
if (file_exists(__DIR__.'/../storage/framework/maintenance.php')) {
require __DIR__.'/../storage/framework/maintenance.php';
}
require __DIR__.'/../vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
//If I comment out kernel line "die" on top doesn't return 'hi'. The response is 500 html code.
//$kernel = $app->make(Kernel::class);
/*
$response = tap($kernel->handle(
$request = Request::capture()
))->send();
$kernel->terminate($request, $response);
*/
EDIT:从服务器访问日志中获取的日志为:
"GET /index2.php HTTP/2.0" 500 86 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36"
我在错误日志中没有收到任何错误。 所以我已经激活了 PHP 错误日志。我收到此错误消息:
[24-Sep-2020 11:00:39 Europe/Berlin] PHP Parse error: syntax error, unexpected T_CLASS, expecting T_STRING or T_VARIABLE or '$' in /usr/.../inertia/public/index2.php on line 44
【问题讨论】:
-
可能内核代码只是使整个文件无效,因此
die永远不会运行。检查您的服务器日志以获取实际的错误消息。 -
在 laravel 框架中 index.php 是 laravel 的入口点......你想做什么?
-
@AbdullahAlNoor 我想调试应用程序,并找出这个 500 响应的原因。
-
请检查您的服务器日志中的错误消息,这可能会回答您的问题。解析文件时的语法错误将阻止文件中的任何代码运行。检查错误消息以查看它的确切错误。请记住,为新的 PHP 版本编写的代码也可能是语法错误的原因,因为旧的 PHP 版本不知道以后引入的新语法。
-
访问日志只显示对您的应用程序发出的请求,为此目的并不那么有趣。但看来你确实发现了错误,这很好,很有帮助
标签: laravel installation die