^ think\exception\HttpException {#81
-statusCode: 404
-headers: []
#message: "controller not exists:\think\app"
#code: 0
#file: "/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/route/dispatch/Url.php"
#line: 62
trace: {
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/route/dispatch/Url.php:62 {
think\route\dispatch\Url->parseUrl(string $url): array …
› if ($controller && !preg_match('/^[A-Za-z0-9][\w|\.]*$/', $controller)) {
› throw new HttpException(404, 'controller not exists:' . $controller);
› }
}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/route/dispatch/Url.php:31 {
think\route\dispatch\Url->__construct(Request $request, Rule $rule, $dispatch) …
› // 解析默认的URL规则
› $dispatch = $this->parseUrl($dispatch);
›
arguments: {
$url: "\think\app|invokefunction"
}
}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/Route.php:827 {
think\Route->url(string $url): Dispatch …
›
› return new UrlDispatch($this->request, $this->group, $url);
› }
arguments: {
$request: app\Request {#29 …}
$rule: think\route\Domain {#77 …}
$dispatch: "\think\app|invokefunction"
}
}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/Route.php:785 {
think\Route->check() …
›
› return $this->url($url);
› }
arguments: {
$url: "\think\app|invokefunction"
}
}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/Route.php:745 {
think\Route->dispatch(Request $request, Closure|bool $withRoute = true) …
› }
› $dispatch = $this->check();
› } else {
}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/Http.php:208 {
think\Http->dispatchToRoute($request) …
›
› return $this->app->route->dispatch($request, $withRoute);
› }
arguments: {
$request: app\Request {#29 …}
$withRoute: Closure() {#69 …}
}
}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/Http.php:198 {
think\Http->think\{closure} …
› ->then(function ($request) {
› return $this->dispatchToRoute($request);
› });
arguments: {
$request: app\Request {#29 …}
}
}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/Pipeline.php:59 {
think\Pipeline->think\{closure} …
› try {
› return $destination($passable);
› } catch (Throwable | Exception $e) {
arguments: {
app\Request {#29 …}
}
}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/think-multi-app/src/MultiApp.php:51 {
think\app\MultiApp->think\app\{closure} …
› ->then(function ($request) use ($next) {
› return $next($request);
› });
arguments: {
app\Request {#29 …}
}
}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/Pipeline.php:59 {
think\Pipeline->think\{closure} …
› try {
› return $destination($passable);
› } catch (Throwable | Exception $e) {
arguments: {
app\Request {#29 …}
}
}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/Pipeline.php:66 {
think\Pipeline->then(Closure $destination) …
›
› return $pipeline($this->passable);
› }
arguments: {
app\Request {#29 …}
}
}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/think-multi-app/src/MultiApp.php:52 {
think\app\MultiApp->handle($request, Closure $next) …
› return $next($request);
› });
› }
arguments: {
$destination: Closure($request) {#45 …}
}
}
think\app\MultiApp->handle() {}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/Middleware.php:134 {
think\Middleware->think\{closure} …
› }
› $response = call_user_func($call, $request, $next, ...$params);
›
arguments: {
$callback: array:2 [ …2]
...$args: {
app\Request {#29 …}
Closure($passable) {#43 …}
}
}
}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/Pipeline.php:85 {
think\Pipeline->think\{closure} …
› try {
› return $pipe($passable, $stack);
› } catch (Throwable | Exception $e) {
arguments: {
app\Request {#29 …}
Closure($passable) {#43 …}
}
}
/usr/share/nginx/html/img.szhulian.cn/app/common/middleware/CrossReq.php:19 {
app\common\middleware\CrossReq->handle($request, Closure $next) …
›
› return $next($request);
› }
arguments: {
app\Request {#29 …}
}
}
app\common\middleware\CrossReq->handle() {}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/Middleware.php:134 {
think\Middleware->think\{closure} …
› }
› $response = call_user_func($call, $request, $next, ...$params);
›
arguments: {
$callback: array:2 [ …2]
...$args: {
app\Request {#29 …}
Closure($passable) {#43 …}
}
}
}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/Pipeline.php:85 {
think\Pipeline->think\{closure} …
› try {
› return $pipe($passable, $stack);
› } catch (Throwable | Exception $e) {
arguments: {
app\Request {#29 …}
Closure($passable) {#43 …}
}
}
/usr/share/nginx/html/img.szhulian.cn/vendor/thans/tp-jwt-auth/src/middleware/InjectJwt.php:14 {
thans\jwt\middleware\InjectJwt->handle(Request $request, $next) …
› (new JWTProvider($request))->init();
› $response = $next($request);
› return $response;
arguments: {
app\Request {#29 …}
}
}
thans\jwt\middleware\InjectJwt->handle() {}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/Middleware.php:134 {
think\Middleware->think\{closure} …
› }
› $response = call_user_func($call, $request, $next, ...$params);
›
arguments: {
$callback: array:2 [ …2]
...$args: {
app\Request {#29 …}
Closure($passable) {#43 …}
}
}
}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/Pipeline.php:85 {
think\Pipeline->think\{closure} …
› try {
› return $pipe($passable, $stack);
› } catch (Throwable | Exception $e) {
arguments: {
app\Request {#29 …}
Closure($passable) {#43 …}
}
}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/think-trace/src/TraceDebug.php:71 {
think\trace\TraceDebug->handle($request, Closure $next) …
›
› $response = $next($request);
›
arguments: {
app\Request {#29 …}
}
}
think\trace\TraceDebug->handle() {}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/Middleware.php:134 {
think\Middleware->think\{closure} …
› }
› $response = call_user_func($call, $request, $next, ...$params);
›
arguments: {
$callback: array:2 [ …2]
...$args: {
app\Request {#29 …}
Closure($passable) {#43 …}
}
}
}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/Pipeline.php:85 {
think\Pipeline->think\{closure} …
› try {
› return $pipe($passable, $stack);
› } catch (Throwable | Exception $e) {
arguments: {
app\Request {#29 …}
Closure($passable) {#43 …}
}
}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/Pipeline.php:66 {
think\Pipeline->then(Closure $destination) …
›
› return $pipeline($this->passable);
› }
arguments: {
app\Request {#29 …}
}
}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/Http.php:199 {
think\Http->runWithRequest(Request $request) …
› return $this->dispatchToRoute($request);
› });
› }
arguments: {
$destination: Closure($request) {#19 …}
}
}
/usr/share/nginx/html/img.szhulian.cn/vendor/topthink/framework/src/think/Http.php:162 {
think\Http->run(Request $request = null): Response …
› try {
› $response = $this->runWithRequest($request);
› } catch (Throwable $e) {
arguments: {
$request: app\Request {#29 …}
}
}
/usr/share/nginx/html/img.szhulian.cn/public/index.php:20 {
›
› $response = $http->run();
›
}
}
}