1.应用场景;

在实际工作中,我们往往会出现一种情况就是我们的环境都已经部署好了,但是突然整个环境又缺少了某一个模块,如果你重新去编译,那你的工作量将很 大,而且方式也不可取!PHP官方给你了一个给力的工具,叫做phpize,通过phpize这个工具,在不用重新去编译我们的程序之外,可以单独编译模 块,然后将模块打入PHP.ini配置文件中,那么这个模块就可以正常运行了!

1. 什么是phpize 

phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块。

phpize工具介绍

 2.怎么使用phpize

    使用phpize之前,你必须有一个环节,这里我们按照了LAMP编译安装的环境来做phpize的实验,不过我们需要使用一个比phpize更为直观的方式来看我们的模块有没有安装成功,所以我们受用了zblog博客来举例说明!
    Z-Blog是由RainbowSoft Studio开发的一款小巧的,基于ASP和PHP平台的Blog程序,目前PHP程序也逐渐成熟,小巧功能强悍,个人博客的不错选择
     常见的博客系统:Wordpress,emBlog,Zblog等,其中Wordpress是世界上著名,使用人数也是最多的博客系统!zblog比较量级别,适合个人博客用,比如我Pualinux博客,就是使用zblog博客搭建!

 3.基于LAMP部署zblog博客

  关于获取程序,我们可以直接去它的官方网站去下载,官方网站是http://www.zblogcn.com 解压安装,这里下载的是zip格式的软件包
 [root@PuaLinux1 ~]# yum install -y unzip                                                                    // 我们下载的zip的压缩包,需要用unzip解压
 [root@PuaLinux1 ~]# unzip Z-BlogPHP_1_4_Deeplue_150101.zip -d /usr/local/src/   //解压
 [root@PuaLinux1 ~]# mv /usr/local/src/Release/* /usr/local/apache2.4/htdocs/          //移动到网站根目录
[root@PuaLinux1 ~]# chown -R apache:apache  /usr/local/apache2.4/htdocs/              //更改文件权限
环境检测
 浏览器输入192.168.1.11→→我已阅读并同意此协议→→发现还有部分组件没有安装(不需要全部安装)

PHP没有安装的模块 


然后函数部分,curl没有安装

curl也没有安装 

其中我们看到有!的是必装,数据库必装一个,但是么有!的提示,没关系,接着下一步,会发现数据库驱动为空,那么zblog将无法成功安装,因为zblog的PHP程序无法连接到数据库

没有数据库

4.安装PHP拓展模块Curl

 [root@PuaLinux1 ~]# cd /usr/local/src/php-5.6.13/ext/curl/           //模块已经存在,只是没有安装,在我们解压的php源码目录下有一个ext目录,都是模块
 [root@PuaLinux1 curl]# yum install -y autoconf                              //使用phpize工具的时候会依赖
 [root@PuaLinux1 curl]# /usr/local/php/bin/phpize                       // phpize是用来扩展php扩展模块的工具

Configuring  for :
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226

[root@PuaLinux1 curl]# yum install -y libcurl-devel                       //预编译会依赖此软件包
 [root@PuaLinux1 curl]# ./configure --with-php-config=/usr/local/php/bin/php-config         //php-config文件是一 个简单的命令脚本,用于获取所安装的php信息,读取php安装的一些参数
 [root@PuaLinux1 curl]# make ; make install ; cd                         //看到如下内容,代表编译成功,而却拓展库模块位置给以呈现

Build complete.
Don 't forget to run ' make  test '.
Installing shared extensions:      /usr/local/php/lib/php/extensions/no-debug-zts-20131226/

查看生成的模块
[root@PuaLinux1 ~]# ls /usr/local/php/lib/php/extensions/no-debug-zts-20131226/

curl.so  opcache.so          #curl.so就是我们需要的这个模块

让php支持此模块
 [root@PuaLinux1 ~]# vim /usr/local/php/php.ini

900 ;extension=php_pgsql.dll
901 ;extension=php_shmop.dll    #在900多行,模块区域,添加下面这一样
902 extension= /usr/local/php/lib/php/extensions/no-debug-zts-20131226/curl .so

[root@PuaLinux1 ~]# service myhttpd restart
测试结果,curl正常

 curl安装成功

5.安装PHP模块GD2

GD库是php处理图形的扩展库
 [root@PuaLinux1 ~]# cd /usr/local/src/php-5.6.13/ext/gd/
 [root@PuaLinux1 gd]# yum install libpng-devel                        //安装gd会依赖
 [root@PuaLinux1 gd]# /usr/local/php/bin/phpize
 [root@PuaLinux1 gd]# ./configure --with-php-config=/usr/local/php/bin/php-config
 [root@PuaLinux1 gd]# make ; make install                             //如下结果,安装成功

