كيفية تثبيت WKHTMLTOPDF على خادم ويب قائم على Linux (استضافة مشتركة)

StackOverflow https://stackoverflow.com/questions/2273534

  •  20-09-2019
  •  | 
  •  

سؤال

لقد حاولت في جميع الطرق للحصول على wkhtmltopdf تم تثبيته على خادم الويب الخاص بنا ولكن للأسف لا يتم تثبيته. لا يمكنني الوصول إلى مجلد المستخدم/bin كما هو مذكور في برنامج تعليمي عند التثبيت.

على الخادم في public_html المجلد هناك مجلد فرعي _vti_bin, ، قمت بنسخ الملف wkhtmltopdf-i386 من عند wkhtmltopdf-0.9.1-static-i386, ، لكنني غير قادر على تنفيذها.

كيفية تثبيت wkhtmltopdf على (استضافة مشتركة) خادم الويب وجعله يعمل؟

هل كانت مفيدة؟

المحلول

لقد تمكنت من تثبيت WKHTMLTOPDF-AMD64 بنجاح على حساب الاستضافة المشترك دون الوصول إلى الجذر.

هذا ما فعلته:

تم تنزيل الثنائي الثنائي الثنائي ذو الصلة V0.10.0 من هنا: http://code.google.com/p/wkhtmltopdf/downloads/list

تحرير: ما سبق انتقل إلى هنا

عبر SSH على مضيفتي المشتركة ، كتب ما يلي:

$ wget {relavant url to binary from link above}
$ tar -xvf {filename of above wget'd file}

سيكون لديك بعد ذلك الثنائي على مضيفك وستتمكن من تشغيله بغض النظر عما إذا كان في مجلد/usr/bin/لا. (أو على الأقل تمكنت من ذلك)

لاختبار:

$ ./wkhtmltopdf-amd64 http://www.example.com example.pdf
  • لاحظ أنه إذا كنت في المجلد الذي يكون فيه القابل للتنفيذ ، فيجب عليك على الأرجح أن يسبقه ./ فقط للتأكد.

عملت لي على أي حال

نصائح أخرى

اذا كنت تمتلك sudo التمكن من...

Ubuntu 14.04 / 15.04 / 18.04:

sudo apt-get install wkhtmltopdf
# or
sudo apt install wkhtmltopdf

آحرون

انظر إلى الإجابات الأخرى.

إذا كان Ubuntu ثم انتقل إلى هذا ، تم اختباره بالفعل :-

أولاً ، تثبيت التبعيات

sudo aptitude install openssl build-essential xorg libssl-dev

لنظام التشغيل 64Bits

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

لـ 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

هناك احتمالات أنه من دون الوصول الكامل إلى هذا الخادم (نظرًا لكونك حسابًا مستضافًا) ، ستواجه مشاكل. سأذهب إلى حد القول إنني أعتقد أنه مسعى غير مثمر-يجب عليهم قفل الخوادم في البيئات المستضافة لسبب وجيه.

اتصل بشركة الاستضافة الخاصة بك وقدم الطلب إليهم لتثبيته ، ولكن لا تتوقع استجابة جيدة-فهي عادة لن تقوم بتثبيت عناصر مخصصة للغاية للمستخدمين المنفردين ما لم يكن هناك سبب وجيه حقًا (إصلاحات الأخطاء على سبيل المثال).

أخيرًا ، بناءً على مدى دراستك في إدارة الخادم وما تدفعه مقابل استضافة الخادم الآن ، فكر في شيء مثل http://www.slicehost.com. 20 دولارًا شهريًا سيحصل على خادم ويب منخفض الدرجة (256 ذاكرة الوصول العشوائي) ويمكنك تثبيت أي شيء تريده. ومع ذلك ، إذا كنت تقوم بتشغيل مواقع متعددة أو لديك تحميل ثقيل ، فسوف ترتفع التكلفة حيث تحتاج إلى خوادم أكبر.

ص!

ديبيان 8 جيسي
هذا يعملsudo apt-get install wkhtmltopdf

ضع wkhtmltopdf قابلة للتنفيذ على الخادم و chmod it +x.

قم بإنشاء برنامج نصي shell قابل للتنفيذ.

#!/bin/sh
export HOME="$PWD"
export LD_LIBRARY_PATH="$PWD/lib/"
exec $@ 2>/dev/null
#exec $@ 2>&1 # debug mode

تنزيل كائنات مشتركة مطلوبة لتلك الهندسة المعمارية ووضعها مجلد اسمه "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

(بعضهم من الارتباطات)

... وأنت مستعد للذهاب:

./wrap.sh ./wkhtmltopdf-amd64 --page-size A4 --disable-internal-links --disable-external-links "http://www.example.site/" out.pdf

إذا واجهت مشاكل الخط مثل المربعات لجميع الشخصيات ، فحدد خطوط 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);
}

