1.应用场景;
在实际工作中,我们往往会出现一种情况就是我们的环境都已经部署好了,但是突然整个环境又缺少了某一个模块,如果你重新去编译,那你的工作量将很 大,而且方式也不可取!PHP官方给你了一个给力的工具,叫做phpize,通过phpize这个工具,在不用重新去编译我们的程序之外,可以单独编译模 块,然后将模块打入PHP.ini配置文件中,那么这个模块就可以正常运行了!
phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块。
使用phpize之前,你必须有一个环节,这里我们按照了LAMP编译安装的环境来做phpize的实验,不过我们需要使用一个比phpize更为直观的方式来看我们的模块有没有安装成功,所以我们受用了zblog博客来举例说明!
Z-Blog是由RainbowSoft Studio开发的一款小巧的,基于ASP和PHP平台的Blog程序,目前PHP程序也逐渐成熟,小巧功能强悍,个人博客的不错选择
常见的博客系统:Wordpress,emBlog,Zblog等,其中Wordpress是世界上著名,使用人数也是最多的博客系统!zblog比较量级别,适合个人博客用,比如我Pualinux博客,就是使用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→→我已阅读并同意此协议→→发现还有部分组件没有安装(不需要全部安装)
然后函数部分,curl没有安装
其中我们看到有!的是必装,数据库必装一个,但是么有!的提示,没关系,接着下一步,会发现数据库驱动为空,那么zblog将无法成功安装,因为zblog的PHP程序无法连接到数据库
[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正常
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下面也有一份
|
数据库驱动不需要全部安装,为了熟悉一下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,先将其他的文件也做完!
|
[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/
|
没有安装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
[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
[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.安装完成,看到欢迎界面
登录后台:192.168.1.00/zb_system/login.php
在平时我们的写法中,有两种,一种是直接跟绝对路径,就是这个写法:
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