Build complete.
Don 't forget to run ' make  test '.
Installing shared extensions:      /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
Installing header files:            /usr/local/php/include/php/

 [root@PuaLinux1 gd]# vim /usr/local/php/php.ini

902 extension= /usr/local/php/lib/php/extensions/no-debug-zts-20131226/curl .so
902 extension= /usr/local/php/lib/php/extensions/no-debug-zts-20131226/gd .so    #curl下面添加此行
#手动添加的模块都是在这个路径下面,默认,但是在当前的目录下的modules下面也有一份
6.安装PHP数据库驱动MySqli

数据库驱动不需要全部安装,为了熟悉一下phpize工具,我们全部安装,mysqli驱动是一个访问新版mysql的高级功能,比如存储过程
[root@PuaLinux1 gd]# cd /usr/local/src/php-5.6.13/ext/mysqli/
[root@PuaLinux1 mysqli]# /usr/local/php/bin/phpize
[root@PuaLinux1 mysqli]# mkdir -p ext/mysqlnd/     //会依赖mysqlnd里面的文件
[root@PuaLinux1 mysqli]# ln -s /usr/local/src/php-5.6.13/ext/mysqlnd/* ./ext/mysqlnd/
[root@PuaLinux1 mysqli]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/mysql/bin/mysql_config        //这样安装就不会报错,解决所有依 赖
[root@PuaLinux1 mysqli]# make ; make install 

Don 't forget to run ' make  test '.
Installing shared extensions:      /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
Installing header files:           /usr/local/php/include/php/
#SO模块文件生成,先不去改php.ini,先将其他的文件也做完!
7.安装PHP数据库驱动PDO_MySql

 [root@PuaLinux1 mysqli]# cd ../pdo_mysql/
 [root@PuaLinux1 pdo_mysql]# /usr/local/php/bin/phpize
  [root@PuaLinux1 pdo_mysql]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
 [root@PuaLinux1 pdo_mysql]# make ; make install

Build complete.
Don 't forget to run ' make  test '.
Installing shared extensions:      /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
8.安装PHP数据库驱动SQlite3

没有安装SQLite数据库,这里只是演示模块的安装
[root@PuaLinux1 pdo_mysql]# cd ../sqlite3/    
 [root@PuaLinux1 sqlite3]# cp config0.m4 config.m4
[root@PuaLinux1 sqlite3]# /usr/local/php/bin/phpize
[root@PuaLinux1 sqlite3]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@PuaLinux1 sqlite3]# make ; make install

9.安装PHP数据库驱动PDO_SQlite

  [root@PuaLinux1 sqlite3]# cd ../pdo_sqlite/
  [root@PuaLinux1 pdo_sqlite]# /usr/local/php/bin/phpize
  [root@PuaLinux1 pdo_sqlite]# yum install -y sqlite-devel
  [root@PuaLinux1 pdo_sqlite]# ./configure --with-php-config=/usr/local/php/bin/php-config
 [root@PuaLinux1 pdo_sqlite]# make ; make install

10.将所有模块添加到PHP,使php支持安装的模块

[root@PuaLinux1 pdo_sqlite]# cd ; ls /usr/local/php/lib/php/extensions/no-debug-zts-20131226/ 

curl.so  gd.so  mysqli.so  opcache.so  pdo_mysql.so  pdo_sqlite.so  sqlite3.so

[root@PuaLinux1 ~]# vim /usr/local/php/php.ini    //在上面位置,继续添加,最终结果如下

extension= /usr/local/php/lib/php/extensions/no-debug-zts-20131226/curl .so
extension= /usr/local/php/lib/php/extensions/no-debug-zts-20131226/gd .so
#上面的已经添加,下面的继续添加
extension= /usr/local/php/lib/php/extensions/no-debug-zts-20131226/mysqli .so
extension= /usr/local/php/lib/php/extensions/no-debug-zts-20131226/pdo_mysql .so
extension= /usr/local/php/lib/php/extensions/no-debug-zts-20131226/pdo_sqlite .so
extension= /usr/local/php/lib/php/extensions/no-debug-zts-20131226/sqlite3 .so

 [root@PuaLinux1 ~]# service myhttpd restart
测试安装,在浏览器中输入192.168.1.11

各个模块已经正常!

 11.Sqlite不用安装,其实有一个数据库驱动即可,点击下一步

选择数据库驱动

 已经有了数据库驱动,填写数据库和博客信息,下一步

已经没有什么问题

 12.安装完成,看到欢迎界面

zblog安装成功的欢迎界面

登录后台:192.168.1.00/zb_system/login.php

zblog后台首页

php.ini的写法说明

在平时我们的写法中,有两种,一种是直接跟绝对路径,就是这个写法:

extension= /usr/local/php/lib/php/extensions/no-debug-zts-20131226/sqlite3 .so

还一种,是可以先定义extension的目录,然后就只需要写模块名字了:

extension_dir= /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
extension=sqlite3.so