购买了阿里云CentOS的64位,默认配置了PHP环境的服务器,结果部署上的业务代码,图片验证码出不来,经过确定最后发现是没有安装gd库。
由于是linux新手,嫌下载源码包编译安装gd库比较麻烦,由于gd库需要一系列依赖库,也需要下载源码包一个个编译安装,故采用yum install package的在线安装方式安装。
yum install freetype
yum install libpng-devel
yum install libjepg-devel
yum install freetype-devel
(当提示找不到的时候,可以使用yum search "libpng"这个命令搜索,注意双引号中的文本搜索时会自动模糊匹配,不需要*通配符)
安装好gd库和gd库需要的依赖库之后,切换到php源码的存放目录,我的阿里云服务器拿到就是预先配置好的,php源码不知道有没有,即使有也不知道放在哪里,所以用find命令搜索
find / -name "*php*" | grep -v "lighttpd"
找到php源码的目录为
/usr/local/src/php-5.2.17/
切换到php源码目录下的ext/gd目录
cd /usr/local/src/php-5.2.17/ext/gd
运行如下命令
/usr/local/php5/bin/phpize //生成configure文件
网上的一些说明类似如下
/*************
./configure --with-php-config=[php安装目录]/bin/php-config --with-jpeg=[jpeg-6b安装目录] --with-png=[libpng安装目录] --with-freetype=[freetype安装目录] --with-zlib=[zlib安装目录] --with-gd=[gd安装目录]
(如果出现未知配置项--with-png**,--with-freetype之类的错误 在配置项后面加上-dir参数即可:既修编译参数为: ./configure --with-php-config=[php安装目录]/bin/php-config --with-jpeg-dir=[jpeg安装目录] --with-png-dir=[libpng安装目录] --with-freetype-dir=[freetype安装目录] --with-zlib=[zlib安装目录] --with-gd=[gd安装目录] 即可
)
make
make install
**************/
我实际的运行的命令为
./configure --with-php-config=/usr/local/php5/bin/php-config --with-libdir=lib64 --with-png-dir=/usr/lib64 --with-freetype-dir=/usr/lib64 --with-jpeg-dir=/usr/lib64 --with-gd
输出一长串,不会有啥未知的错误提示,并且最后的提示为
----------------------------------------------------------------------
Build complete.
Don't forget to run 'make test'.
说明成功了
然后运行如下的命令
注意:运行前,先把web服务停止,用的命令是sudo service lighttpd start (apache自行百度)
make
make install
最后看到输出也没啥问题了,那么就输出了生成gd的库文件(以so结尾)的位置信息了,如下
[root@iZ946bvaypyZ gd]# make install
Installing shared extensions: /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/
Installing header files: /usr/local/php5/include/php/
然后,由于/usr/local/php5/lib/php.ini中扩展目录设置的为
extension_dir = "./"
所以先将/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/gd.so 拷贝到 /usr/local/php5/lib
cp /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/gd.so /usr/local/php5/lib
然后修改/usr/local/php5/lib/php.ini中的扩招目录
由extension_dir = "./"改为extension_dir = " /usr/local/php5/lib/"
同时,php.ini中的加载gd库的配置得打开
由;extension=php_gd2.dll改为
extension=gd.so
重启web服务器lighttpd,没有报错,成功启动,说明安装gd库,并且php加载gd库成功
前台phpinfo()输出信息确认OK
如果安装gd库,php始终加载不了,需要结合php -m 和php -i信息确认gd库是否成功加载(前台phpinfo()信息也含),当然前提是gd库要成功编译为php需要调用的gd.so模块,这一步就是使用config命令配置和make、make install的过程
附注:所有操作使用root帐号
本人也是初次使用阿里云服务器,linux配置gd库失败后搜索了很多资料,最终解决了,记录下来,由本人理解错误的地方,欢迎指出。