最近更换云主机比较频繁,每次更换都要部署PHP环境,就把经常用到的几个php常需要使用的却默认不安装的扩展的添加方法记录下来,以备不时之需


GD安装

先安装 gd 前置库 : freetype ,jpegsrc,libpng。

1. freetype

wget "http://download.savannah.gnu.org/releases/freetype/freetype-2.4.0.tar.bz2" 
tar jxvf freetype-2.4.0.tar.bz2
cd freetype-2.4.0
./configure --prefix=/usr/local/freetype && make && make install

2. jpegsrc

wget "http://www.ijg.org/files/jpegsrc.v9.tar.gz" 
tar zxvf jpegsrc.v9.tar.gz
cd jpeg-9
CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/jpeg && make && make install
mkdir -p /usr/local/jpeg/include
mkdir -p /usr/local/jpeg/lib
mkdir -p /usr/local/jpeg/bin
mkdir -p /usr/local/jpeg/man/man1

3. libpng

wget "http://downloads.sourceforge.net/project/libpng/libpng12/1.2.50/libpng-1.2.50.tar.gz" 
#这个地址可能不准确,可以自己在浏览器打开看一下
tar zxvf libpng-1.2.50.tar.gz
cd libpng-1.2.50 
CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/libpng && make && make install

接下来需要cd到php源码的 gd 目录,否则会报 cannot find config.m4 之类的错误。

cd php-5.3.6
cd ext
cd gd

然后再这个目录执行命令 /usr/local/php/bin/phpize。什么时候需要用到 phpize 呢?当我们需要再加些模块,又不想重新编译php,这些我们就可以用phpize了。我的PHP安装在 /usr/local/php/ 这个目录里,可以根据个人情况修改。

/usr/local/php/bin/phpize

现在可以进行单独编译安装了:

./configure --with-php-configure=/usr/local/php/bin/php-config 
    --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/libpng 
    --with-freetype-dir=/usr/local/freetype
#或者
./configure --with-php-config=/usr/local/php/bin/php-config 
    --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/libpng 
    --with-freetype-dir=/usr/local/freetype
make && make install

接着修改php.ini文件,在里面添加一行extension=gd.so

重启 Nginx 之后再看看是否安装成功了。再执行 /usr/local/php/bin/php -m 查看gd模块是否加载成功。

使用nginx,需要重启 php-fpm 才能在phpinfo里看到:

killall php-fpm

/usr/local/php/sbin/php-fpm


PDO_MYSQL安装

1、进入PHP的软件包pdo扩展目录中(注:不是PHP安装目录)

如果还未下载:

wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
tar zxvf PDO_MYSQL-1.0.2.tgz

2、配置和编译文件

进入PHP的软件包pdo_mysql扩展目录或刚才下载的解压目录

执行如下安装命令

/usr/local/php/bin/phpize 
#注:/usr/local/php 是我的 php 安装目录
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql/
#--with-php-config=/usr/local/php/bin/php-config 指定安装 PHP 的时候的配置
#--with-pdo-mysql=/usr/local/mysql/ 指定 MySQL 数据库的安装目录位置
make && make install

编译完成之后,请注意下面目录是否出现pdo_mysql.so文件(注意:不同php版本目录名称可能不一样)

/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626

编译安装完成之后,生成的 pdo_mysql.so 文件就放置在这个目录下。

修改 php.ini 文件,后续操作同GD安装


MYSQLI安装

1、进入php源代码目录:# cd /tmp/php-5.3.6/

2、再进入要添加的mysqli扩展源码目录:# cd ext/mysqli/

3、然后执行安装命令

/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/mysql/bin/mysql_config
#/usr/local/mysql 为mysql的安装目录
make && make install

编译之后,查看下面目录是否出现mysqli.so

/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/

修改 php.ini 文件 

extension_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
extension = "mysqli.so"

后续操作同GD安装


MBSTRING安装

基本步骤同上面,下面直接贴命令

cd /usr/src/php-5.3.6/ext/mbstring
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/bin/php-config  
make && make install

后续操作同GD安装