In file included from /sever/php/php-5.3.6/ext/gd/libgd/gd_compat.c:8:
/usr/local/jpeg8//include/jpeglib.h:954: error: expected declaration specifiers or ‘...’ before ‘FILE’
/usr/local/jpeg8//include/jpeglib.h:955: error: expected declaration specifiers or ‘...’ before ‘FILE’
make: *** [ext/gd/libgd/gd_compat.lo] Error 1
PHP版本:php-5.3.6.tar.gz
GD版本:gd-2.0.33.tar.gz
这个问题应该是 库 文件路径问题
检查gd安装参数,并安装libxml2
1.安装gd之前,修改gd源码包目录下的gd_png.c
gd_png.c
进入该文件,找到“#include png.h”改成“/usr/local/libpng/include/png.h”)
【根据自己安装libpng的目录修改】
然后在 ./configure .......安装gd。
2.安装php之前,修改php源码包下的gd_compat.c
路径:【/php-5.3.6/ext/gd/libgd】
【根据自己安装libpng的目录修改】
然后在 ./configure .......安装php
不清楚的话按照下面的顺序安装吧:
PHP Version 5.3.6
安装包名称:php-5.3.6.tar.gz
编译PHP前安装GD库相关套件【点此下载】
[root@localhost LAMP]# tar zxvf zlib-1.2.5.tar.gz
[root@localhost zlib-1.2.5]#cd zlib-1.2.5
[root@localhost zlib-1.2.5]#./configure --prefix=/usr/local/zlib/
[root@localhost zlib-1.2.5]#make
[root@localhost zlib-1.2.5]#make install
[root@localhost LAMP]#tar zxvf freetype-2.4.3.tar.gz
[root@localhost freetype-2.4.3]#cd freetype-2.4.3
[root@localhost freetype-2.4.3]#./configure --prefix=/usr/local/freetype
[root@localhost freetype-2.4.3]#make
[root@localhost freetype-2.4.3]#make install
[root@localhost LAMP]#tar zxvf libpng-1.5.2.tar.gz
[root@localhost LAMP]#cd libpng-1.5.2
[root@localhost libpng-1.5.2]#./configure –prefix=/usr/local/libpng
[root@localhost libpng-1.5.2]#make
[root@localhost libpng-1.5.2]#make install
[root@localhost LAMP]#tar -zxvf jpegsrc.v8c.tar.gz
[root@localhost LAMP]#cd jpeg-8c/
[root@localhost jpeg-8c]#mkdir -p /usr/local/jpeg/bin
[root@localhost jpeg-8c]#mkdir -p /usr/local/jpeg/lib
[root@localhost jpeg-8c]#mkdir -p /usr/local/jpeg/include
[root@localhost jpeg-8c]#mkdir -p /usr/local/jpeg/man/man1
[root@localhost jpeg-8c]#./configure --prefix=/usr/local/jpeg--enable-shared --enable-static
[root@localhost jpeg-8c]#make
[root@localhost jpeg-8c]#make install
[root@localhost LAMP]#tar zxvf gd-2.0.33.tar.gz
[root@localhost LAMP]#cd gd-2.0.33
[root@localhostgd-2.0.33] 修改当前目录下的gd_png.c
编辑 gd_png.c
进入该文件,找到“png.h”改成“/usr/local/libpng/include/png.h”)
【根据自己安装libpng的目录修改】
[root@localhost gd-2.0.33]#./configure --prefix=/usr/local/gd--with-jpeg=/usr/local/jpeg --with-freetype=/usr/local/freetype --with-png=/usr/local/libpng
[root@localhost gd-2.0.33]#make
[root@localhost gd-2.0.33]#make install
安装libxml2
[root@localhost LAMP]# tar –zxvf libxml2-2.7.2.tar.gz
[root@localhost LAMP]#cd libxml2-2.7.2
[root@localhost libxml2-2.7.2]# ./configure –prefix=/usr/local/libxml
[root@localhost libxml2-2.7.2]# make
[root@localhost libxml2-2.7.2]# make install
安装PHP
[root@localhost LAMP]#tar zxvfphp-5.3.6.tar.gz
[root@localhost LAMP]#cd php-5.3.6
[root@localhost php-5.3.6]#cd /root/LAMP/php-5.3.6/ext/gd/libgd
[root@localhost libgd]#vi gd_compat.c
【根据自己安装libpng的目录修改】
[root@localhost libgd]# cd /root/LAMP/php-5.3.6
[root@localhost php-5.3.6]# ./configure--prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs--with-gd=/usr/local/gd --enable-gd-native-ttf --with-jpeg-dir=/usr/local/jpeg --with-zlib --with-freetype-dir=/usr/local/freetype--enable-magic-quotes --with-mysql=/software/mysql--with-mysql-sock=/tmp/mysql.sock --with-iconv --enable-mbstring --enable-ftp--with-config-file-path=/usr/local/php/etc --with-pear=/usr/local/php/pear--enable-sockets --with-libxml-dir=/usr/local/libxml/ [root@localhost php-5.3.6]#cd/LAMP/php-5.3.6/
[root@localhost php-5.3.6]#make
[root@localhost php-5.3.6]#make install
[root@localhost php-5.3.6]#cpphp.ini-development /usr/local/php/etc/php.ini 【cp php-x.x.x/php.ini-dist /opt/php/etc/php.ini 新版的 php.ini-development相当于旧版本的php.ini-dist】
[root@localhost LAMP]#vim php.ini
修改配置文件vim /usr/local/php/etc/php.ini:
register_globals = On
然后编写php测试页info.php:内容如下:
<?php
phpinfo();
?>
查看/usr/local/apache/conf/httpd.conf文件,看是否存在语句(如果安装的Php5):
LoadModule php5_module modules/libphp5.so
如果存在,即说明apache已经成功加载了php模块;
【重启apache服务】
# apachectl restart
将info.php放置到/usr/local/apache/htdocs 目录下;
# chmod 755 info.php
在浏览器中能在该页面中看到php的信息则说明安装成功!
注:启用了SELinux的FC或RedHat会提示权限问题并导致Php无法正常工作,禁用SELinux后重启系统即可解决问题。