QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 855|回复: 9

GD模块已经安装了,怎么在上传JPG文件时候还是报错呢?

[复制链接]
发表于 2005-2-5 16:31:04 | 显示全部楼层 |阅读模式
RH8.0+MYSQL+PHP+APAHCE,在服务器上上传JPG文件时候提示:
Fatal error:Call to undefined function: imagecreatefromjpeg() in /usr/locla/apache/htdocs/include/pic.php3 on line 51

在编译PHP时候已经加了--with-jpeg参数了呀!请高手指点,谢谢!!
下面是PHP信息
***********************************************************
PHP Version 4.3.9

System Linux WST 2.4.18-14 #1 Wed Sep 4 13:35:50 EDT 2002 i686
Build Date Feb 5 2005 10:01:51
Configure Command './configure' '--with-apxs2=/usr/local/apache/bin/apxs' '--disable-debug' '--enable-ftp' '--enable-inline-optimization' '--enable-safe-mode' '--enable-track-vars' '--enable-tarns-sid' '--enable-xml' '--with-mysql' '--with-xml' '--with-gd' '--with-zlib' '--with-png' '--with-jpeg' '--with-freetype' '--enable-sockets'
Server API Apache 2.0 Handler
Virtual Directory Support disabled
Configuration File (php.ini) Path /usr/local/Zend/etc/php.ini
PHP API 20020918
PHP Extension 20020429
Zend Extension 20021010
Debug Build no
Thread Safety disabled
Registered PHP Streams php, http, ftp, compress.zlib


gd信息
GD Support enabled
GD Version bundled (2.0.28 compatible)
GIF Read Support enabled
GIF Create Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled
**********************************************************
 楼主| 发表于 2005-2-20 16:55:37 | 显示全部楼层
高手在哪里呀?55555555
回复

使用道具 举报

 楼主| 发表于 2005-2-24 09:39:24 | 显示全部楼层
偶是参照这个文章来安装的
**********************************************************
PHP+GD的安装

如果是用RPM包装的PHP+Mysql+Apache,GD库默认就装好了。

如果想要编译安装这些,GD库是要自己动手安装上去的。

我编译安装(源代码)了Apache+PHP,现在要用到GD库,所以又要装GD库了

在网上找了好多资料,都不太详细或过时了。

看了一些文档,总算弄好了,现在总结出来。

在Red Hat Linux 9.0+Apache+PHP下通过。

Powered by aspbiz(at)163.com

一、下载

gd-2.0.33.tar.gz  http://www.boutell.com/gd/

jpegsrc.v6b.tar.gz   http://www.ijg.org/

libpng-1.2.7.tar.tar  http://sourceforge.net/projects/libpng/

zlib-1.2.2.tar.gz  http://sourceforge.net/projects/zlib/

freetype-2.1.9.tar.gz  http://sourceforge.net/projects/freetype/

php-4.3.9.tar.gz http://www.php.net

二、说明

最新的GD库包括了对GIF的支持,所以不要打GIF补丁

http://sourceforge.net/ 好多源代码包可以在上面找到

安装步骤:

先安装zlib,freetype,libpng,jpeg,再装GD,再装PHP

三、安装

1.装zlib

  tar zxvf zlib-1.2.2.tar.gz
  cd zlib-1.2.2
  ./configure
  make
  make install

2.安装libpng

  tar zxvf libpng-1.2.7.tar.tar
  cd libpng-1.2.7
  cd scripts/
  mv makefile.linux ../makefile
  cd ..
  make
  make install
  注意,这里的makefile不是用./configure生成,而是直接从scripts/里拷一个

3.安装freetype

  tar zxvf freetype-2.1.9.tar.gz
  cd freetype-2.1.9
  ./configure
  make
  make install

4.安装Jpeg

  tar zxvf jpegsrc.v6b.tar.gz
  cd jpeg-6b/
  ./configure --enable-shared
  make
  make test
  make install
注意,这里configure一定要带--enable-shared参数,不然,不会生成共享库

5.安装GD

  tar zxvf gd-2.0.33.tar.gz
  cd gd-2.0.33
  ./configure --with-png --with-freetype --with-jpeg
  make install

6.安装PHP

  tar zxvf php-4.3.9.tar.gz
  cd php-4.3.9
  ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-gd --with-zlib --with-png --with-jpeg

--with-freetype --enable-sockets
  make
  make install

7.配置Apache支持PHP

8.测试

phpinfo();
?>

Ok.....
*******************************************************
在安装GD的时候也加入了JPEG的支持啊
安装GD

  tar zxvf gd-2.0.33.tar.gz
  cd gd-2.0.33
  ./configure --with-png --with-freetype --with-jpeg
  make install
可在PHP信息的GD部分中却没有对JPG或JPEG的支持
gd
GD Support  enabled  
GD Version  bundled (2.0.28 compatible)  
GIF Read Support  enabled  
GIF Create Support  enabled  
PNG Support  enabled  
WBMP Support  enabled  
XBM Support  enabled  

这个是为什么呢?
回复

使用道具 举报

 楼主| 发表于 2005-2-24 14:00:09 | 显示全部楼层
linux支持GD了,但是我在phpinfo中看到他并不支持JPG,我该怎么办?
GD对GIF都有支持,怎么不能支持JPG呢?
GIF Read Support enabled
GIF Create Support enabled
回复

使用道具 举报

发表于 2005-2-24 15:38:53 | 显示全部楼层
升级你的 php 程序。
回复

使用道具 举报

 楼主| 发表于 2005-2-24 17:28:02 | 显示全部楼层
缺省情况下,GD库编译时并不加入JPEG支持,得修改Makefile文件。
修改Makefile文件,使得:
CFLAGS=-O -DHAVE_XPM -DHAVE_JPEG -DHAVE_LIBTTF
LIBS=-lm -lgd -lpng -lz -ljpeg -lttf -lXpm -lX11
此后,编译并安装:
make
make install
命令完成后,gd.h被拷到/usr/local/include目录下,libgd.a被拷到/usr/local/lib目录下。
回复

使用道具 举报

 楼主| 发表于 2005-2-24 20:07:06 | 显示全部楼层
可是 在对PHP进行make的时候提示下列错误,郁闷 .....................
ext/mysql/libmysql/my_tempnam.lo: In function `my_tempnam':
/root/php+gd/php-4.3.9/ext/mysql/libmysql/my_tempnam.c:115: the use of `tempnam' is dangerous, better use `mkstemp'
ext/gd/gd.lo: In function `zif_imagecolormatch':
/root/php+gd/php-4.3.9/ext/gd/gd.c:807: undefined reference to `gdImageColorMatch'
ext/gd/gd.lo: In function `zif_imagerotate':
/root/php+gd/php-4.3.9/ext/gd/gd.c:1117: undefined reference to `gdImageRotate'
ext/gd/gd.lo: In function `zif_imageline':
/root/php+gd/php-4.3.9/ext/gd/gd.c:2189: undefined reference to `gdImageAALine'
ext/gd/gd.lo: In function `zif_imageellipse':
/root/php+gd/php-4.3.9/ext/gd/gd.c:2322: undefined reference to `gdImageEllipse'
ext/gd/gd.lo: In function `zif_imageantialias':
/root/php+gd/php-4.3.9/ext/gd/gd.c:3883: undefined reference to `gdImageAntialias'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
回复

使用道具 举报

 楼主| 发表于 2005-2-25 11:30:53 | 显示全部楼层
编译PHP的时候如果在--with-gd参数后带了路径"=/usr/local"就报上面的错,不带吧,还是不支持JPG
./configure   --with-apxs2=/usr/local/apache/bin/apxs --disable-debug  --enable-ftp --enable-inline-optimization --enable-safe-mode --enable-track-vars --enable-tarns-sid --enable-xml --with-mysql --with-xml --enable-magic-quotes --with-system-regex --enable-sockets --with-jpeg-dir=/usr/local --with-zlib-dir=/usr/local --with-png-dir=/usr/local  --with-gd=/usr/local  --with-xpm-dir=/usr/local --with-freetype-dir=/usr/local
回复

使用道具 举报

 楼主| 发表于 2005-2-25 14:19:23 | 显示全部楼层
哈哈,成功了,终于知道问题的原因了。试了好多方法,最后把原来的GZ包解压后的目录删除了重新解压在配置就没错误了。以前的解压后的目录编译后里面的有些文件已经被改变了,这次是重新编译,偷了回懒,没删除原来的解压后的目录,导致出错后查找了好长时间。
gd信息
GD Support  enabled  
GD Version  2.0 or higher  
FreeType Support  enabled  
FreeType Linkage  with freetype  
GIF Read Support  enabled  
GIF Create Support  enabled  
JPG Support  enabled  
PNG Support  enabled  
WBMP Support  enabled  

参考文献
******************************
Apache+Mysql+PHP(含GD,libpng,jpeg,zlib,freetype,freeTDS,awstats)安装与配置
作者:swingcoder(at)msn(dot)com
日期:2004-3-25
一、前言
安装的问题很多人都第一次要面对的,既简单又麻烦。很多老鸟都对如何安装的问题不屑,说:问来问去都是安装的问题。
希望这的贴子对新手能有点帮助,老鸟的话,就不用看了,免得拍砖。谢谢~~
本文所有软件均使用最新版(至发布日期),但是又有人说了,什么版本不稳定啦,这不好那不好啦。Cut!就此打住,我也不想为这些问题纠缠不清了,此文仅仅是安装。先让大家用起来,具体的优化安全以后再说,应了一句话“先让一部分人先富起来!“。
虽然仍然是重复劳动,但至少是自己的经验,不想丢了,写完后自己以后也可以看看,顺便整理整理。
二、目的
安装Apahe与MySQL,将php安装成支持gif,png,jpeg,freetype,mssql,mysql,需要更强大的图形处理能力,可安装ImageMagic。可以分析大流量网站日志(更大流量的网站推荐用Webalizer,不过界面简陋:-,)。
二、安装环境描述
操作系统:GNU Linux kernel 2.4.20
web服务器:Apache httpd-2.0.48 下载:
数据库服务器:mysql-standard-4.0.17-pc-linux-i686 下载:
脚本程序语言:PHP Version 4.3.5RC5-dev 下载:
其它库文件:
ZLIB:zlib-1.2.1.tar.gz 下载:http://www.zlib.net/zlib-1.2.1.tar.gz
FreeType:freetype-2.1.5.tar.gz 下载:http://twtelecom.dl.sourceforge.net/sourceforge/freetype/freetype-2.1.5.tar.gz
PNG:libpng-1.2.5.tar.gz 下载:http://twtelecom.dl.sourceforge.net/sourceforge/png-mng/libpng-1.2.5.tar.gz
JPEG:jpegsrc.v6b.tar.gz 下载:
GD:gd-2.0.18.tar.gz 下载:http://www.boutell.com/gd/http/gd-2.0.18.tar.gz #2.0不支持GIF?好像限制又过期了
FreeTDS:freetds-stable.tgz 下载:http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
Cronolog:cronolog-1.6.2.tar.gz 下载:http://www.cronolog.org/download/cronolog-1.6.2.tar.gz
Awstats:awstats-5.9.tgz 下载:http://heanet.dl.sourceforge.net/sourceforge/awstats/awstats-5.9.tgz
三、安装步骤
1、安装Apache
tar xzvf httpd-2.0.48.tar.gz
cd httpd-2.0.48
./configure --prefix=/usr/local/apache --enable-so
make
make install
echo "/usr/local/apache/bin/apachectl start&" >> /etc/rc.d/rc.local
#启动
/usr/local/apache/bin/apache start
2、安装MySQL
tar xzvf mysql-standard-4.0.17-pc-linux-i686.tar.gz
#此处下载的的二进制分发包,故没有./configure步骤
mv mysql-standard-4.0.17-pc-linux-i686 /usr/local/mysql
cd /usr/local/mysql
#下步cp要看服务器硬件环境,可选small,medium,large,huge
cp support-files/my-medium.cnf /etc/my.cnf
echo "/usr/local/mysql/bin/safe_mysqld --user=mysql&" >> /etc/rc.d/rc.local
groupadd mysql
useradd -g mysql mysql
./scripts/mysql_install_db
chown -R mysql.mysql data
#启动
/usr/local/mysql/bin/safe_mysqld --user=mysql&
3、安装PHP
A、先安装支持包(注意安装顺序)
建立初始目录:
#php目录
mkdir /usr/local/php
mkdir /usr/local/modules
#freetype目录
mkdir /usr/local/modules/freetype
#jpeg目录
mkdir /usr/local/modules/jpeg6
mkdir /usr/local/modules/jpeg6/bin
mkdir /usr/local/modules/jpeg6/lib
mkdir /usr/local/modules/jpeg6/include
mkdir /usr/local/modules/jpeg6/man
mkdir /usr/local/modules/jpeg6/man/man1
#gd目录
mkdir /usr/local/modules/gd
#freeTDS目录
mkdir /usr/local/modules/freetds
A1、安装zlib
tar xzvf zlib-1.2.1.tar.gz
cd zlib-1.2.1
#不要用--prefix自定义安装目录,影响gd的安装
./configure
make
make install
A2、安装freetype

tar xzvf freetype-2.1.5.tar.gz
cd freetype-2.1.5
./configure --prefix=/usr/local/php/modules/freetype
make
make install
A3、安装libpng
tar xzvf libpng-1.2.5.tar.gz
#不要用--prefix自定义安装目录,影响gd的安装
cd libpng-1.2.5
cp scripts/makefile.std makefile
make test
make install
A3、安装jpeg
tar xzvf jpegsrc.v6b.tar.gz
./configure --prefix=/usr/local/php/modules/jpeg6 --enable-shared --enable-static
make
make install
A4、安装GD
tar xzvf gd-2.0.18.tar.gz
./configure --prefix=/usr/local/php/modules/gd --with-jpeg=/usr/local/php/modules/jpeg6 --with-png --with-zlib --with-freetype=/usr/local/php/modules/freetype
make
make install
A5、安装FreeTDS
tar zxvf freetds-stable.tgz
cd freetds-stable
./configure --prefix=/usr/local/php/modules/freetds
make
make install
B、安装Cronolog
tar zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure
make
make install
C、安装PHP
tar xzvf php4-STABLE-latest.tar.tar
cd php4-STABLE-latest
./configure --prefix=/usr/local/php --with-jpeg=/usr/local/php/modules/jpeg6 --with-zlib --with-png --with-gd=/usr/local/php/modules/gd --with-freetype=/usr/local/php/modules/freetype --with-mssql=/usr/local/php/modules/freetds --enable-magic-quotes --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql
make
make install
四、一些特别的配置
1、配置Apache

