LMLPHP后院

PHP扩展exif源代码编译安装教程技术

maybe yes 发表于 2016-12-02 23:35

PHP 的 exif 扩展可以很方便的读取相机拍摄的图片的原始信息,此扩展的函数只有五个,但是却单独的做成了一个扩展。此扩展在 pecl 库 images 分类中是找不到的,需要直接下载 PHP代码才能找到。

虽然网上有人提供了使用正则的方式获取相机拍摄的原图的相关信息,但是不够稳定和成熟,主要是各大厂商存储图片信息格式不一致。

关于手动编译安装 PHP 的扩展,其实我已经很多年没有这样做过了。但 exif 扩展比较重要,在某些发行版比如 ArchLinux 上并不默认安装这个扩展,所以需要在 PHP 官方网站下载原始代码编译安装。

所有的技术产品网站都有一个通病,就是很难找到历史版本在哪里下载。PHP 在下载页面暴露出来的下载链接,点进去依然只有几个版本的下载,由于我使用的 PHP 版本是 php-7.0.9,所以必须找到对应的版本来安装扩展。在 mirror 页面找到一个版本后,尝试修改地址,结果找到了我需要的版本链接。如下所示镜像页面地址:

http://php.net/get/php-7.0.9.tar.gz/from/a/mirror

选择中国镜像下载,如下安装过程:

$ wget http://cn2.php.net/get/php-7.0.9.tar.gz/from/this/mirror
$ mv mirror php-7.0.9.tar.gz
$ tar -xf php-7.0.9.tar.gz
$ cd php-7.0.9/ext/exif
$ sudo find / -name php-config
$ /usr/bin/phpize
$ ./configure --with-php-config=/usr/bin/php-config --enable-exif
$ make
$ make test
$ sudo make install
$ sudo cp modules/exif.so /usr/lib/php/modules/
$ sudo vim /etc/php/php.ini
$ php -m | grep exif

网上的一些例子,在安装扩展的时候编译会加上很多参数,其实是不需要的,只需要加上 --with-php-config 就够了。

另外,在 Windows 平台下安装 exif 需要将 php_mbstring.dll 放在 php_exif.dll 前面,否则会不生效哦。 

2020-08-06 23:31:31 1596727891 0.019630