首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

在 Linux 環境下使用 PHP 實現網站截圖功能完整指南

     編輯:PHP 綜合知識

前言

在 Web 開發中,經常需要將指定網頁生成圖片或 PDF。在 Linux 伺服器上,最常見且穩定的方案是結合 wkhtmltopdf(基於 Qt WebKit 的命令列工具)與 PHP 擴展 php-wkhtmltox。本文將詳細記錄從下載、編譯、安裝到 PHP 整合測試的完整流程,供開發者快速部署參考。

環境準備

  • 作業系統:CentOS / Ubuntu 等主流 Linux 發行版
  • PHP 版本:5.4 以上(範例使用 PHP 5.5,路徑為 /usr/local/php)
  • 權限:需具備 root 或 sudo 權限

步驟 1:下載 wkhtmltopdf

官方舊版下載點已遷移,建議從 GitHub Releases 獲取最新穩定版。以 0.12.6 為例:

wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.centos7.x86_64.rpm

若為 Debian/Ubuntu 系統,請下載對應的 .deb 包;或使用通用二進制包 wkhtmltox-0.12.6_linux-generic-amd64.tar.xz。

步驟 2:解壓與安裝

通用二進制包安裝(適用於所有發行版)

# 解壓
xz -d wkhtmltox-0.12.6_linux-generic-amd64.tar.xz
tar xvf wkhtmltox-0.12.6_linux-generic-amd64.tar

# 進入目錄查看結構
cd wkhtmltox
ls
# 輸出:bin  include  lib  share

複製庫文件與頭文件

# 複製共享庫
cp lib/libwkhtmltox.so* /usr/local/lib/

# 複製頭文件
cp -R include/wkhtmltox/ /usr/local/include/

# 更新動態鏈接器快取
ldconfig

步驟 3:安裝 PHP 擴展 php-wkhtmltox

# 下載源碼
cd /usr/local/src
wget https://github.com/mreiferson/php-wkhtmltox/archive/master.zip
unzip master.zip
cd php-wkhtmltox-master

# 編譯安裝
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

編譯成功後,會提示擴展安裝路徑,例如:/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/。

步驟 4:配置 PHP 載入擴展

echo "extension=phpwkhtmltox.so" >> /usr/local/php/etc/php.ini
# 重啟 PHP-FPM 生效
service php-fpm restart

步驟 5:功能測試

建立測試腳本 test_snapshot.php:

<?php
// 簡單測試:將網易首頁截圖保存為 test1.jpg
wkhtmltox_convert('image', array(
    'out' => 'test1.jpg',
    'in' => 'https://www.163.com/'
));
echo "截圖完成,檔案大小:" . filesize('test1.jpg') . " bytes";
?>

在瀏覽器或命令列執行,若當前目錄生成 test1.jpg 且可正常打開,即表示環境部署成功。

常見問題排查

  • 缺少字體導致中文亂碼:安裝中文字體包,如 yum install wqy-zenhei-fonts 或 apt-get install fonts-wqy-zenhei。
  • 權限不足:確保 PHP 進程有權讀寫輸出目錄,且能執行 wkhtmltoimage 二進制檔。
  • SSL 憑證錯誤:新增參數 'ignoreSslErrors' => true 或確保系統 CA 憑證最新。

延伸應用

除了截圖,wkhtmltox_convert 同樣支援生成 PDF(將第一參數改為 'pdf'),並可通過選項控制頁面大小、邊距、頁首頁尾等,滿足報表導出、發票生成等場景需求。

參考資源

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved