[英]Magento 2 - Fatal error: Uncaught exception 'InvalidArgumentException'
[英]Slim framework Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Cannot create LogWriter
我最近開始使用Slim框架。 我目前正在嘗試使用中間件進行身份驗證。 這是調用中間件的地方:
$app->post('/profile', 'authenticate', function () {
// code here
}
這是我的中間件負責身份驗證的地方:
function authenticate(\Slim\Route $route) {
// Getting request headers
$headers = apache_request_headers();
$response = array();
$app = \Slim\Slim::getInstance();
// Verifying Authorization Header
if (isset($headers['Authorization'])) {
$db = new DbHandler();
// get the api key
$api_key = $headers['Authorization'];
// validating api key
if (!$db->isValidApiKey($api_key)) {
// api key is not present in users table
$response["error"] = true;
$response["message"] = "Access Denied. Invalid Api key";
echoRespnse(401, $response);
$app->stop();
} else {
global $user_id;
// get user primary key id
$user_id = $db->getUserId($api_key);
}
} else {
// api key is missing in header
$response["error"] = true;
$response["message"] = "Api key is misssing";
echoRespnse(400, $response);
$app->stop();
}
};
我嘗試POST調用時收到此錯誤。 其他不需要身份驗證的調用都能正常工作
致命錯誤:未捕獲的異常'InvalidArgumentException',消息'無法創建LogWriter。 無效的資源句柄。' 在D:\\ Liftmo \\ Liftmo.com \\ api \\ Slim \\ LogWriter.php:60堆棧跟蹤:#0 D:\\ Liftmo \\ Liftmo.com \\ api \\ Slim \\ Slim.php(191):Slim \\ LogWriter - > __ construct (false)#1 D:\\ Liftmo \\ Liftmo.com \\ api \\ Slim \\ Helper \\ Set.php(228):Slim \\ Slim-> Slim {closure}(Object(Slim \\ Helper \\ Set))#2 D: \\ Liftmo \\ Liftmo.com \\ api \\ Slim \\ Helper \\ Set.php(88):Slim \\ Helper \\ Set-> Slim \\ Helper {closure}(對象(Slim \\ Helper \\ Set))#3 D:\\ Liftmo \\ Liftmo.com \\ api \\ Slim \\ Helper \\ Set.php(185):Slim \\ Helper \\ Set-> get('logWriter')#4 D:\\ Liftmo \\ Liftmo.com \\ api \\ Slim \\ Slim.php(196) ):Slim \\ Helper \\ Set-> offsetGet('logWriter')#5 D:\\ Liftmo \\ Liftmo.com \\ api \\ Slim \\ Helper \\ Set.php(228):Slim \\ Slim-> Slim {closure}(Object (Slim \\ Helper \\ Set))#6 D:\\ Liftmo \\ Liftmo.com \\ api \\ Slim \\ Helper \\ Set.php(88):Slim \\ Helper \\ Set-> Slim \\ Helper {closure}(對象(Slim \\ Helper \\ Set))#7 D:\\ Liftmo \\ Liftmo.com \\ api \\ Slim \\ Slim.php(234):Slim \\ Helper \\ Set-> get('log')#8 D:\\ Liftmo \\ Liftmo.com \\ api \\ Slim \\ Slim.php(402):Slim \\ Slim - > __ get('log')在第60行的D:\\ Liftmo \\ Liftmo.com \\ api \\ Slim \\ LogWriter.php
我逐行完成代碼,似乎問題出在線上
$db = new DbHandler();
我很困惑,因為我的代碼中的其他地方都沒有使用該類。
require_once 'include/DbHandler.php'; // DbHandler included here at the top
如果有人可以幫助我,我真的很感激。 我從這里接受了認證。 字面上無法在任何地方找到此問題。 使用Google App Engine和Cloud SQL進行部署。
查看問題評論:
使用Google App Engine無法對php://stderr
進行寫訪問。
根據https://cloud.google.com/appengine/articles/logging,/ /var/log/app_engine/custom_logs
提供了寫訪問權限。 (沒試過自己)
我在我的應用程序中遇到了同樣的問題,我發現這兩個提示有很多幫助:
在存儲在應用根目錄中的php.ini文件中設置google_app_engine.disable_readonly_filesystem = 1屬性。 參考 - > https://gae-php-tips.appspot.com/2015/03/
使用不同於deafault的方法來處理日志記錄,以便能夠看到代碼或數據庫的哪個部分存在問題。 我找到了一個很好的建議: https : //leolutz.com/2014/11/slim-framework-on-google-app-engine/
希望能幫助到你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.