Como instalar o wkhtmltopdf em um baseado em linux (shared hosting) servidor web
-
20-09-2019 - |
Pergunta
Eu tentei de todas as maneiras para obter wkhtmltopdf instalado em nosso servidor web, mas infelizmente ele não está instalado.Eu não o acesso do usuário/bin, como afirmou em um tutorial sobre a instalação.
No servidor no public_html pasta é uma pasta de sub-rotina _vti_bin, Eu copiei o arquivo wkhtmltopdf-i386 a partir de wkhtmltopdf-0.9.1-estática-i386, mas eu não sou capaz de executá-lo.
Como instalar wkhtmltopdf em (shared hosting) servidor web e começar a trabalhar?
Solução
Consegui instalar com sucesso o WKHTMLTOPDF-AMD64 na minha conta de hospedagem compartilhada sem acesso root.
Aqui está o que eu fiz:
Baixou o binário estático relevante v0.10.0 daqui: http://code.google.com/p/wkhtmltopdf/downloads/list
Editar: o acima se moveu para aqui
via ssh no meu host compartilhado digitou o seguinte:
$ wget {relavant url to binary from link above}
$ tar -xvf {filename of above wget'd file}
Você terá o binário em seu host e poderá executá -lo independentemente de se estiver na/usr/bin/pasta ou não. (ou pelo menos eu pude)
Testar:
$ ./wkhtmltopdf-amd64 http://www.example.com example.pdf
- Note Lembre -se de que, se você está na pasta em que o executável está, provavelmente deve prefácio com
./
só pra ter certeza.
Trabalhou para mim de qualquer maneira
Outras dicas
Se você tem sudo
Acesso...
Ubuntu 14.04 / 15.04 / 18.04:
sudo apt-get install wkhtmltopdf
# or
sudo apt install wkhtmltopdf
Outros
Veja as outras respostas.
Se é o Ubuntu, então vá em frente com isso, já testado .:--
Primeiro, instalando dependências
sudo aptitude install openssl build-essential xorg libssl-dev
Para 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
Para 32Bits OS
wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.9-static-i386.tar.bz2
tar xvjf wkhtmltopdf-0.9.9-static-i386.tar.bz2
mv wkhtmltopdf-i386 /usr/local/bin/wkhtmltopdf
chmod +x /usr/local/bin/wkhtmltopdf
As chances são de que, sem acesso total a esse servidor (devido a uma conta hospedada), você terá problemas. Eu chegaria ao ponto de dizer que acho que é um empreendimento infrutífero-eles precisam bloquear servidores em ambientes hospedados por um bom motivo.
Ligue para sua empresa de hospedagem e faça a solicitação para instalá-la, mas não espere uma boa resposta-eles normalmente não instalam itens muito personalizados para usuários únicos, a menos que haja um bom motivo (correções de bugs, por exemplo).
Por fim, dependendo de quão familiar você está com a administração do servidor e o que você está pagando pela hospedagem de servidores agora considere algo como http://www.slicehost.com. US $ 20 por mês lhe darão um servidor da Web de baixa qualidade (256 RAM) e você pode instalar o que quiser. No entanto, se você estiver executando vários sites ou tiver carga pesada, o custo aumentará, pois você precisar de servidores maiores.
GL!
Debian 8 Jessie
Isso funcionasudo apt-get install wkhtmltopdf
Coloque o executável wkhtmltopdf no servidor e chmod It +x.
Crie um script de shell executável Wrap.sh contendo:
#!/bin/sh
export HOME="$PWD"
export LD_LIBRARY_PATH="$PWD/lib/"
exec $@ 2>/dev/null
#exec $@ 2>&1 # debug mode
Faça o download dos objetos compartilhados necessários para essa arquitetura e coloque -os uma pasta A chamada "lib":
- lib/libfontconfig.so.1
- lib/libfontconfig.so.1.3.0
- lib/libfreetype.so.6
- lib/libfreetype.so.6.3.18
- lib/libx11.so.6 lib/libx11.so.6.2.0
- lib/libxau.so.6 lib/libxau.so.6.0.0
- lib/libxcb.so.1 lib/libxcb.so.1.0.0
- lib/libxcb-xlib.so.0
- lib/libxcb-xlib.so.0.0.0
- lib/libxdmcp.so.6
- lib/libxdmcp.so.6.0.0
- lib/libxext.so.6 lib/libxext.so.6.4.0
(Alguns deles são simplificadores)
… E você está pronto para ir:
./wrap.sh ./wkhtmltopdf-amd64 --page-size A4 --disable-internal-links --disable-external-links "http://www.example.site/" out.pdf
Se você tiver problemas de fonte, como quadrados para todos os personagens, defina explicitamente as fontes TrueType:
@font-face {
font-family:Trebuchet MS;
font-style:normal;
font-weight:normal;
src:url("http://www.yourserver.tld/fonts/Trebuchet_MS.ttf");
format(TrueType);
}
Lista de versões estáveis wkhtmltopdf: http://wkhtmltopdf.org/downloads.html
Instalando o wkhtmltopdf no Debian 8.2 (jessie) x64:
sudo apt-get install xfonts-75dpi
sudo apt-get install xfonts-base
sudo wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-jessie-amd64.deb
sudo dpkg -i wkhtmltox-0.12.2.1_linux-jessie-amd64.deb
Algumas coisas mudaram desde que as respostas superiores foram adicionadas. Eles costumavam malhar para mim, mas não mais, então eu tenho hackear um pouco e inventei a seguinte solução para Ubuntu 16.04. Para o Ubuntu 14.04, consulte o comentário na parte inferior da resposta. Desculpas se isso não funcionar para hospedagem compartilhada, mas parece que essa é a resposta Goto para as instruções de instalação WKHTMLTOPDF em geral.
# Install dependencies
apt-get install libfontconfig \
zlib1g \
libfreetype6 \
libxrender1 \
libxext6 \
libx11-6
# TEMPORARY FIX! SEE: https://github.com/wkhtmltopdf/wkhtmltopdf/issues/3001
apt-get install libssl1.0.0=1.0.2g-1ubuntu4.8
apt-get install libssl-dev=1.0.2g-1ubuntu4.8
# Download, extract and move binary in place
curl -L -o wkhtmltopdf.tar.xz https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
tar -xf wkhtmltopdf.tar.xz
mv wkhtmltox/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf
chmod +x /usr/local/bin/wkhtmltopdf
Teste:
wkhtmltopdf http://www.google.com google.pdf
Agora você deveria ter um arquivo chamado google.pdf
no diretório de trabalho atual.
Essa abordagem baixa o binário do site, o que significa que você pode usar a versão mais recente, em vez de confiar nos gerentes de pacotes para serem atualizados.
Observe que até hoje, minha solução inclui uma correção temporária para este bug. Sei que a solução não é realmente ótima, mas espero que possa ser removida em breve. Certifique -se de verificar o status do problema do Github vinculado para ver se a correção ainda é necessária quando você lê esta resposta!
Para o Ubuntu 14.04, você precisará fazer o downgrade para uma versão diferente do LIBSSL. Você pode Encontre as versões aqui. De qualquer forma, considere as implicações de rebaixar o LIBSSL antes de fazê -lo em qualquer servidor de produção.
Espero que isso ajude alguém!
Depois de tentar, abaixo do trabalho de comando para mim
cd ~
yum install -y xorg-x11-fonts-75dpi xorg-x11-fonts-Type1 openssl git-core fontconfig
wget https://downloads.wkhtmltopdf.org/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
tar xvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
mv wkhtmltox/bin/wkhtmlto* /usr/bin
Obrigado e cumprimentos
Jaiswar Vipin Kumar R.
Hospedagem compartilhada sem acesso ssh ou shell?
Aqui está como eu fiz isso;
- Visita https://wkhtmltopdf.org/downloads.html e baixe o lançamento estável apropriado para o Linux. Para o meu caso, escolhi 32 bits, que é wkhtmltox-0.12.4_linux-generic-i386.tar.xz
- Descompacte em uma pasta em sua unidade local.
- Carregue a pasta para public_html (ou qualquer local atenda à sua necessidade) usando um programa FTP, como qualquer outro (s) arquivo (s)
- Altere os caminhos binários no arquivo snappy.php para apontar os arquivos apropriados na pasta que você acabou de enviar. Bingo! Aí está. Você deve gerar arquivos PDF.
A versão 12.5 do WKHTMLTOPDF lista apenas os arquivos Deb em sua página de download agora. Sendo um usuário do Mac e não conhecendo muito o Linux ou quais foram os arquivos Deb, eu não podia usar as soluções publicadas.
Esta página me ajudou a superar a reviravolta conhecida de baixar um arquivo Deb: http://www.g-loaded.eu/2008/01/28/how-to-extract-rpm-or-deb-packages/
Basicamente, o que eu fiz foi:
- Baixado de https://wkhtmltopdf.org/downloads.html
- Descompactado o arquivo Deb.
- Datas.tar.xz descompactados
- Carregou o binário na pasta 'USR' descompactada da etapa 3 (USR/local/bin/wkhtmltopdf)
Então eu descobri que a função 'Exec' estava desativada no meu host. Portanto, verifique se você pode executar especificamente 'Exec' se estiver usando o PHP para executar isso. "Posso executar o binário wkhtmltopdf" não é específico o suficiente. Minha culpa.