Wicked_pdf не запускается на сервере Ubuntu: wkhtmltopdf: не удается подключиться к X-серверу - программирование
Подтвердить что ты не робот

Wicked_pdf не запускается на сервере Ubuntu: wkhtmltopdf: не удается подключиться к X-серверу

Я пытаюсь использовать wicked_pdf на моем prod-сервере, но он продолжает исправляться:

RuntimeError (Failed to execute:
"/usr/bin/wkhtmltopdf" -q        "file:////tmp/wicked_pdf20130709-23109-1adqx5g.html" "/tmp/wicked_pdf_generated_file20130709-23109-1ic5dbe.pdf"
Error: PDF could not be generated!
 Command Error: wkhtmltopdf: cannot connect to X server
):
  app/controllers/contrats_controller.rb:15:in `block (2 levels) in show'
  app/controllers/contrats_controller.rb:11:in `show'

Я попытался выполнить этот ответ: wkhtmltopdf: не удается подключиться к X-серверу, но он все равно не работает.

4b9b3361

Ответ 1

Этот пост помог мне решить мою проблему: http://www.stormconsultancy.co.uk/blog/development/generating-pdfs-in-rails-with-pdfkit-and-deploying-to-a-server/

Я воспроизводил здесь шаг из этого сообщения, который помог мне установить его:

# first, installing dependencies
sudo aptitude install openssl build-essential xorg libssl-dev

# for 64bits OS
wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.9-static-amd64.tar.bz2
tar xvjf wkhtmltopdf-0.9.9-static-amd64.tar.bz2
mv wkhtmltopdf-amd64 /usr/local/bin/wkhtmltopdf
chmod +x /usr/local/bin/wkhtmltopdf

Он также создает инициализатор, чтобы передать pdfKit, где он есть, поэтому этот метод предназначен для злого PDF и PDF Kit.

Ответ 2

Устранена эта проблема в этом протекте fooobar.com/questions/57718/...

Я нашел метод для решения этой проблемы без поддельного X-сервера. В новейшей версии wkhtmltopdf не нужен X-сервер для работы, но он не входит в официальные репозитории linux.

Решение для Ubuntu 14.04.4 LTS (trusty) i386

$ sudo apt-get install xfonts-75dpi
$ wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-i386.deb
$ sudo dpkg -i wkhtmltox-0.12.2.1_linux-trusty-i386.deb
$ wkhtmltopdf http://www.google.com test.pdf

Решение для Ubuntu 14.04.4 LTS (trusty) amd64

$ sudo apt-get install xfonts-75dpi
$ wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
$ sudo dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
$ wkhtmltopdf http://www.google.com test.pdf

Ответ 3

  • Убедитесь, что у вас установлен xvfb или установите его с помощью apt-get install xvfb.

  • Создайте файл с именем wkhtmltopdf.sh и добавьте следующее:

    xvfb-run -a -s "-screen 0 640x480x16" wkhtmltopdf $*
    

    Измените размеры (640x480x16), чтобы соответствовать любым параметрам виртуального экрана, которые вы хотите, чтобы имитировать.

  • Переместите оболочку script на /usr/bin и установите разрешения:

    sudo chmod a+x /usr/bin/wkhtmltopdf.sh
    
  • По желанию вы можете добавить символическую ссылку в каталог проекта:

    ln -s /usr/bin/wkhtmltopdf.sh wkhtmltopdf
    

См. this и this для справки.

Ответ 4

Вы должны скопировать его в каталог: /usr/local/bin, сделать его исполняемым и добавить символическую ссылку на wkhtmltopdf.sh, например:

1- команда:

sudo apt-get install wkhtmltopdf