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这个文件删除

时间: 2024-10-10 23:46:14

ubuntu 中php不支持gd库的freetype,导致页面验证码无法加载的相关文章

PHP gd 库添加 freetype

gd 库未安装 freetype 可能导致验证码图片加载不出来等问题. 先到 PHP 的扩展目录里面找到 gd 扩展文件夹 最好先 make clean 清除之前编译的可执行文件及配置文件,运行/usr/local/php/bin/phpize.最后编译安装 ./configure --with-php-config=/usr/local/php/bin/php-config --with-jpeg-dir --with-png-dir --with-freetype-dir --with-zl

Qt动态连接库/静态连接库创建与使用,QLibrary动态加载库

版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt动态连接库/静态连接库创建与使用,QLibrary动态加载库     本文地址:http://techieliang.com/2017/12/680/ 文章目录 1. 动态连接库创建与使用  1.1. 项目创建  1.2. 调用-使用.h文件 2. 静态库创建及使用  2.1. 创建  2.2. 使用 3. QLibrary动态加载动态库  3.1. 介绍  3.2. 范例  3.3.

ASP.NET中防止页面多次加载的IsPostBack属性

查查msdn,上边有IsPostBack的定义:获取一个值,该值指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问.如果是为响应客户端回发而加载该页,则为 true:否则为 false. 首先,有个问题,web页面是如何加载的,客户端浏览器服务器端发送请求,服务器端将请求发送到客户端,服务器端将释放客户端的请求. 第二个问题,为什么要防止页面多次加载,根据上述的加载过程我们知道,当第二次发送同样请求时,服务器端没有保存原来客户端的数据,那么展现给客户端浏览器为空或者仍然是原来的信

thinkphp在ubuntu下验证码无法加载或者验证码错误问题的解决

最近LZ在做一个thinkphp的项目,用的是WAMP开发的.把代码移植到ubuntu下,就出问题了,验证码无法显示.之前也碰到过这样的问题,无非是GD库没有加载,或者是session写入权限问题. 先说下这两个问题的解决办法: ① GD库没有加载 安装gd库 apt-get install php5-gd 搜到gd.so在/usr/lib/php5/20090626+lfs/目录下 ,需要修改php.ini,php.ini在/etc/php5/apach2目录下. 于是修改php.ini: e

引用外部静态库时,(类别)目录方法无法加载问题(转)

这个 bug 在 xcode 4.3 以下会出现,4.3 以后已经修正了. 解决方法为:找到 target 的图标,更改其 Other Linker Flags 为: -all_load 或 -force_load -force_load,后跟随一个文件位置,可以更精确地加载所需文件. 苹果的解释为 : http://developer.apple.com/library/mac/#qa/qa1490/_index.html 简单点说就是,Objective-C 的动态特性使得需要,为链接器添加

Android中使用ListView实现分页刷新(线程休眠模拟)(滑动加载列表)

当要显示的数据过多时,为了更好的提升用户感知,在很多APP中都会使用分页刷新显示,比如浏览新闻,向下滑动到当前ListView的最后一条信息(item)时,会提示刷新加载,然后加载更新后的内容.此过程大致分以下几步: 1.当前Activity implements OnScallListenner: 2.实现接口的方法: 3.ListView注册滚动监听: 4. Adapter(自定义或者安卓自带)为每个item填充数据: 5.获得第二页以后的数据后,adater增加数据并刷新notifyDat

android应用因为加入js而导致webview一直在加载中的bug解决方案

日前在开发程序的时候发现,有一个应用的webview加载html5页面总是一直在加载中,加载很慢或干脆加载不出来, 但是在其它应用中却没有问题,能很快加载,找了一圈问题原因,脑袋都大了也没找到.今天听浏览器的大牛说可能是 js导致的,尝试在onpause里加入mWebView.pauseTimers(), onResume()里加入mWebView.resumeTimers(). 奇迹般的解决了,目前正在研究为什么.... @Override protected void onPause(){

在windows、linux中开启nginx的Gzip压缩大大提高页面、图片加载速度

为了降低tomcat服务的压力,把页面上的图片采用windows版的nginx进行加载,由于有些图片比较大,加载特别的慢,所以在nginx中打开了gzip的压缩功能.加载图片的速度快了很多. 通过站长工具中的"网页GZIP压缩检测"工具检测图片的压缩率达到了69.53%,如下图: 下面介绍nginx.conf文件是怎么配置的: 1.打开nginx.conf配置文件: 2.找到#gzip on这句,如下图: 3.在把#gzip on 改成下面代码: #开启Gzip gzip on; #不

YII模块中验证码无法加载进来

在YII的模块中,使用<?php $this->widget('CCaptcha'); ?>无法加载进来验证码. 解决的方法是<?php $this->widget('CCaptcha', array('captchaAction'=>'/controllerName/captcha')); ?> 在controller中需要设置 public function actions() { return array( 'captcha'=>array( 'cla