2013-07-25 3 views
0

PDFKit을 제 작업 환경에서 작동 시키려고 수 시간 동안 연구했습니다. 모든 것이 개발 단계에서 잘 작동하고 "종류"는 제작 서버에서 작동합니다.wkhtmltopdf (with pdfkit) 우분투에 설치되었지만 Rails에서 작동하지 않습니다.

  • Nginx/Passenger가있는 64 비트 우분투 서버를 실행 중입니다.
  • 나는 성공적 wkhtmltopdf google.com public/test5.pdf를 사용하여 내 웹 루트에서 PDF를 만들 수 있습니다 - 그래서 내가 다음 file = kit.to_file('public/test.pdf')kit = PDFKit.new('http://google.com')을 실행할 수있는 I가 성공적으로 rails console를 사용하여 PDFKit를 사용하여 PDF를 생성 할 수 있습니다 wkhtmltopdf가 설치되어 있는지 알고
  • 작업 - 그래서에서 최소한 레일즈 콘솔에서 PDFKit을 성공적으로 실행할 수 있다는 것을 알고 있습니다.

그러나 실제 웹 사이트에서는 작동하지 않습니다. URL (개발 모드에서 작동하는 URL)을 방문하면 http://staging.myapp.com/tours/5/print_tour.pdf "죄송합니다.하지만 문제가 발생했습니다"오류가 발생합니다.

  • 랙 : 내 여객 오류 로그는이 표시/홈// MyApp를/현재 배포 : 없음 같은 파일 또는 디렉토리 -
  • 을 wkhtmltopdf 번들 간부를, 나는 내 웹 루트에서 bundle exec which wkhtmltopdf 벌금을 실행할 수 있습니까? 레일 콘솔에서 PDFKit을처럼 내가 wkhtmltopdf으로 난처한 상황에 빠진거야

는 명령 줄에서 잘 실행하지만, Nginx의/여객에서 페이지를 제공 할 때 어떻게 든 뭔가 나누기. 도움! :-)

+0

위와 비슷한 단계를 사용하여 wkhtmltopdf를 설치했습니다. 설치는 잘되었지만 갖고있는 문제는 해결되지 않습니다. http://wingdspur.com/2012/12/installing-wkhtmltopdf-on-ubuntu/ – FireDragon

+0

'xvfb' 모드에서'wkhtmltopdf'이 시작되었습니다. – Viren

+0

@Viren xvfb 모드로 실행되는지 어떻게 알 수 있습니까? 내가 어떻게 말할 수 있는지 아니? 그리고 이것은 wkhtmltopdf를 실행하는 것까지 무엇을 의미합니까? 내가 말할 수있는 것은 wkhtmltopdf가 루트 레일 디렉토리에있을 때 명령 행에서 잘 동작한다는 것이다. 감사! – FireDragon

답변

1

wkhtmltopdf가 반환하는 경로는 개발 환경의 경로와 다릅니다.

# config/initializers/pdfkit.rb 
PDFKit.configure do |config| 
    config.wkhtmltopdf = '/path/to/wkhtmltopdf' 
    # config.root_url = "http://staging.myapp.com" # Use only if your external hostname is unavailable on the server. 
end 

경우 :

PDFkit는 해당 위치에 wkhtmlpdf 바이너리를 설치하지 않은, 그래서 만약 wkhtmlpdf은 당신이 그렇게이 같은 초기화에 경로를 지정해야합니다,/usr/local/bin에있을 것으로 예상 당신의 문제는 PDFkit이 서버의 잘못된 경로에서 wkhtmltopdf를 호출하려고 시도하는 것과 관련이 없습니다. wicked_pdf와 같은 다른 보석이 wkhtmltopdf를 제대로 사용할 수 있는지 보려고 했습니까?

+0

나는이 일을하고 정확히 무슨 일이 일어나고 있는지 확실하지 않습니다. 문제는 몇 가지 문제가있어 해독하기가 혼란 스러웠습니다. 첫째로, @wingdspur, 어떤 이유로 나의 설치는'/ usr/local/bin/wkhtmltopdf' 대신에'usr/bin/wkhtmltopdf'를 사용하고 있습니다. 그러나 simlink를 만들어서 "실제"실행 파일을 usr/local에 넣었습니다. 둘째, 실행 파일이 발견 된 경우에도 이니셜 라이저 파일을 작성하여 오버라이드를 적용해야했습니다. 자세한 내용은 https://github.com/pdfkit/pdfkit/issues/82 링크를 참조하십시오. 셋째,/log/dir에있는 올바른 로그 파일을보고 오류를 확인해야했습니다. – FireDragon