قائمة الإصدارات المستقرة wkhtmltopdf: http://wkhtmltopdf.org/downloads.html

تثبيت WKHTMLTOPDF على 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

لقد تغيرت بعض الأشياء منذ إضافة الإجابات العليا. اعتادوا العمل من أجلي ، لكن ليس بعد الآن ، لذلك كنت أتجول قليلاً وتوصلت إلى الحل التالي أوبونتو 16.04. لأوبونتو 14.04 ، راجع التعليق في أسفل الإجابة. الاعتذارات إذا لم ينجح هذا في الاستضافة المشتركة ، ولكن يبدو أن هذا هو إجابة GOTO لتعليمات تثبيت WKHTMLTOPDF بشكل عام.

# 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

اختبره:

wkhtmltopdf http://www.google.com google.pdf

يجب أن يكون لديك الآن ملف اسمه google.pdf في دليل العمل الحالي.

يقوم هذا النهج بتنزيل الثنائي من موقع الويب ، مما يعني أنه يمكنك استخدام أحدث إصدار بدلاً من الاعتماد على مديري الحزم ليتم تحديثه.

لاحظ أنه اعتبارًا من اليوم ، يتضمن حلي إصلاحًا مؤقتًا لهذا الخطأ. أدرك أن الحل ليس رائعًا حقًا ، ولكن آمل أن يتم إزالته قريبًا. تأكد من التحقق من حالة مشكلة github المرتبطة لمعرفة ما إذا كان الإصلاح لا يزال ضروريًا عند قراءة هذه الإجابة!

بالنسبة إلى Ubuntu 14.04 ، ستحتاج إلى خفض التصنيف إلى إصدار مختلف من LIBSSL. تستطيع ابحث عن الإصدارات هنا. على أي حال ، تأكد من النظر في الآثار المترتبة على تقليل LIBSSL قبل القيام بذلك على أي خادم إنتاج.

آمل أن يساعد هذا شخص ما!

بعد المحاولة ، تعمل الأمر أدناه

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

مع الشكر و التقدير

جايسوار فيبين كومار ر.

الاستضافة المشتركة لا SSH أو شل الوصول؟

إليكم كيف فعلت ذلك.

  1. زيارة https://wkhtmltopdf.org/downloads.html وتنزيل الإصدار المستقر المناسب لـ Linux. لحالتي ، اخترت 32 بت وهو wkhtmltox-0.12.4_linux-generic-i386.tar.xz
  2. قم بفك الضغط على مجلد على محرك الأقراص المحلي.
  3. قم بتحميل المجلد إلى public_html (أو أي مكان يناسب حاجتك) باستخدام برنامج FTP تمامًا مثل أي ملف (ملفات) أخرى
  4. قم بتغيير المسارات الثنائية في ملف snappy.php لتوجيه الملفات المناسبة في المجلد الذي قمت بتحميله للتو. بنغو! هناك لديك. يجب أن تكون قادرًا على إنشاء ملفات PDF.

الإصدار 12.5 من WKHTMLTOPDF يسرد فقط ملفات DEB على صفحة التنزيل الخاصة بهم الآن. كوني مستخدم Mac وعدم معرفة الكثير من Linux أو ما هي ملفات Deb لم أستطع استخدام الحلول المنشورة.

ساعدتني هذه الصفحة في تجاوز تطور معرف لتنزيل ملف Deb: http://www.g-loaded.eu/2008/01/28/how-to-extract-rpm-or-debackages/

في الأساس ما فعلته هو:

  1. تم تنزيله من https://wkhtmltopdf.org/downloads.html
  2. فك ضغط ملف Deb.
  3. data.tar.xz غير مضغوط
  4. تم تحميله الثنائي في مجلد "USR" غير المدمج من الخطوة 3 (USR/Local/Bin/WKHTMLTOPDF)

ثم اكتشفت أن وظيفة "exec" قد تم تعطيلها على مضيفتي. لذا تأكد من أنه يمكنك تشغيل "exec" على وجه التحديد إذا كنت تستخدم PHP لتشغيل هذا. "هل يمكنني تشغيل WKHTMLTOPDF الثنائي" ليس محددًا بما فيه الكفاية. خطأي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top