php安装wkhtmltox,本地多版本php运到的坑

php安装wkhtmltox,本地多版本php运到的坑

正文

先讲一下php安装wkhtmltox扩展的流程

安装libwkhtmltox内核

安装libwkhtmltox (linux内核、Centos-6 .5-64bit)

rpm -ivh wkhtmltox-0.12.2.1_linux-centos6-amd64.rpm

提示找不到rpm命令,就装下rpm:sudo apt-get install rpm

下载wkhtmltox扩展

wget https://github.com/mreiferson/php-wkhtmltox/archive/master.zip
unzip master.zip /path/to/phpwkhtmltox/installation

或者直接从 https://github.com/mreiferson/php-wkhtmltox 下载zip包并解压

安装PHP wkhtmltox扩展

cd php-wkhtmltox-master  // php-wkhtmltox-master是wkhtmltox扩展解压后的目录
phpize
./configure
make && make install

在运行make命令时,报了关于一些php-wkhtmltox-master/phpwkhtmltox.c 代码中的警告和错误,如下:

php-wkhtmltox-master/phpwkhtmltox.c:177:13: error: too many arguments to function ‘zend_hash_get_current_key_ex’

查看终端的安装过程错误输出,发现使用的php库并不是当前使用的版本

In file included from /usr/include/php/20170718/Zend/zend.h:34:0,
                 from /usr/include/php/20170718/main/php.h:36,

而我当前使用的php扩展及Zend扩展如下:
在这里插入图片描述这里是我前面挖了个坑,我一开始安装的时php7,后面要跟线上项目相同,又安装了php5.6,结果运行时phpize的版本和配置并不是5.6,导致了安装时版本兼容问题。
解决方法,添加phpize5.6:

sudo apt-get install php5.6-dev

安装后,可找到/usr/bin/phpize5.6
重新进行安装编译

cd php-wkhtmltox-master
phpize5.6 --clean
phpize5.6
./configure --with-php-config=/usr/bin/php-config5.6
make && make install

安装过程中提示权限问题,切换到root下执行。
安装完后查看扩展,在/usr/lib/php/20131226,可看到phpwkhtmltox.so
修改php.ini,添加extension=phpwkhtmltox.so

简单测试html转image

public function convertHtmlToImage(){
        try{
            echo wkhtmltox_convert(
                'image',
                array(
                    'out' => 'test.jpg',
                    'in'  => 'http://www.baidu.com/'
                )
            );
        }catch (\Exception $e){
            print_r($e->getTrace());
        }
}

成功的话,会输出1,并看到图片。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值