前言
最近学习yii2,在搭建环境后,发现在访问contact页面时报错,如下:
1
|
“Either GD PHP extension with FreeType support
or
ImageMagick PHP extension..."
|
在网上查找资料发现时没有安装imagick扩展,安装过程中也踩过很多坑,现将安装过程和踩坑情况记录如下。
环境
OS Ver:OSX 10.13
php环境:OSX自带php环境(php7.17)
步骤
1、安装:ImageMagick:
下载:sudo curl -O ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
解压:sudo tar -zxvf ImageMagick.tar.gz
安装:
1
2
3
4
|
cd
ImageMagick-7.0.7-22/
sudo
.
/configure
--prefix=
/usr/local/ImageMagick
sudo
make
sudo
make
install
|
2、安装php扩展imagick
下载:wget https://pecl.php.net/get/imagick-3.4.3.tgz
解压:sudo tar -zxvf imagick-3.4.3
安装:
1
2
3
4
5
|
cd
imagick-3.4.3
sudo
/usr/bin/phpize
<--- 生成configure
sudo
.
/configure
--with-php-config=
/usr/bin/php-config
--with-imagick=
/usr/local/ImageMagick
sudo
make
sudo
make
install
|
3、在php.ini中添加imagick扩展
参考踩坑记录2.
踩坑记录
1、未安装m4 和autoconf工具,会报错如下:
1
2
3
4
5
6
7
|
$
sudo
/usr/bin/phpize
Configuring
for
:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303
Cannot
find
autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
|
解决办法:当然是安装m4、autoconf工具,推荐使用brew安装,这个网上教程很多,你当然会的啊。
1
2
|
brew
install
m4
brew
install
autoconf
|
2、在安装imagic扩展时报错如下:
1
2
3
4
|
$
sudo
make
install
Installing shared extensions:
/usr/lib/php/extensions/no-debug-non-zts-20160303/
cp
:
/usr/lib/php/extensions/no-debug-non-zts-20160303/
#INST@31145#: Operation not permitted
make
: *** [
install
-modules] Error 1
|
这是因为macos系统的Rootless特性导致的(The problem was due to OS X 10.11 El Capitan's Rootless feature. )
要禁用这个特性可以参考这个文章:
https://www.quora.com/How-do-I-turn-off-the-rootless-in-OS-X-El-Capitan-10-11
如果不想禁用这个特性,可以将imagic.so文件放置在一个合适位置,然后在php.ini中添加扩展的时候制定好路径(强迫症受不了!!!!)。
以下是我的修改:
1
2
3
4
5
6
|
sudo
mkdir
-p
/usr/local/lib/php/extensions/no-debug-non-zts-20160303/
sudo
cp
modules
/imagick
.so
/usr/local/lib/php/extensions/no-debug-non-zts-20160303/
sudo
vi
/etc/php
.ini
# 在php.ini中修改扩展目录和添加imagick扩展
extension_dir =
"/usr/local/lib/php/extensions/no-debug-non-zts-20160303"
extension=imagick.so
|