ubuntu 中php不支持gd库的freetype,导致页面验证码无法加载
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ubuntu 中php不支持gd库的freetype,导致页面验证码无法加载相关的知识,希望对你有一定的参考价值。
1、修改源
cp /etc/apt/sources.list /etc/apt/sources.list.bak
vim /etc/apt/sources.list
先删除里面的东西,再将下列写入:
deb http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
保存后,执行:
apt-get update
2、安装工具
apt-get install wget
apt-get install vim
3、建立测试文件:
在apache访问目录下,建立文件phpinfo.php,写入以下内容:
<?php
if(extension_loaded(‘gd‘)){
echo ‘can use gd<br>‘;
foreach(gd_info() as $cate=>$value)
echo "$cate: $value<br>";
}else
echo ‘can not use gd‘
?>
在浏览器上访问:http://test.com/phpinfo.php
can use gd
GD Version: bundled (2.0.34 compatible)
FreeType Support: #这里冒号后面没有值,说明gd不支持freetype
T1Lib Support:
GIF Read Support: 1
GIF Create Support: 1
JPEG Support: 1
PNG Support: 1
WBMP Support: 1
XPM Support:
XBM Support: 1
JIS-mapped Japanese Font Support:
4、下载相关包
wget http://zlib.net/zlib-1.2.8.tar.gz
wget http://ftp.yzu.edu.tw/nongnu//freetype/freetype-2.6.tar.gz
wget https://github.com/libgd/libgd/releases/download/gd-2.1.1/libgd-2.1.1.tar.gz
wget http://cn2.php.net/distributions/php-5.4.30.tar.gz
wget http://www.ijg.org/files/jpegsrc.v9.tar.gz
wget http://jaist.dl.sourceforge.net/project/libpng/libpng16/1.6.21/libpng-1.6.21.tar.gz
5、apt-get -y install autoconf libxml2-dev bzip2 openssl
6、解压并安装
tar -xzvf freetype-2.6.tar.gz
tar -xzvf php-5.4.30.tar.gz
tar -xzvf zlib-1.2.8.tar.gz
tar -xzvf libpng-1.6.21.tar.gz
tar -xzvf jpegsrc.v9.tar.gz
tar -xzvf libgd-2.1.1.tar.gz
cd libpng-1.6.21
./configure --prefix=/usr/local/libpng
make && make install
cd zlib-1.2.8
./configure --prefix=/usr/local/zlib
make && make install
cd freetype-2.6
cd builds/unix/
./configure --prefix=/usr/local/freetype --enable-shared
cd ../..
./configure --prefix=/usr/local/freetype --enable-shared
make && make install
cd jpeg-9
./configure --prefix=/usr/local/jpeg
make && make install
cd libgd-2.1.1
./configure --with-zlib=/usr/local/zlib/ --with-png=/usr/local/libpng/ --with-jpeg=/usr/local/jpeg/ --with-freetype=/usr/local/freetype/
make && make install
7、备份
cp -r php5_4_3 php5_4_3bak
8、建模块链接
cd /usr/lib/
ln -s /usr/lib/x86_64-linux-gnu/libXpm.so .
ln -s /usr/lib/x86_64-linux-gnu/libXpm.a .
ln -s /usr/lib/x86_64-linux-gnu/libXpm.so.4 .
ln -s /usr/lib/x86_64-linux-gnu/libXpm.so.4.11.0 .
ln -s /usr/lib/x86_64-linux-gnu/libssl.so .
ln -s /bin/sed /usr/bin/sed
9、编译php
cd php-5.4.30
./configure --prefix=/home/clouder/vs/program/language/php/php5_4_3/ --with-config-file-path=/home/clouder/vs/program/language/php/php5_4_3/etc/ --with-apxs2=/home/clouder/vs/program/webserver/apache/2_2_22/apache/bin/apxs --with-gd --with-iconv --with-jpeg-dir=/usr/local/jpeg/ --with-zlib=/usr/local/zlib/ --enable-xml --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curlwrappers --enable-mbstring=all --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --enable-session --enable-imap --enable-calendar --enable-eaccelerator=shared --enable-wddx --with-freetype-dir=/usr/local/freetype/ --without-pear
make
make install
10、重启apache
可以在页面上重启,但是重启后请确认是否重启成功:可用ps -ef | grep http 结果查看进程时间来确定
如果页面重启不成功,尝试:
cd /home/clouder/vs/program/webserver/apache/2_2_22/apache/bin/
apachectl restart
如果有错误,具体处理就行
11、测试
浏览器访问:http://test.com/phpinfo.php
结果为:
can use gd
GD Version: bundled (2.1.0 compatible)
FreeType Support: 1 #这里有值
FreeType Linkage: with freetype #这里有值
T1Lib Support:
GIF Read Support: 1
GIF Create Support: 1
JPEG Support: 1
PNG Support: 1
WBMP Support: 1
XPM Support:
XBM Support: 1
JIS-mapped Japanese Font Support:
12、成功后将phpinfo.php这个文件删除
以上是关于ubuntu 中php不支持gd库的freetype,导致页面验证码无法加载的主要内容,如果未能解决你的问题,请参考以下文章
错误:需要支持FreeType的GD PHP扩展或支持PNG的ImageMagick PHP扩展
尝试在 Docker 官方镜像中添加 freetype 到 php-gd
Mac OS X 自带PHP环境gd库安装扩展freetype(Call to undefined function imagettftext())