当前位置: 首页 > news >正文

linux的PHP扩展模块安装

PHP扩展模块安装

编译httpd时,有涉及动态和静态模块,PHP也一样有静态与动态之分,之前所涉及到的PHP安装都全部为静态,并没有任何动态的模块,所谓动态,就是一个独立存在的.so文件,在httpd中PHP就是以动态模块的形式被加载的。PHP一旦编译完成后,要想再增加一个功能的话,要么重新编译PHP,要么直接编译一个扩展模块(生成一个.so文件),然后在php.ini中配置一下,就可以被加载使用了。

1.查看PHP加载了哪些模块

[root@gary-tao ~]# /usr/local/php/bin/php -m
[PHP Modules]
bz2
Core
ctype
date
dom
ereg
exif
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mcrypt
mysql
mysqli
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
soap
sockets
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib

[Zend Modules]

2.安装一个PHP的redis扩展模块。

[root@gary-tao ~]# cd /usr/local/src/
[root@gary-tao src]# wget https://codeload.github.com/phpredis/phpredis/zip/develop 
[root@gary-tao src]# mv develop phpredis-develop.zip
[root@gary-tao src]# unzip phpredis-develop.zip  //yum install -y unzip
[root@gary-tao src]# cd phpredis-develop
[root@gary-tao phpredis-develop]# 
[root@gary-tao src]# cd phpredis-develop
[root@gary-tao phpredis-develop]# /usr/local/php7/bin/phpize //生成configure文件
Configuring for:
PHP Api Version:         20160303
Zend Module Api No:      20160303
Zend Extension Api No:   320160303
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
[root@gary-tao phpredis-develop]# yum install -y autoconf
[root@gary-tao phpredis-develop]# /usr/local/php7/bin/phpize
Configuring for:
PHP Api Version:         20160303
Zend Module Api No:      20160303
Zend Extension Api No:   320160303
[root@gary-tao phpredis-develop]# ls
acinclude.m4       cluster_library.h  config.sub    CREDITS            library.c         mkdeb.sh         redis_array.h       redis_commands.c  serialize.list
aclocal.m4         cluster.markdown   configure     debian             library.h         mkinstalldirs    redis_array_impl.c  redis_commands.h  tests
arrays.markdown    common.h           configure.in  debian.control     ltmain.sh         package.xml      redis_array_impl.h  redis_session.c
autom4te.cache     config.guess       config.w32    install-sh         Makefile.global   php_redis.h      redis.c             redis_session.h
build              config.h.in        COPYING       ISSUE_TEMPLATE.md  missing           README.markdown  redis_cluster.c     rpm
cluster_library.c  config.m4          crc16.h       liblzf             mkdeb-apache2.sh  redis_array.c    redis_cluster.h     run-tests.php
[root@gary-tao phpredis-develop]# ./configure --with-php-config=/usr/local/php7/bin/php-config
[root@gary-tao phpredis-develop]# echo $?
0
[root@gary-tao phpredis-develop]# make
[root@gary-tao phpredis-develop]# echo $?
0
[root@gary-tao phpredis-develop]# make install
Installing shared extensions:     /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/
[root@gary-tao phpredis-develop]# ls /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/
opcache.so  redis.so
[root@gary-tao phpredis-develop]# /usr/local/php7/bin/php -m
[PHP Modules]
bz2
Core
ctype
date
dom
exif
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mcrypt
mysqli
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
soap
sockets
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib

[Zend Modules]
[root@gary-tao phpredis-develop]# /usr/local/php7/bin/php -m |grep redis
[root@gary-tao phpredis-develop]# /usr/local/php/bin/php -i |grep extension_dir  //查看扩展模块存放目录,我们可以在php.ini中去自定义该路径 
PHP Warning:  Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in Unknown on line 0
extension_dir => /usr/local/php/lib/php/extensions/no-debug-zts-20131226 => /usr/local/php/lib/php/extensions/no-debug-zts-20131226
sqlite3.extension_dir => no value => no value
[root@gary-tao phpredis-develop]# vim /usr/local/php7/etc/php.ini  //增加一行配置(可以放到文件最后一行)

定义如下:
extension = redis.so

[root@gary-tao phpredis-develop]# /usr/local/php7/bin/php -m |grep redis
redis
增加示例图:

linux的PHP扩展模块安装

报错:

缺少autoconf包,安装yum install -y autoconf

linux的PHP扩展模块安装

这个不影响使用,如果要去掉它,可以在php.ini里设置一下timezone那个参数

linux的PHP扩展模块安装

举例:

你想编译一个扩展模块的时候,如果它自带的源码包ext下有这个目录,那就可以直接在目录下编译它,如果没有那就需要去官网下载,下面是给大家举例一个zip模块实验操作如下:

[root@gary-tao ~]# cd /usr/local/src/php-7.1.6
[root@gary-tao php-7.1.6]# ls
acinclude.m4      configure        install-sh          Makefile.global   php.gif                       README.RELEASE_PROCESS            server-tests.php
aclocal.m4        configure.in     libphp7.la          Makefile.objects  php.ini-development           README.SELF-CONTAINED-EXTENSIONS  snapshot
appveyor          CONTRIBUTING.md  libs                makerpm           php.ini-production            README.STREAMS                    stamp-h.in
build             CREDITS          libtool             meta_ccld         README.EXT_SKEL               README.SUBMITTING_PATCH           stub.c
buildconf         ext              LICENSE             missing           README.GIT-RULES              README.TESTING                    tests
buildconf.bat     EXTENSIONS       ltmain.sh           mkinstalldirs     README.input_filter           README.TESTING2                   travis
CODING_STANDARDS  footer           main                modules           README.MAILINGLIST_RULES      README.UNIX-BUILD-SYSTEM          TSRM
config.guess      generated_lists  makedist            netware           README.md                     README.WIN32-BUILD-SYSTEM         UPGRADING
config.log        genfiles         Makefile            NEWS              README.namespaces             run-tests.php                     UPGRADING.INTERNALS
config.nice       header           Makefile.frag       pear              README.NEW-OUTPUT-API         sapi                              vcsclean
config.status     include          Makefile.fragments  php7.spec         README.PARAMETER_PARSING_API  scripts                           win32
config.sub        INSTALL          Makefile.gcov       php7.spec.in      README.REDIST.BINS            server-tests-config.php           Zend
[root@gary-tao php-7.1.6]# cd ext/
[root@gary-tao ext]# ls
bcmath      date      ext_skel_win32.php  gmp        json      mysqlnd  pcre          pdo_odbc    pspell      simplexml  sqlite3   tokenizer  xsl
bz2         dba       fileinfo            hash       ldap      oci8     pdo           pdo_pgsql   readline    skeleton   standard  wddx       zip
calendar    dom       filter              iconv      libxml    odbc     pdo_dblib     pdo_sqlite  recode      snmp       sysvmsg   xml        zlib
com_dotnet  enchant   ftp                 imap       mbstring  opcache  pdo_firebird  pgsql       reflection  soap       sysvsem   xmlreader
ctype       exif      gd                  interbase  mcrypt    openssl  pdo_mysql     phar        session     sockets    sysvshm   xmlrpc
curl        ext_skel  gettext             intl       mysqli    pcntl    pdo_oci       posix       shmop       spl        tidy      xmlwriter
[root@gary-tao ext]# /usr/local/php7/bin/php -m |grep zip
[root@gary-tao ext]# cd zip/
[root@gary-tao zip]# ls
config.m4  config.w32  CREDITS  examples  lib  LICENSE_libzip  php_zip.c  php_zip.h  tests  TODO  zip_stream.c
[root@gary-tao zip]# /usr/local/php7/bin/phpize
Configuring for:
PHP Api Version:         20160303
Zend Module Api No:      20160303
Zend Extension Api No:   320160303
[root@gary-tao zip]# ./configure --with-php-config=/usr/local/php7/bin/php-config
[root@gary-tao zip]# make
[root@gary-tao zip]# echo $?
0
[root@gary-tao zip]# make install
Installing shared extensions:     /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/
[root@gary-tao zip]# ls /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/
opcache.so  redis.so  zip.so

转载于:https://blog.51cto.com/taoxie/2055099

相关文章:

  • hadoop3.0.0测验
  • 安装oracle数据库字符集编码
  • Kubernetes 中的服务发现与负载均衡
  • hdu2045
  • 高阶函数、返回函数、闭包、匿名函数、装饰器、偏函数
  • 应用脚手架创建一个React项目
  • Swift中字典的实现原理
  • mybatis之trim prefix= suffix= suffixOverrides= prefixOverrides=/trim的含义
  • derby常用语法
  • express中使用高德地图
  • 学习linux年薪轻松20万
  • 使用Notepad++开发C#,一个复杂点的csscript脚本
  • 如何像阿里巴巴一样高效跨企业项目协作
  • Python之多线程爬虫抓取网页图片
  • js获取页面宽度高度及屏幕分辨率
  • Codepen 每日精选(2018-3-25)
  • Django 博客开发教程 8 - 博客文章详情页
  • ES6核心特性
  • java第三方包学习之lombok
  • MQ框架的比较
  • OSS Web直传 (文件图片)
  • PHP 7 修改了什么呢 -- 2
  • Python连接Oracle
  • SpringBoot几种定时任务的实现方式
  • SQLServer之创建数据库快照
  • 阿里云购买磁盘后挂载
  • 搭建gitbook 和 访问权限认证
  • 面试遇到的一些题
  • 一个完整Java Web项目背后的密码
  • 译有关态射的一切
  • mysql面试题分组并合并列
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • ###C语言程序设计-----C语言学习(3)#
  • $GOPATH/go.mod exists but should not goland
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (七)理解angular中的module和injector,即依赖注入
  • (学习日记)2024.01.19
  • (转)人的集合论——移山之道
  • (转)使用VMware vSphere标准交换机设置网络连接
  • (转载)(官方)UE4--图像编程----着色器开发
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .NET学习全景图
  • .Net转前端开发-启航篇,如何定制博客园主题
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • [04]Web前端进阶—JS伪数组
  • [Angularjs]asp.net mvc+angularjs+web api单页应用之CRUD操作
  • [c#基础]DataTable的Select方法
  • [CERC2017]Cumulative Code
  • [Django ]Django 的数据库操作