给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扩展 ...安装 sodium 扩展模块需要安装 libsodium 依赖项,编译 PHP 源代码,生成扩展模块,并配置扩展模块的路径和名称。这样,开发者就可以使用 sodium 扩展模块来实现高级的加密和解密功能。
**PHP 5.3.3 APC扩展模块详解** 在PHP的开发环境中,加速器(如Alternative PHP Cache,简称APC)扮演着至关重要的角色。APC是PHP的一个免费且开源的 opcode 缓存,用于提高PHP脚本的执行速度。在PHP 5.3.3版本中,...
离线安装PHP扩展通常在无法连接到互联网或者网络环境不稳定的情况下非常实用。在描述中提到的场景中,我们有一个包含70个扩展安装包的压缩文件,这表明这些扩展涵盖了PHP的广泛功能,包括数据库连接、加密、图像处理...
在本篇中,我们将详细探讨如何在Redhat Linux 9.0环境下安装这些组件以及开发Apache和PHP扩展模块的方法。 首先,我们从安装MySQL开始。MySQL是一款流行的开源关系型数据库管理系统,对于Web应用程序至关重要。安装...
本文将详细介绍如何在PHP环境中安装和配置Redis扩展模块。 首先,你需要确保你的系统中已经安装了PHP和Redis。对于PHP,你可以通过包管理器(如Ubuntu的`apt-get`或CentOS的`yum`)来安装。对于Redis,通常需要下载...
php安装扩展模块后,重启不生效的原因及解决办法 在lnmp运维环境中,我们经常会碰到有些php依赖的扩展模块没有安装,这就需要后续添加这些扩展模块。在扩展被安装配置后,往往会发现php-fpm服务重启后,这些扩展并...
### 利用PHP扩展模块突破Disable_functions执行命令 #### 概述 在PHP环境中,为了增强安全性,管理员通常会通过`disable_functions`设置来禁用一些潜在风险较高的函数,如`system`, `exec`, `passthru`, `shell_...
在描述中,"download下载"提示用户可以从提供的链接获取这个扩展模块的安装文件。 **标签解析:** - **php_memcache**:这是PHP的Memcache扩展,用于连接到Memcached服务器。 - **32位dll**:指示这个扩展是为32位...
PHP 中 mysqli 扩展模块的探究及应用 mysqli 扩展模块是 PHP 中的一个重要组件,它提供了一系列的优点,用于与 MySQL 服务器进行交互。mysqli 扩展模块可以在 PHP5 和 MySQL 4.1.13 或更新的版本中使用。 mysqli ...
如果看到"Suhosin"出现在模块列表中,那么恭喜,你已经成功安装了Suhosin扩展。 记住,安装Suhosin只是安全策略的一部分。为了最大程度地利用其保护功能,你需要根据你的服务器环境和应用程序需求调整Suhosin的配置...
扩展插件通常以C语言编写,然后编译为PHP扩展,以提供原生性能。例如,MySQLi和PDO是用于数据库交互的扩展,GD库则用于图像处理。开发者可以通过编写扩展插件来实现特定的功能,如与第三方API的集成、数据加密解密等...
SQLSRV43扩展模块,适用于PHP连接SQLSERVER,必要模块,支持PDO
在Ubuntu系统中,安装PHP扩展是一项常见的任务,用于增强PHP的功能。本文主要介绍不随同PHP编译,而是通过生成单独的`.so`文件来安装扩展的方法,这种方法虽然执行效率可能略低,但能实现模块化的扩展管理,使得在不...
接着,添加curl扩展模块引用: ``` extension = curl.so ``` 这里,你可以选择不指定`extension_dir`,只需将`curl.so`复制到PHP默认的扩展目录`/usr/local/php5/lib/php/extensions/`,并在`php.ini`中添加`...
SCWS简易分词PHP扩展模块,现测试在PHP5.3.8通过, 环境为IIS7+FastCGI nts PHP5.3.8 其他PHP5.3.X 理论上应该可用。 该模块为SCWS官方提供的SCWS-1.1.8源码进行编译。 因为官方没有提供 对应的非线程模块。
在Linux和FreeBSD操作系统上,使用C语言开发PHP的.so扩展模块是一项常见的任务,这主要涉及到PHP的内部机制以及C语言编程。这篇文章将深入解析这一过程,并提供一个实际的示例来帮助理解。 首先,我们需要了解PHP...
为了使PHP能够与PostgreSQL数据库进行交互,需要安装和配置PHP的pgsql和pdo_pgsql扩展。在本教程中,我们将探讨一种简便的方法,通过使用.so库文件直接安装这些扩展。 首先,.so文件是Linux下的动态链接库文件,...
自定义自己的PHP模块,用C语言开发自己的PHP函数,当我们想在PHP使用C语言强大的函数库的时候,我们可以通过编写自己的PHP函数过调用想要使用的其它C语言函数,使你的PHP程序更强大高效,要下的赶块...
计算机前端-向军-sphinx全文检索引擎视频教程-07 安装PHP的Sphinx扩展模块.wmv
- **定义**:PHP扩展是用C语言编写的模块,它们可以添加新的功能到PHP中,或者改进现有的功能。 - **结构**: - **Zend引擎**:负责解析PHP脚本为操作码,并执行这些操作码。 - **PHP内核**:处理与服务器环境的...