修改httpd.conf文件:
#增加处理性能
MaxClient 250
StartServers 10
#设置PHP
LoadModule php4_module libexec/libphp4.so
#AddModule mod_php4.c
AddType application/x-httpd-php .php
#This directive configures what you return as the Server HTTP response Header
ServerTokens Minor
#Optionally add a line containing the server version and virtual host name to server-generated pages
ServerSignature Off
#设置日志存储格式
CustomLog "|/usr/local/sbin/cronolog /usr/local/apache/logs/access_%y%m%d.log" combined
2、配置Awstat
#!!此程序需要perl的支持!!
tar xzvf awstats-5.9.tgz
mkdir /usr/local/apache/cgi-bin/webstat/
mkdir /usr/local/apache/weblog/
cd awstat/www/
cp icon/* /usr/local/apache/icons/
cp cgi-bin/ /usr/local/apache/cgi-bin/webstat/
cd /usr/local/apache/cgi-bin/webstat/
cp awstat.model.conf awstat.www.yourdomain.com.conf
#修改awstat.www.yourdomain.com.conf中下列参数,其它用默认值:
vi awstat.www.yourdomain.com.conf
LogFile="/usr/local/apache/logs/access_%YY%MM%DD.log"
SiteDomain="www.yourdomain.com"
DirData="/usr/local/apache/weblog/"
DirIcons="/icons"
#修改awstats.pl为0777
chmod 0777 awstats.pl
#设置计划任务
crontab -e
55 23 * * * (/usr/local/apache/cgi-bin/webstat/awstats.pl -update -config=www.yourdomain.com>/dev/null)

3、配置MySQL
修改root用户密码
/usr/local/mysql/bin/mysqladmin -u root password 'your-new-password'
删除host为%和密码为空的用户

调整性能:
max_connections=250 #default is 100 #影响pconnect数量
table_cache=128 #default 64,调整值根据实际情况而定,一般如果Open_tables 达到table_cache值,且Opened_tables仍在快速增长,要增大该值。
key_buffer_size= #根据实际情况而定,一般Key_reads : Key_read_requests小于1:1000
4、配置PHP
默认安装的PEAR有,如果用不上的话可以删除:
[PEAR] DB - installed: 1.6.0
[PEAR] HTTP - installed: 1.2.2
[PEAR] Mail - installed: 1.1.2
[PEAR] Net_SMTP - installed: 1.2.3
[PEAR] Net_Socket - installed: 1.0.1
[PEAR] XML_Parser - installed: 1.0.1
[PEAR] XML_RPC - installed: 1.0.4
更多信息请参考:http://pear.php.net

五、常见问题
1、安装PHP
a、checking lex output file root... ./configure: line 2425: lex: command not found
configure: error: cannot find output from lex; giving up
缺少flex-2.5.4a-29.i386.rpm,从linux 9.0光盘中找到flex-2.5.4a-29.i386.rpm,安装,重新编译php,ok.
b、ext/gd/gd.lo(.text+0x875): undefined reference to `gdFreeFontCache'
*** Error code 1
php.net官方人士说是安装了不同版本的GD或者推荐安装低版本的php,但我是安装了高于php-4.3.4.tar.gz后解决了此问题。
参考:http://bugs.php.net/bug.php?id=22825
2、安装jpeg
一定要选择./configure --enable-shared --enables-static --prefix=/usr/local方式安装,否则不能make install !!!
若没有装libtool-1.4.3-5.i386.rpm,不能创建共享libjpeg库,即不是能--enable-shared指令编译。
装libtool之前要装m4-1.4.1-13.i386.rpm,automake,autoconf及
若您下载的包为zip格式jpegsr6.zip时,./configure 时出现: bad interpreter:,原因是dos换行跟unix换行符不同造成的,在editplus在转换格式后,jpeg-6a安装成功
3、安装libpng
安装之前要先安装zlib, 且不有自定义目录,否则装gd时找不到库文件。
4、安装MySQL
此文中因为安装的是二进制分发包,帮没有configure,如果是源码包,依照如下格式安装。
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> tar xzvf mysql-VERSION.tar.gz
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> make
shell> make install
shell> scripts/mysql_install_db
shell> chown -R root /usr/local/mysql
shell> chown -R mysql /usr/local/mysql/data
shell> chgrp -R mysql /usr/local/mysql
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> /usr/local/mysql/bin/mysqld_safe --user=mysql &
五、参考资源
1、apache
http://www.apache.org
2、mysql
http://www.mysql.com
3、php
http://www.php.net
4、GD
http://www.boutell.com
5、FreeTDS
http://ibiblio.org
6、Cronolog
http://www.cronolog.org
7、Awstats
http://awstats.sourceforge.net
8、Webalizer
http://www.mrunix.net/webalizer/
六、总结
上述仅仅是简单的安装跟一些简单的配置,肯定存在不少漏洞,希望大家多多留心,任何程序和配置,最关键的在决定因素往往在于--“配置者”本身。希望对有需要的人有一定的帮助。
回复

使用道具 举报

发表于 2005-2-25 15:47:37 | 显示全部楼层
redhat 的 src.rpm 包里面全部有安装方法。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 10:53 , Processed in 0.037147 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表