Update entrypoint.sh
Browse files- entrypoint.sh +40 -10
entrypoint.sh
CHANGED
|
@@ -151,39 +151,69 @@ echo "=== check.php created ==="
|
|
| 151 |
cat > /app/www/public/rtest.php <<'PHPEOF'
|
| 152 |
<?php
|
| 153 |
header('Content-Type: text/plain; charset=utf-8');
|
| 154 |
-
echo "=== Route Test ===\n\n";
|
| 155 |
|
| 156 |
-
// Back up original server vars
|
| 157 |
$orig = $_SERVER;
|
| 158 |
|
| 159 |
-
// Simulate /login request
|
| 160 |
$_SERVER['REQUEST_URI'] = '/login';
|
| 161 |
$_SERVER['REQUEST_METHOD'] = 'GET';
|
| 162 |
$_SERVER['SCRIPT_NAME'] = '/index.php';
|
|
|
|
|
|
|
| 163 |
$_SERVER['QUERY_STRING'] = '';
|
| 164 |
$_SERVER['HTTPS'] = 'off';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 165 |
unset($_SERVER['argv']);
|
| 166 |
|
| 167 |
try {
|
| 168 |
require dirname(__DIR__) . '/vendor/autoload.php';
|
| 169 |
$app = new \think\App(dirname(__DIR__));
|
| 170 |
-
$app->debug = true;
|
| 171 |
$http = $app->http;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 172 |
$response = $http->run();
|
| 173 |
-
|
| 174 |
-
echo "
|
| 175 |
-
echo "
|
| 176 |
echo "Headers:\n";
|
| 177 |
foreach ($response->getHeader() as $k => $v) {
|
| 178 |
echo " $k: $v\n";
|
| 179 |
}
|
| 180 |
-
echo "Content (" . strlen($response->getContent()) . " bytes):\n";
|
| 181 |
-
|
| 182 |
} catch (\Throwable $e) {
|
| 183 |
echo "EXCEPTION: " . get_class($e) . ": " . $e->getMessage() . "\n";
|
|
|
|
| 184 |
echo $e->getTraceAsString() . "\n";
|
| 185 |
}
|
| 186 |
-
// Restore
|
| 187 |
$_SERVER = $orig;
|
| 188 |
PHPEOF
|
| 189 |
chown nginx:nginx /app/www/public/rtest.php 2>/dev/null || true
|
|
|
|
| 151 |
cat > /app/www/public/rtest.php <<'PHPEOF'
|
| 152 |
<?php
|
| 153 |
header('Content-Type: text/plain; charset=utf-8');
|
|
|
|
| 154 |
|
|
|
|
| 155 |
$orig = $_SERVER;
|
| 156 |
|
|
|
|
| 157 |
$_SERVER['REQUEST_URI'] = '/login';
|
| 158 |
$_SERVER['REQUEST_METHOD'] = 'GET';
|
| 159 |
$_SERVER['SCRIPT_NAME'] = '/index.php';
|
| 160 |
+
$_SERVER['SCRIPT_FILENAME'] = '/app/www/public/index.php';
|
| 161 |
+
$_SERVER['PHP_SELF'] = '/index.php';
|
| 162 |
$_SERVER['QUERY_STRING'] = '';
|
| 163 |
$_SERVER['HTTPS'] = 'off';
|
| 164 |
+
$_SERVER['PATH_INFO'] = '';
|
| 165 |
+
$_SERVER['ORIG_PATH_INFO'] = '';
|
| 166 |
+
$_SERVER['DOCUMENT_ROOT'] = dirname(__DIR__) . '/public';
|
| 167 |
+
$_SERVER['SERVER_NAME'] = 'localhost';
|
| 168 |
+
$_SERVER['SERVER_PORT'] = '8081';
|
| 169 |
+
$_SERVER['HTTP_HOST'] = 'localhost:8081';
|
| 170 |
+
$_SERVER['REMOTE_ADDR'] = '127.0.0.1';
|
| 171 |
unset($_SERVER['argv']);
|
| 172 |
|
| 173 |
try {
|
| 174 |
require dirname(__DIR__) . '/vendor/autoload.php';
|
| 175 |
$app = new \think\App(dirname(__DIR__));
|
|
|
|
| 176 |
$http = $app->http;
|
| 177 |
+
|
| 178 |
+
// 1. Show pathinfo resolution
|
| 179 |
+
echo "=== Pathinfo ===\n";
|
| 180 |
+
$req = $app->make('request', [], true);
|
| 181 |
+
echo "PATH_INFO: " . var_export($req->server('PATH_INFO'), true) . "\n";
|
| 182 |
+
echo "ORIG_PATH_INFO: " . var_export($req->server('ORIG_PATH_INFO'), true) . "\n";
|
| 183 |
+
echo "REQUEST_URI: " . var_export($req->server('REQUEST_URI'), true) . "\n";
|
| 184 |
+
echo "SCRIPT_NAME: " . var_export($req->server('SCRIPT_NAME'), true) . "\n";
|
| 185 |
+
echo "PHP_SELF: " . var_export($req->server('PHP_SELF'), true) . "\n";
|
| 186 |
+
echo "pathinfo(): " . $req->pathinfo() . "\n";
|
| 187 |
+
echo "baseUrl(): " . $req->baseUrl() . "\n";
|
| 188 |
+
echo "baseFile(): " . $req->baseFile() . "\n\n";
|
| 189 |
+
|
| 190 |
+
// 2. List registered routes BEFORE dispatch
|
| 191 |
+
echo "=== Routes ===\n";
|
| 192 |
+
$routeService = $app->make('route');
|
| 193 |
+
$rules = $routeService->getRuleList();
|
| 194 |
+
echo "Total route rules: " . count($rules) . "\n";
|
| 195 |
+
foreach ($rules as $r) {
|
| 196 |
+
echo " {$r['method']} {$r['rule']} -> {$r['route']}\n";
|
| 197 |
+
}
|
| 198 |
+
echo "\n";
|
| 199 |
+
|
| 200 |
+
// 3. Now run the dispatch
|
| 201 |
+
echo "=== Dispatch /login ===\n";
|
| 202 |
$response = $http->run();
|
| 203 |
+
|
| 204 |
+
echo "Code: " . $response->getCode() . "\n";
|
| 205 |
+
echo "Class: " . get_class($response) . "\n";
|
| 206 |
echo "Headers:\n";
|
| 207 |
foreach ($response->getHeader() as $k => $v) {
|
| 208 |
echo " $k: $v\n";
|
| 209 |
}
|
| 210 |
+
echo "Content (" . strlen($response->getContent()) . " bytes): " . substr($response->getContent(), 0, 500) . "\n";
|
| 211 |
+
|
| 212 |
} catch (\Throwable $e) {
|
| 213 |
echo "EXCEPTION: " . get_class($e) . ": " . $e->getMessage() . "\n";
|
| 214 |
+
echo "File: " . $e->getFile() . ":" . $e->getLine() . "\n";
|
| 215 |
echo $e->getTraceAsString() . "\n";
|
| 216 |
}
|
|
|
|
| 217 |
$_SERVER = $orig;
|
| 218 |
PHPEOF
|
| 219 |
chown nginx:nginx /app/www/public/rtest.php 2>/dev/null || true
|