henda 发表于 2018-12-17 12:52:56

使用phpize为编译好的PHP安装拓展模块

  1.应用场景;
  在实际工作中,我们往往会出现一种情况就是我们的环境都已经部署好了,但是突然整个环境又缺少了某一个模块,如果你重新去编译,那你的工作量将很大,而且方式也不可取!PHP官方给你了一个给力的工具,叫做phpize,通过phpize这个工具,在不用重新去编译我们的程序之外,可以单独编译模块,然后将模块打入PHP.ini配置文件中,那么这个模块就可以正常运行了!
1. 什么是phpize
  phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块。
http://www.pualinux.com/zb_users/upload/2015/11/201511261448518021211338.png
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格式的软件包
  # yum install -y unzip                                                                  //我们下载的zip的压缩包,需要用unzip解压
  # unzip Z-BlogPHP_1_4_Deeplue_150101.zip -d /usr/local/src/   //解压
  # mv /usr/local/src/Release/* /usr/local/apache2.4/htdocs/          //移动到网站根目录
  # chown -R apache:apache/usr/local/apache2.4/htdocs/            //更改文件权限
  环境检测
  浏览器输入192.168.1.11→→我已阅读并同意此协议→→发现还有部分组件没有安装(不需要全部安装)
http://www.pualinux.com/zb_users/upload/2015/11/201511261448518370768347.png
  然后函数部分,curl没有安装
http://www.pualinux.com/zb_users/upload/2015/11/201511261448518417974795.png
  其中我们看到有!的是必装,数据库必装一个,但是么有!的提示,没关系,接着下一步,会发现数据库驱动为空,那么zblog将无法成功安装,因为zblog的PHP程序无法连接到数据库
http://www.pualinux.com/zb_users/upload/2015/11/201511261448518721125809.png
4.安装PHP拓展模块Curl
  # cd /usr/local/src/php-5.6.13/ext/curl/         //模块已经存在,只是没有安装,在我们解压的php源码目录下有一个ext目录,都是模块
  # yum install -y autoconf                              //使用phpize工具的时候会依赖
  # /usr/local/php/bin/phpize                     // phpize是用来扩展php扩展模块的工具
Configuring for:PHP Api Version:         20131106Zend Module Api No:      20131226Zend Extension Api No:   220131226  # yum install -y libcurl-devel                     //预编译会依赖此软件包
  # ./configure --with-php-config=/usr/local/php/bin/php-config         //php-config文件是一个简单的命令脚本,用于获取所安装的php信息,读取php安装的一些参数
  # 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/  查看生成的模块
  # ls /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
curl.soopcache.so         #curl.so就是我们需要的这个模块  让php支持此模块
  # vim /usr/local/php/php.ini
900 ;extension=php_pgsql.dll901 ;extension=php_shmop.dll   #在900多行,模块区域,添加下面这一样902 extension=/usr/local/php/lib/php/extensions/no-debug-zts-20131226/curl.so  # service myhttpd restart
  测试结果,curl正常
http://www.pualinux.com/zb_users/upload/2015/11/201511261448518692633942.png
5.安装PHP模块GD2
  GD库是php处理图形的扩展库
  # cd /usr/local/src/php-5.6.13/ext/gd/
  # yum install libpng-devel                        //安装gd会依赖
  # /usr/local/php/bin/phpize
  # ./configure --with-php-config=/usr/local/php/bin/php-config
  # 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/  # vim /usr/local/php/php.ini
902 extension=/usr/local/php/lib/php/extensions/no-debug-zts-20131226/curl.so902 extension=/usr/local/php/lib/php/extensions/no-debug-zts-20131226/gd.so   #curl下面添加此行#手动添加的模块都是在这个路径下面,默认,但是在当前的目录下的modules下面也有一份6.安装PHP数据库驱动MySqli
  数据库驱动不需要全部安装,为了熟悉一下phpize工具,我们全部安装,mysqli驱动是一个访问新版mysql的高级功能,比如存储过程
  # cd /usr/local/src/php-5.6.13/ext/mysqli/
  # /usr/local/php/bin/phpize
  # mkdir -p ext/mysqlnd/   //会依赖mysqlnd里面的文件
  # ln -s /usr/local/src/php-5.6.13/ext/mysqlnd/* ./ext/mysqlnd/
  # ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/mysql/bin/mysql_config      //这样安装就不会报错,解决所有依赖
  # 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
  # cd ../pdo_mysql/
  # /usr/local/php/bin/phpize
  # ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/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数据库,这里只是演示模块的安装
  # cd ../sqlite3/
  # cp config0.m4 config.m4
  # /usr/local/php/bin/phpize
  # ./configure --with-php-config=/usr/local/php/bin/php-config
  # make ; make install
9.安装PHP数据库驱动PDO_SQlite
  # cd ../pdo_sqlite/
  # /usr/local/php/bin/phpize
  # yum install -y sqlite-devel
  # ./configure --with-php-config=/usr/local/php/bin/php-config
  # make ; make install
10.将所有模块添加到PHP,使php支持安装的模块
  # cd ; ls /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
curl.sogd.somysqli.soopcache.sopdo_mysql.sopdo_sqlite.sosqlite3.so  # vim /usr/local/php/php.ini    //在上面位置,继续添加,最终结果如下
extension=/usr/local/php/lib/php/extensions/no-debug-zts-20131226/curl.soextension=/usr/local/php/lib/php/extensions/no-debug-zts-20131226/gd.so#上面的已经添加,下面的继续添加extension=/usr/local/php/lib/php/extensions/no-debug-zts-20131226/mysqli.soextension=/usr/local/php/lib/php/extensions/no-debug-zts-20131226/pdo_mysql.soextension=/usr/local/php/lib/php/extensions/no-debug-zts-20131226/pdo_sqlite.soextension=/usr/local/php/lib/php/extensions/no-debug-zts-20131226/sqlite3.so  # service myhttpd restart
  测试安装,在浏览器中输入192.168.1.11
http://www.pualinux.com/zb_users/upload/2015/11/201511261448519002220572.png
  11.Sqlite不用安装,其实有一个数据库驱动即可,点击下一步
http://www.pualinux.com/zb_users/upload/2015/11/201511261448519039505834.png
  已经有了数据库驱动,填写数据库和博客信息,下一步
http://www.pualinux.com/zb_users/upload/2015/11/201511261448519065776871.png
  12.安装完成,看到欢迎界面
http://www.pualinux.com/zb_users/upload/2015/11/201511261448519100164515.png
  登录后台:192.168.1.00/zb_system/login.php
http://www.pualinux.com/zb_users/upload/2015/11/201511261448519141881828.png
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
页: [1]
查看完整版本: 使用phpize为编译好的PHP安装拓展模块