Closed qdm12 closed 3 years ago
Hi,
I cannot reproduce the error, nor on my local setup nor using the demo app. The QR code I used has been generated using the same service with same values as your. So I guess it's a setup issue.
It could be a symlink issue. Can you try to recreate your storage symlink : https://github.com/Bubka/2FAuth/wiki/Q&A
You can find logs in ./storage/logs/
Ok, good to know.
Extra information:
If you have docker installed, you can run it with docker run -it --rm -p 8000:8000 qmcgaw/2fauth
and access it on http://localhost:8000 if you want to try.
Thanks!
EDIT: I'll investigate the logs thanks!
I get the logs
[2021-07-31 15:59:15] local.ERROR: Call to undefined function Zxing\imagecreatefromstring() {"userId":1,"exception":"[object] (Error(code: 0): Call to undefined function Zxing\\imagecreatefromstring() at /srv/vendor/khanamiryan/qrcode-detector-decoder/lib/QrReader.php:35)
[stacktrace]
#0 /srv/app/Http/Controllers/QrCodeController.php(49): Zxing\\QrReader->__construct('/srv/storage/ap...')
#1 [internal function]: App\\Http\\Controllers\\QrCodeController->decode(Object(Illuminate\\Http\\Request))
#2 /srv/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): call_user_func_array(Array, Array)
#3 /srv/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('decode', Array)
#4 /srv/vendor/laravel/framework/src/Illuminate/Routing/Route.php(239): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\QrCodeController), 'decode')
#5 /srv/vendor/laravel/framework/src/Illuminate/Routing/Route.php(196): Illuminate\\Routing\\Route->runController()
#6 /srv/vendor/laravel/framework/src/Illuminate/Routing/Router.php(685): Illuminate\\Routing\\Route->run()
#7 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#8 /srv/app/Http/Middleware/LogUserLastSeen.php(26): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#9 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\LogUserLastSeen->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#10 /srv/app/Http/Middleware/LogoutInactiveUser.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#11 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\LogoutInactiveUser->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#12 /srv/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41):
Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#13 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#14 /srv/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(44): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#15 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Auth\\Middleware\\Authenticate->handle(Object(Illuminate\\Http\\Request), Object(Closure), 'api')
#16 /srv/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(59): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))#17 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle(Object(Illuminate\\Http\\Request), Object(Closure), 60, '1')
#18 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#19 /srv/vendor/laravel/framework/src/Illuminate/Routing/Router.php(687): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#20 /srv/vendor/laravel/framework/src/Illuminate/Routing/Router.php(662): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#21 /srv/vendor/laravel/framework/src/Illuminate/Routing/Router.php(628): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#22 /srv/vendor/laravel/framework/src/Illuminate/Routing/Router.php(617): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#23 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#24 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#25 /srv/app/Http/Middleware/SetLanguage.php(20): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#26 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\SetLanguage->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#27 /srv/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#28 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\\Proxy\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#29 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#30 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#31 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#32 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#33 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#34 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#35 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(63): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#36 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#37 /srv/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#38 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(140): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#39 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(109): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#40 /srv/public/index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#41 {main}
"}
Any idea why that would be? Maybe a dependency issue on the QR reader??
imagecreatefromstring
is a function provided by the php gd
extension.
Do you have gd enabled?
EDIT: nop you don't:
# Install PHP and PHP system dependencies
RUN apt-get update && \
apt-get install -y \
php7.3 \
php7.3-sqlite3 php7.3-mysql \
php-xml && \
apt-get clean && \
rm -rf /var/cache/* /var/lib/apt/lists/*
Indeed installing php7.3-gd
completely solved it! I'll make a PR for a Docker image soon.
Indeed installing
php7.3-gd
completely solved it! I'll make a PR for a Docker image soon.
simple php7.3-gd installation did not solve the issue for me. am i doing something wrong?
@srijansaxena11 Maybe comment with you logs found in ./storage/logs?
@srijansaxena11 Maybe comment with you logs found in ./storage/logs?
Yes. sorry. Here is what I found. I might not be an expert so please guide if anything else is required:
`[2021-12-03 18:29:09] local.ERROR: Unable to guess the MIME type as no guessers are available (have you enabled the php_fileinfo extension?). {"userId":1,"exception":"[object] (Symfony\Component\Mime\Exception\LogicException(code: 0> [stacktrace]
"}`
Can you provide the result of php -m
in a terminal to confirm the fileinfo extension is missing in your env?
Can you provide the result of
php -m
in a terminal to confirm the fileinfo extension is missing in your env?
I am using docker container. how do i check in a container?
ok so I installed php7.3-cli
and it resolved the issue. thank you and apologies for the inconvenience.
You are welcome, glad it works 👍
@srijansaxena11 is php7.3-cli missing from the Docker image? We should add it if it's missing.
@srijansaxena11 is php7.3-cli missing from the Docker image? We should add it if it's missing.
i think so. because it wasnt working without me manually installing
Created #54 for it @Bubka
Describe the bug Error 500 when uploading picture file of QR code. Scanning the QR code with my computer webcam or using the advanced form both work.
To Reproduce
Expected behavior The file should not result in a 500 error.
Video recoding (600KB):
https://user-images.githubusercontent.com/15654980/127669881-586eff60-41de-4cc3-88d4-7bfa48ee19e2.mp4
Desktop (please complete the following information):
Additional context
My 2fauth runs on a Docker image I designed with nginx (config) + php-fpm. Someone else installed 2fauth on a Debian virtual machine (without Docker) and it resulted in the same exact issue (and we did not communicate much on how to set it up either). So I doubt this is a setup issue, except perhaps an Nginx config issue?
I also don't know where to find server error logs, maybe you could enlighten me on this one?
As a side note, I worked on a Docker image which fully works apart from this bug. I'll make a PR to the repo once this bug is fixed. I can also set it up to cross build for ARM machines which would solve a bunch of issues on this repo 😉