web-dev-qa-db-ja.com

wicked_pdfはUbuntuサーバーでは実行されません:wkhtmltopdf:Xサーバーに接続できません

私は私のprodサーバーでwicked_pdfを使おうとしていますが、失敗し続けます:

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サーバーに接続できません しかしそれでも機能しません。

14
Syl

この投稿は私の問題を解決するのに役立ちました: http://www.stormconsultancy.co.uk/blog/development/generate-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キット用です。

15
Syl

このトレッドでこの問題を解決しました https://stackoverflow.com/a/34947479/5320149

私は偽のXサーバーなしでこの問題を解決する方法を見つけました。 wkhtmltopdfの最新バージョンでは、作業にXサーバーは必要ありませんが、公式のLinuxリポジトリには必要ありません。

Ubuntu 14.04.4 LTSのソリューション(信頼できる)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のソリューション(信頼できる)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
11
PRIHLOP
  1. xvfbがインストールされていることを確認するか、apt-get install xvfbを使用してインストールします。

  2. wkhtmltopdf.shというファイルを作成し、以下を追加します。

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

    寸法(640x480x16)を変更して、エミュレートする仮想画面パラメーターに一致させます。

  3. シェルスクリプトを/usr/binに移動し、権限を設定します。

    Sudo chmod a+x /usr/bin/wkhtmltopdf.sh
    
  4. オプションで、プロジェクトディレクトリにシンボリックリンクを追加できます。

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

参考のために this および this を参照してください。

8
Arman H