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

2024-05-30 00:32

本文主要是介绍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/php/php5_4_3/ --with-config-file-path=/home/php/php5_4_3/etc/ --with-apxs2=/home/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/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,导致页面验证码无法加载的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1015070

相关文章

MyBatis延迟加载与多级缓存全解析

《MyBatis延迟加载与多级缓存全解析》文章介绍MyBatis的延迟加载与多级缓存机制,延迟加载按需加载关联数据提升性能,一级缓存会话级默认开启,二级缓存工厂级支持跨会话共享,增删改操作会清空对应缓... 目录MyBATis延迟加载策略一对多示例一对多示例MyBatis框架的缓存一级缓存二级缓存MyBat

通过React实现页面的无限滚动效果

《通过React实现页面的无限滚动效果》今天我们来聊聊无限滚动这个现代Web开发中不可或缺的技术,无论你是刷微博、逛知乎还是看脚本,无限滚动都已经渗透到我们日常的浏览体验中,那么,如何优雅地实现它呢?... 目录1. 早期的解决方案2. 交叉观察者:IntersectionObserver2.1 Inter

在Ubuntu上打不开GitHub的完整解决方法

《在Ubuntu上打不开GitHub的完整解决方法》当你满心欢喜打开Ubuntu准备推送代码时,突然发现终端里的gitpush卡成狗,浏览器里的GitHub页面直接变成Whoathere!警告页面... 目录一、那些年我们遇到的"红色惊叹号"二、三大症状快速诊断症状1:浏览器直接无法访问症状2:终端操作异常

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

Ubuntu向多台主机批量传输文件的流程步骤

《Ubuntu向多台主机批量传输文件的流程步骤》:本文主要介绍在Ubuntu中批量传输文件到多台主机的方法,需确保主机互通、用户名密码统一及端口开放,通过安装sshpass工具,准备包含目标主机信... 目录Ubuntu 向多台主机批量传输文件1.安装 sshpass2.准备主机列表文件3.创建一个批处理脚

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

javacv依赖太大导致jar包也大的解决办法

《javacv依赖太大导致jar包也大的解决办法》随着项目的复杂度和依赖关系的增加,打包后的JAR包可能会变得很大,:本文主要介绍javacv依赖太大导致jar包也大的解决办法,文中通过代码介绍的... 目录前言1.检查依赖2.更改依赖3.检查副依赖总结 前言最近在写项目时,用到了Javacv里的获取视频

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

Ubuntu如何升级Python版本

《Ubuntu如何升级Python版本》Ubuntu22.04Docker中,安装Python3.11后,使用update-alternatives设置为默认版本,最后用python3-V验证... 目China编程录问题描述前提环境解决方法总结问题描述Ubuntu22.04系统自带python3.10,想升级

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