2013-07-09 14 views
14

Próbuję użyć wicked_pdf na moim serwerze prod ale utrzymuje failling:wicked_pdf nie działa na Ubuntu Serwer: wkhtmltopdf: nie można połączyć się z X serwerem

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' 

Starałem się śledzić tę odpowiedź: wkhtmltopdf: cannot connect to X server ale to nadal nie działa.

Odpowiedz

15

Ten post pomógł mi rozwiązać mój problem: http://www.stormconsultancy.co.uk/blog/development/generating-pdfs-in-rails-with-pdfkit-and-deploying-to-a-server/

Jestem odtwarzając tutaj krok od tego postu, który pomógł mi, aby go zainstalować:

# 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 

też utworzyć inicjatora do opowiedzenia do pdfKit, gdzie to jest, więc ta metoda jest dla niegodziwych PDF i PDF Kit.

+0

To zadziałało dla mnie. Musiałem dodać następujące dane do pliku initializer/wicked_pdf.rb, aby go uruchomić: WickedPdf.config = { : exe_path => '/ path/to/wkhtmltopdf' } – asprotte

+1

To był mój problem, Musiał być w wersji 64-bitowej –

+0

Ta odpowiedź działa, jak mówi komentarz, tylko w wersji 64-bitowej. – Francisco

8
  1. Sprawdź, czy masz zainstalowane xvfb lub zainstalować go za pomocą apt-get install xvfb.

  2. Utwórz plik o nazwie wkhtmltopdf.sh i dodać następujące:

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

    zmienić wymiary (640x480x16) do równą wirtualny ekran parametry chcesz go naśladować.

  3. Przesuń skrypt do /usr/bin i ustawić uprawnienia:

    sudo chmod a+x /usr/bin/wkhtmltopdf.sh 
    
  4. Opcjonalnie można dodać link symboliczny w katalogu projektu:

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

Zobacz this i this w celach informacyjnych.

+1

Wygląda na to, można to zrobić bez xvfb – Syl

11

Rozwiązano ten problem w tym bieżnikiem https://stackoverflow.com/a/34947479/5320149

znalazłem sposobu, aby rozwiązać ten problem bez fałszywego serwera X. W najnowszej wersji wkhtmltopdf nie trzeba X serwera do pracy, ale nie do oficjalnych repozytoriów Linuksa.

Rozwiązanie dla 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 

Rozwiązanie dla 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 
+0

Ta odpowiedź zadziałała tylko w 32-bitowej wersji Ubuntu. W 64-bitowym znaleziono wiele problemów podczas wydawania polecenia 'sudo dpkg -i wkhtmltox-0.12.2_linux-trusty-i386.deb'A – Francisco

+0

@Francisco będziesz musiał użyć pakietu 64-bitowego 'http: // download.gna.org/wkhtmltopdf/0.12/0.12.2/wkhtmltox-0.12.2_linux-trusty-amd64.deb' – tobygriffin

+0

Dzięki @tobygriffin nadal Muszę naprawić serwer testowy, więc daję mu szansę. – Francisco

Powiązane problemy