php模块安装的方式
1、静态安装
将先将在安装php之前先将需要安装的程序装上,如ftp、mhash、mcrypt……安装完成后,解压php安装包,执行./configure
--with-ftp
--with-mhash
--wth-mcrypt等等。后面具体跟的参数可以参看./configure
--help查看。编译好后,执行make
make
install
就行了。
2、动态安装
而在往往我们进行编译php时经常会忘记添加某扩展,后来想添加扩展,但是因为安装php后又装了一些东西如PEAR等,不想再重新装php,于是可以采用phpize来动态加载需要安装的模块。
具体实现方法如下(这里以忘记安装pdo_mysql模块为例):
cd
/root/source/php-5.3.10/ext/pdo_mysql
/usr/local/php/bin/phpize
在安装完mysql后,并不是进入/root/source/mysql-5.5.21目录运行phpize,而是进入php的源文件中要增加的扩展模块的文件目录---也就是/root/source/php-5.3.10/ext/pdo_mysql目录执行phpize。如果不是这样操作的话就会提示下面的错误:
Cannot
find
config.m4.
Make
sure
that
you
run
'/usr/local/php/bin/phpize'
in
the
top
level
source
directory
of
the
module
关于上面的这个错误,我不得不鄙视下网上有些自以为是的家伙,自认为对所有的安装操作很懂,报上面的错误的时候,去修改源代码,搞的乱七八糟,误人子弟。根本不按php官方的文档操作。
目录/root/source/php-5.3.10/ext/pdo_mysql
,在运行phpize命令前并没有configure文件,只有config.m4文件。运行phpize就生成了一个可执行的configure文件。此时就可以按照下的方法编译了:
./configure
--with-php-config=/usr/bin/php-config
(还可以加一些其他的参数,可通过./configure
--help查看)
make
make
install
编译完成后会提示扩展模块生成在/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626目录。
修改php.ini文件
vi
/usr/local/php/etc/php.ini
在其文件结尾加入下面的内容:
extension_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626"
extension=pdo_mysql.so
安装完成后,重启php-fpm和web服务器。(因为我用的是php-fpm和tengine,如果用的是apache则也重启相应的程序,重新加载就行了)
进入php源程序目录中的ext目录中,这里存放着各个扩展模块的源代码,选择你需要的模块,比如curl模块:cd curl
执行phpize生成编译文件,phpize在PHP安装目录的bin目录下
/usr/local/php5/bin/phpize
运行时,可能会报错:Cannot find autoconf. Please check your autoconf installation and
the $PHP_AUTOCONF
environment variable is set correctly and then rerun this
script.,需要安装autoconf:
yum install autoconf(RedHat或者CentOS)、apt-get install
autoconf(Ubuntu Linux)
/usr/local/php5/bin/php -v
执行这个命令时,php会去检查配置文件是否正确,如果有配置错误,
这里会报错,可以根据错误信息去排查!
你这个不是用源码安装的,当然不会在此目录了,
如果你这个是centos系统,系统自带的安装基本上就是rpm或者yum安装的
这两种安装方式装PHP扩展的时候,一般不用phpize方式,比如要装一个gd扩展,
直接用命令 yum install php_gd即可完成在线安装
phpize 主要负责生成扩展的配置文件和Makefile,首次编译php,zend extenion扩展会生成动态库文件.so,比如opcache 在编译php时就会生成opcache.so,前提在configure 的时候加入--enable-opcache
本文转载自互联网,如有侵权,联系删除