laravel / cashier-mollie

MIT License
376 stars 63 forks source link

Dompdf failed to open stream for font #124

Closed pascallieverse closed 4 years ago

pascallieverse commented 4 years ago

When generating the invoice as a pdf with $invoice->pdf() it throws the following error: fopen(/var/www/html/vendor/dompdf/dompdf/lib/fonts/0f1d90ee1e41fa500b5bdd010be93c25.ufm): failed to open stream: Permission denied

I haven't modified the style of the invoice and the code worked before fine. I searched for some solutions and all I could find was to create a font folder inside the storage but that doesn't solve the problem for me.

Error log: `[2019-12-09 15:42:29] production.ERROR: fopen(/var/www/html/vendor/dompdf/dompdf/lib/fonts/0f1d90ee1e41fa500b5bdd010be93c25.ufm): failed to open stream: Permission denied {"exception":"[object] (ErrorException(code: 0): fopen(/var/www/html/vendor/dompdf/dompdf/lib/fonts/0f1d90ee1e41fa500b5bdd010be93c25.ufm): failed to open stream: Permission denied at /var/www/html/vendor/phenx/php-font-lib/src/FontLib/AdobeFontMetrics.php:45) [stacktrace]

0 [internal function]: Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2, 'fopen(/var/www/...', '/var/www/html/v...', 45, Array)

1 /var/www/html/vendor/phenx/php-font-lib/src/FontLib/AdobeFontMetrics.php(45): fopen('/var/www/html/v...', 'w+')

2 /var/www/html/vendor/phenx/php-font-lib/src/FontLib/TrueType/File.php(361): FontLib\AdobeFontMetrics->write('/var/www/html/v...', NULL)

3 /var/www/html/vendor/dompdf/dompdf/src/FontMetrics.php(212): FontLib\TrueType\File->saveAdobeFontMetrics('/var/www/html/v...')

4 /var/www/html/vendor/dompdf/dompdf/src/Css/Stylesheet.php(1537): Dompdf\FontMetrics->registerFont(Array, 'https://fonts.g...', NULL)

5 /var/www/html/vendor/dompdf/dompdf/src/Css/Stylesheet.php(1376): Dompdf\Css\Stylesheet->_parse_font_face('font-family: 'S...')

6 /var/www/html/vendor/dompdf/dompdf/src/Css/Stylesheet.php(388): Dompdf\Css\Stylesheet->_parse_css('@font-face {\

...')

7 /var/www/html/vendor/dompdf/dompdf/src/Dompdf.php(622): Dompdf\Css\Stylesheet->load_css_file('https://fonts.g...', 3)

8 /var/www/html/vendor/dompdf/dompdf/src/Dompdf.php(724): Dompdf\Dompdf->processHtml()

9 /var/www/html/vendor/laravel/cashier-mollie/src/Order/Invoice.php(460): Dompdf\Dompdf->render()

10 /var/www/html/app/Notifications/OrderInvoice.php(72): Laravel\Cashier\Order\Invoice->pdf()

11 /var/www/html/vendor/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php(51): App\Notifications\OrderInvoice->toMail(Object(App\Models\User))

12 /var/www/html/vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php(146): Illuminate\Notifications\Channels\MailChannel->send(Object(App\Models\User), Object(App\Notifications\OrderInvoice))

13 /var/www/html/vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php(105): Illuminate\Notifications\NotificationSender->sendToNotifiable(Object(App\Models\User), '8e6102ae-f666-4...', Object(App\Notifications\OrderInvoice), 'mail')

14 /var/www/html/vendor/laravel/framework/src/Illuminate/Support/Traits/Localizable.php(19): Illuminate\Notifications\NotificationSender->Illuminate\Notifications\{closure}()

15 /var/www/html/vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php(107): Illuminate\Notifications\NotificationSender->withLocale(NULL, Object(Closure))

16 /var/www/html/vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php(79): Illuminate\Notifications\NotificationSender->sendNow(Object(Illuminate\Database\Eloquent\Collection), Object(App\Notifications\OrderInvoice))

17 /var/www/html/vendor/laravel/framework/src/Illuminate/Notifications/ChannelManager.php(39): Illuminate\Notifications\NotificationSender->send(Object(Illuminate\Database\Eloquent\Collection), Object(App\Notifications\OrderInvoice))

18 /var/www/html/vendor/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php(18): Illuminate\Notifications\ChannelManager->send(Object(App\Models\User), Object(App\Notifications\OrderInvoice))

19 /var/www/html/app/Listeners/OrderInvoiceAvailableListener.php(31): App\Models\User->notify(Object(App\Notifications\OrderInvoice))

20 [internal function]: App\Listeners\OrderInvoiceAvailableListener->handle(Object(Laravel\Cashier\Events\OrderInvoiceAvailable))

21 /var/www/html/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(366): call_user_func_array(Array, Array)

22 /var/www/html/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(196): Illuminate\Events\Dispatcher->Illuminate\Events\{closure}('Laravel\\Cashier...', Array)

23 /var/www/html/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(261): Illuminate\Events\Dispatcher->dispatch('Laravel\\Cashier...')

24 /var/www/html/vendor/laravel/cashier-mollie/src/Order/OrderInvoiceSubscriber.php(17): Illuminate\Support\Facades\Facade::__callStatic('dispatch', Array)

25 [internal function]: Laravel\Cashier\Order\OrderInvoiceSubscriber->handleFirstPaymentPaid(Object(Laravel\Cashier\Events\FirstPaymentPaid))

26 /var/www/html/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(366): call_user_func_array(Array, Array)

27 /var/www/html/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(196): Illuminate\Events\Dispatcher->Illuminate\Events\{closure}('Laravel\\Cashier...', Array)

28 /var/www/html/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(261): Illuminate\Events\Dispatcher->dispatch('Laravel\\Cashier...')

29 /var/www/html/vendor/laravel/cashier-mollie/src/Http/Controllers/FirstPaymentWebhookController.php(27): Illuminate\Support\Facades\Facade::__callStatic('dispatch', Array)

30 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(48): Laravel\Cashier\Http\Controllers\FirstPaymentWebhookController->handleWebhook(Object(Illuminate\Http\Request))

31 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(219): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(Laravel\Cashier\Http\Controllers\FirstPaymentWebhookController), 'handleWebhook')

32 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(176): Illuminate\Routing\Route->runController()

33 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(681): Illuminate\Routing\Route->run()

34 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))

35 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))

36 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(683): Illuminate\Pipeline\Pipeline->then(Object(Closure))

37 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(658): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))

38 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(624): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))

39 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(613): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))

40 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(177): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))

41 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))

42 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))

43 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))

44 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))

45 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))

46 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))

47 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))

48 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(62): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))

49 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))

50 /var/www/html/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))

51 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Fideloper\Proxy\TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure))

52 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))

53 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(152): Illuminate\Pipeline\Pipeline->then(Object(Closure))

54 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(117): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))

55 /var/www/html/public/index.php(55): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))

56 {main}

"}`

sandervanhooft commented 4 years ago

Hi @pascallieverse,

Seems to be a permission issue / issue with DomPdf, not an issue with Cashier.

I'd recommend checking the permission settings (chmod etc.). If the permissions seem ok contact dompdf support.

pascallieverse commented 4 years ago

Was indeed a problem with DomPdf and permissions on a vendor file, strange because the build process wassnt changed and it worked before.. Thanks.

sandervanhooft commented 4 years ago

Happy it worked out, enjoy!