BossBey File Manager
PHP:
8.2.30
OS:
Linux
User:
imagivibe
Root
/
home
/
imagivibe
/
www
/
app.imagivibe.com
/
vendor
/
laravel
/
octane
/
bin
📤 Upload
📝 New File
📁 New Folder
Close
Editing: frankenphp-worker.php
<?php use Laravel\Octane\ApplicationFactory; use Laravel\Octane\FrankenPhp\FrankenPhpClient; use Laravel\Octane\RequestContext; use Laravel\Octane\Stream; use Laravel\Octane\Worker; use Symfony\Component\HttpFoundation\Response; if ((! ($_SERVER['FRANKENPHP_WORKER'] ?? false)) || ! function_exists('frankenphp_handle_request')) { echo 'FrankenPHP must be in worker mode to use this script.'; exit(1); } ignore_user_abort(true); $basePath = require __DIR__.'/bootstrap.php'; /* |-------------------------------------------------------------------------- | Start The Octane Worker |-------------------------------------------------------------------------- | | Next we will start the Octane worker, which is a long running process to | handle incoming requests to the application. This worker will be used | by FrankenPHP to serve an entire Laravel application at high speed. | */ $frankenPhpClient = new FrankenPhpClient(); $worker = tap(new Worker( new ApplicationFactory($basePath), $frankenPhpClient ))->boot(); $requestCount = 0; $debugMode = $_ENV['APP_DEBUG'] ?? $_SERVER['APP_DEBUG'] ?? 'false'; $maxRequests = $_ENV['MAX_REQUESTS'] ?? $_SERVER['MAX_REQUESTS'] ?? 1000; $requestMaxExecutionTime = $_ENV['REQUEST_MAX_EXECUTION_TIME'] ?? $_SERVER['REQUEST_MAX_EXECUTION_TIME'] ?? null; if (PHP_OS_FAMILY === 'Linux' && ! is_null($requestMaxExecutionTime)) { set_time_limit((int) $requestMaxExecutionTime); } try { $handleRequest = static function () use ($worker, $frankenPhpClient, $debugMode) { try { [$request, $context] = $frankenPhpClient->marshalRequest(new RequestContext()); $worker->handle($request, $context); } catch (Throwable $e) { if ($worker) { report($e); } $response = new Response( $debugMode === 'true' ? (string) $e : 'Internal Server Error', 500, [ 'Status' => '500 Internal Server Error', 'Content-Type' => 'text/plain', ], ); $response->send(); Stream::shutdown($e); } }; while ($requestCount < $maxRequests && frankenphp_handle_request($handleRequest)) { $requestCount++; } } finally { $worker?->terminate(); gc_collect_cycles(); }
Save
Cancel