ошибка при попытке создать PDF с KNP Snappy (но только в одном месте) - PullRequest
0 голосов
/ 08 ноября 2018

В проекте symfony4 я использую KNP Snappy с wkhtmltopdf для генерации pdf-файлов. Это работает на моем компьютере и на моем сервере. На моем сервере я создал папку с именем dev, где я могу протестировать свой проект (я создал там копию). Когда в моем тестовом проекте я установил файл .env на prod, все работало нормально, включая генерацию pdf-файлов.

Вот странная вещь: на моем реальном производственном сайте (в папке выше) весь код в точности совпадает с проектом в «папке dev», однако всякий раз, когда я пытаюсь сгенерировать pdf-файл, я получаю старый добрый 500 Internal server error.

Это мой конфигурационный файл knp_snappy.yaml :

knp_snappy:
pdf:
    enabled:    true
    binary:     '%kernel.root_dir%/../vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64'
    options:    []
image:
    enabled:    true
    binary:     '%env(WKHTMLTOIMAGE_PATH)%'
    options:    []

Это должно просто работать, но это не так. Я пытался изменить файлы, изменить пути, но не повезло. Может ли это быть проблема с разрешением папки? Что еще может отличаться между этими двумя проектами, поскольку код точно такой же? Мне трудно решить эту проблему, потому что я не могу воспроизвести проблему при тестировании и не могу ничего узнать об ошибке. Любая помощь очень ценится.

Обновление того, что я пробовал до сих пор: Я переустановил зависимости. Я изменил разрешения для папки tmp, убедившись, что PDF-файл, который я пытался сгенерировать, не содержит ничего. Я очистил кеш (очевидно), но все равно ошибка.

1 Ответ

0 голосов
/ 08 ноября 2018

Мне удалось найти проблему. Файл wkhtmltopdf-amd64 не имеет необходимых прав доступа. Мне нужно было разрешение на выполнение, поэтому я установил разрешения для rwxrw-r-- (0764), и теперь все это работает. По какой-то причине в папке dev для файла DID установлены разрешения на выполнение.

...