`

PHP安装扩展模块

    博客分类:
  • PHP
阅读更多

给PHP安装扩展的方式有好多

     一、重新编译

         进入PHP源码目录./configure --prefix=/usr/local/php ...[其他编译参数]

   二、通过phpize添加扩展

        进入PHP源代码扩展应用目录ext,例如:

/usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/

       在pcntl目录下执行phpize命令然后在configure,运行结果如下:

 

 

[root@qzltxx pcntl]# phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
[root@qzltxx pcntl]# ./configure --with-php-config=/usr/local/php/bin/php-config
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking for cc... cc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking how to run the C preprocessor... cc -E
checking for icc... no
checking for suncc... no
checking whether cc understands -c and -o together... yes
checking for system library directory... lib
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for PHP prefix... /usr/local/php
checking for PHP includes... -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib
checking for PHP extension directory... /usr/local/php/lib/php/extensions/no-debug-zts-20090626
checking for PHP installed headers prefix... /usr/local/php/include/php
checking if debug is enabled... no
checking if zts is enabled... no
checking for re2c... no
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
checking for gawk... gawk
checking whether to enable pcntl support... yes, shared
checking for fork... yes
checking for waitpid... yes
checking for sigaction... yes
checking for getpriority... yes
checking for setpriority... yes
checking for wait3... yes
checking for sigprocmask... yes
checking for sigwaitinfo... yes
checking for sigtimedwait... yes
checking for ld used by cc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for /usr/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... yes
checking how to recognize dependent libraries... pass_all
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking the maximum length of command line arguments... 1966080
checking command to parse /usr/bin/nm -B output from cc object... ok
checking for objdir... .libs
checking for ar... ar
checking for ranlib... ranlib
checking for strip... strip
checking if cc supports -fno-rtti -fno-exceptions... no
checking for cc option to produce PIC... -fPIC
checking if cc PIC flag -fPIC works... yes
checking if cc static flag -static works... no
checking if cc supports -c -o file.o... yes
checking whether the cc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no

creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h
config.status: config.h is unchanged

  运行完后在make&&make install,运行结果如下:

 

    

[root@qzltxx pcntl]# make
/bin/sh /usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/libtool --mode=compile cc  -I. -I/usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl -DPHP_ATOM_INC -I/usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/include -I/usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/main -I/usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib  -DHAVE_CONFIG_H  -g -O2   -c /usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/pcntl.c -o pcntl.lo 
mkdir .libs
 cc -I. -I/usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl -DPHP_ATOM_INC -I/usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/include -I/usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/main -I/usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/pcntl.c  -fPIC -DPIC -o .libs/pcntl.o
/bin/sh /usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/libtool --mode=compile cc  -I. -I/usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl -DPHP_ATOM_INC -I/usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/include -I/usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/main -I/usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib  -DHAVE_CONFIG_H  -g -O2   -c /usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/php_signal.c -o php_signal.lo 
 cc -I. -I/usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl -DPHP_ATOM_INC -I/usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/include -I/usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/main -I/usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/php_signal.c  -fPIC -DPIC -o .libs/php_signal.o
/bin/sh /usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/libtool --mode=link cc -DPHP_ATOM_INC -I/usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/include -I/usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/main -I/usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib  -DHAVE_CONFIG_H  -g -O2   -o pcntl.la -export-dynamic -avoid-version -prefer-pic -module -rpath /usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/modules  pcntl.lo php_signal.lo 
cc -shared  .libs/pcntl.o .libs/php_signal.o   -Wl,-soname -Wl,pcntl.so -o .libs/pcntl.so
creating pcntl.la
(cd .libs && rm -f pcntl.la && ln -s ../pcntl.la pcntl.la)
/bin/sh /usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/libtool --mode=install cp ./pcntl.la /usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/modules
cp ./.libs/pcntl.so /usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/modules/pcntl.so
cp ./.libs/pcntl.lai /usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/modules/pcntl.la
PATH="$PATH:/sbin" ldconfig -n /usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/modules
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------

Build complete.
Don't forget to run 'make test'.

[root@qzltxx pcntl]# make test

Build complete.
Don't forget to run 'make test'.

PHP Warning:  Module 'pcntl' already loaded in Unknown on line 0

Warning: Module 'pcntl' already loaded in Unknown on line 0
PHP Warning:  Module 'pcntl' already loaded in Unknown on line 0

Warning: Module 'pcntl' already loaded in Unknown on line 0

=====================================================================
PHP         : /usr/local/php/bin/php 
PHP_SAPI    : cli
PHP_VERSION : 5.3.27
ZEND_VERSION: 2.3.0
PHP_OS      : Linux - Linux qzltxx 2.6.32-279.el6.x86_64 #1 SMP Fri Jun 22 12:19:21 UTC 2012 x86_64
INI actual  : /usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl/tmp-php.ini
More .INIs  :  
CWD         : /usr/local/src/EZHTTP-master/soft/php-5.3.27/ext/pcntl
Extra dirs  : 
VALGRIND    : Not used
=====================================================================
TIME START 2015-01-23 08:12:17
=====================================================================
FAIL Test pcntl wait functionality [tests/001.phpt] 
FAIL pcntl: pcntl_sigprocmask(), pcntl_sigwaitinfo(), pcntl_sigtimedwait() [tests/002.phpt] 
FAIL pcntl: SIG_BLOCK, SIG_UNBLOCK, SIG_SETMASK [tests/003.phpt] 
FAIL Bug #47566 (return value of pcntl_wexitstatus()) [tests/bug47566.phpt] 
FAIL pcntl_alarm() [tests/pcntl_alarm.phpt] 
FAIL pcntl_exec() [tests/pcntl_exec.phpt] 
FAIL pcntl_exec() 2 [tests/pcntl_exec_2.phpt] 
FAIL pcntl_exec() 3 [tests/pcntl_exec_3.phpt] 
FAIL Test function pcntl_fork() by calling it with its expected arguments [tests/pcntl_fork_basic.phpt] 
FAIL Test function pcntl_fork() by testing the process isolation in the forking hierarchy father -> son -> grandson where father can not knows his grandson [tests/pcntl_fork_variation.phpt] 
FAIL Test pcntl_get_last_error() [tests/pcntl_get_last_error.phpt] 
FAIL pcntl_signal() [tests/pcntl_signal.phpt] 
FAIL pcnt_signal_dispatch() [tests/pcntl_signal_dispatch.phpt] 
FAIL pcntl_wait() [tests/pcntl_wait.phpt] 
FAIL Closures as a signal handler [tests/signal_closure_handler.phpt] 
=====================================================================
TIME END 2015-01-23 08:12:21

=====================================================================
TEST RESULT SUMMARY
---------------------------------------------------------------------
Exts skipped    :    0
Exts tested     :   29
---------------------------------------------------------------------

Number of tests :   15                15
Tests skipped   :    0 (  0.0%) --------
Tests warned    :    0 (  0.0%) (  0.0%)
Tests failed    :   15 (100.0%) (100.0%)
Expected fail   :    0 (  0.0%) (  0.0%)
Tests passed    :    0 (  0.0%) (  0.0%)
---------------------------------------------------------------------
Time taken      :    4 seconds
=====================================================================

=====================================================================
FAILED TEST SUMMARY
---------------------------------------------------------------------
Test pcntl wait functionality [tests/001.phpt]
pcntl: pcntl_sigprocmask(), pcntl_sigwaitinfo(), pcntl_sigtimedwait() [tests/002.phpt]
pcntl: SIG_BLOCK, SIG_UNBLOCK, SIG_SETMASK [tests/003.phpt]
Bug #47566 (return value of pcntl_wexitstatus()) [tests/bug47566.phpt]
pcntl_alarm() [tests/pcntl_alarm.phpt]
pcntl_exec() [tests/pcntl_exec.phpt]
pcntl_exec() 2 [tests/pcntl_exec_2.phpt]
pcntl_exec() 3 [tests/pcntl_exec_3.phpt]
Test function pcntl_fork() by calling it with its expected arguments [tests/pcntl_fork_basic.phpt]
Test function pcntl_fork() by testing the process isolation in the forking hierarchy father -> son -> grandson where father can not knows his grandson [tests/pcntl_fork_variation.phpt]
Test pcntl_get_last_error() [tests/pcntl_get_last_error.phpt]
pcntl_signal() [tests/pcntl_signal.phpt]
pcnt_signal_dispatch() [tests/pcntl_signal_dispatch.phpt]
pcntl_wait() [tests/pcntl_wait.phpt]
Closures as a signal handler [tests/signal_closure_handler.phpt]
=====================================================================

You may have found a problem in PHP.
This report can be automatically sent to the PHP QA team at
http://qa.php.net/reports and http://news.php.net/php.qa.reports
This gives us a better understanding of PHP's behavior.
If you don't want to send the report immediately you can choose
option "s" to save it.	You can then email it to qa-reports@lists.php.net later.
Do you want to send this report now? [Yns]: n

[root@qzltxx pcntl]# make install
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20090626/

   最后修改php.ini配置文件,在最后一行添加,然后重启apache

extension=pcntl.so

  三、有些扩展可以通过pecl命令添加扩展

       例如安装Libevent扩展直接输入命令pecl install Libevent会在目录

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

    下生成Libevent.so,最后修改配置文件php.ini(同上一个方法)

     

 

  

分享到:
评论

相关推荐

    PHP7.2.6安装sodium扩展

    PHP7.2.6安装sodium扩展 ...安装 sodium 扩展模块需要安装 libsodium 依赖项,编译 PHP 源代码,生成扩展模块,并配置扩展模块的路径和名称。这样,开发者就可以使用 sodium 扩展模块来实现高级的加密和解密功能。

    php5.3.3_APC扩展模块

    **PHP 5.3.3 APC扩展模块详解** 在PHP的开发环境中,加速器(如Alternative PHP Cache,简称APC)扮演着至关重要的角色。APC是PHP的一个免费且开源的 opcode 缓存,用于提高PHP脚本的执行速度。在PHP 5.3.3版本中,...

    php离线安装所需要的扩展

    离线安装PHP扩展通常在无法连接到互联网或者网络环境不稳定的情况下非常实用。在描述中提到的场景中,我们有一个包含70个扩展安装包的压缩文件,这表明这些扩展涵盖了PHP的广泛功能,包括数据库连接、加密、图像处理...

    安装apache mysql php 手册&&开发apache,php扩展模块方法

    在本篇中,我们将详细探讨如何在Redhat Linux 9.0环境下安装这些组件以及开发Apache和PHP扩展模块的方法。 首先,我们从安装MySQL开始。MySQL是一款流行的开源关系型数据库管理系统,对于Web应用程序至关重要。安装...

    PHP安装redis模块

    本文将详细介绍如何在PHP环境中安装和配置Redis扩展模块。 首先,你需要确保你的系统中已经安装了PHP和Redis。对于PHP,你可以通过包管理器(如Ubuntu的`apt-get`或CentOS的`yum`)来安装。对于Redis,通常需要下载...

    解决php扩展安装不生效问题

    php安装扩展模块后,重启不生效的原因及解决办法 在lnmp运维环境中,我们经常会碰到有些php依赖的扩展模块没有安装,这就需要后续添加这些扩展模块。在扩展被安装配置后,往往会发现php-fpm服务重启后,这些扩展并...

    利用PHP扩展模块突破Disable_functions执行命令

    ### 利用PHP扩展模块突破Disable_functions执行命令 #### 概述 在PHP环境中,为了增强安全性,管理员通常会通过`disable_functions`设置来禁用一些潜在风险较高的函数,如`system`, `exec`, `passthru`, `shell_...

    php_memcache-3.0.8-5.5 32位dll扩展模块 download下载

    在描述中,"download下载"提示用户可以从提供的链接获取这个扩展模块的安装文件。 **标签解析:** - **php_memcache**:这是PHP的Memcache扩展,用于连接到Memcached服务器。 - **32位dll**:指示这个扩展是为32位...

    对PHP中mysqli扩展模块的探究及应用.pdf

    PHP 中 mysqli 扩展模块的探究及应用 mysqli 扩展模块是 PHP 中的一个重要组件,它提供了一系列的优点,用于与 MySQL 服务器进行交互。mysqli 扩展模块可以在 PHP5 和 MySQL 4.1.13 或更新的版本中使用。 mysqli ...

    php的suhosin扩展安装suhosin-github主分支包

    如果看到"Suhosin"出现在模块列表中,那么恭喜,你已经成功安装了Suhosin扩展。 记住,安装Suhosin只是安全策略的一部分。为了最大程度地利用其保护功能,你需要根据你的服务器环境和应用程序需求调整Suhosin的配置...

    [本人制作]PHP自定义模块参数-配置前后台扩展开发功能

    扩展插件通常以C语言编写,然后编译为PHP扩展,以提供原生性能。例如,MySQLi和PDO是用于数据库交互的扩展,GD库则用于图像处理。开发者可以通过编写扩展插件来实现特定的功能,如与第三方API的集成、数据加密解密等...

    SQLSRV43扩展模块

    SQLSRV43扩展模块,适用于PHP连接SQLSERVER,必要模块,支持PDO

    Ubuntu下安装php扩展

    在Ubuntu系统中,安装PHP扩展是一项常见的任务,用于增强PHP的功能。本文主要介绍不随同PHP编译,而是通过生成单独的`.so`文件来安装扩展的方法,这种方法虽然执行效率可能略低,但能实现模块化的扩展管理,使得在不...

    linux下PHP扩展的安装(curl)

    接着,添加curl扩展模块引用: ``` extension = curl.so ``` 这里,你可以选择不指定`extension_dir`,只需将`curl.so`复制到PHP默认的扩展目录`/usr/local/php5/lib/php/extensions/`,并在`php.ini`中添加`...

    PHP分词扩展模块 php_scws.dll nts-windows-x86

    SCWS简易分词PHP扩展模块,现测试在PHP5.3.8通过, 环境为IIS7+FastCGI nts PHP5.3.8 其他PHP5.3.X 理论上应该可用。 该模块为SCWS官方提供的SCWS-1.1.8源码进行编译。 因为官方没有提供 对应的非线程模块。

    Linux/FreeBSD下用C语言开发PHP的so扩展模块例解

    在Linux和FreeBSD操作系统上,使用C语言开发PHP的.so扩展模块是一项常见的任务,这主要涉及到PHP的内部机制以及C语言编程。这篇文章将深入解析这一过程,并提供一个实际的示例来帮助理解。 首先,我们需要了解PHP...

    centos下php安装pgsql和pdo_pgsql扩展,这是另一种方法,很简便,用.so文件来安装

    为了使PHP能够与PostgreSQL数据库进行交互,需要安装和配置PHP的pgsql和pdo_pgsql扩展。在本教程中,我们将探讨一种简便的方法,通过使用.so库文件直接安装这些扩展。 首先,.so文件是Linux下的动态链接库文件,...

    building-custom-php-extensions (编写自定义的PHP扩展模块, PHP扩展开发, PHP模块开发)

    自定义自己的PHP模块,用C语言开发自己的PHP函数,当我们想在PHP使用C语言强大的函数库的时候,我们可以通过编写自己的PHP函数过调用想要使用的其它C语言函数,使你的PHP程序更强大高效,要下的赶块...

    计算机前端-向军-sphinx全文检索引擎视频教程-07 安装PHP的Sphinx扩展模块.wmv

    计算机前端-向军-sphinx全文检索引擎视频教程-07 安装PHP的Sphinx扩展模块.wmv

    php扩展开发

    - **定义**:PHP扩展是用C语言编写的模块,它们可以添加新的功能到PHP中,或者改进现有的功能。 - **结构**: - **Zend引擎**:负责解析PHP脚本为操作码,并执行这些操作码。 - **PHP内核**:处理与服务器环境的...

Global site tag (gtag.js) - Google Analytics