您的位置:首页 > 编程语言 > PHP开发

用phpize单独编译安装PHP扩展模块

2014-03-05 00:00 1026 查看
由于以 php-fpm + Nginx 方式跑 PHP 要比 FastCGI + Apache 要高效得多,所以很多人会选择 Nginx,并以 php-fpm 的方式跑 PHP。选择这种方式,很多时候就需要自己源码编译 PHP 并安装。

关于FastCGI,PHP-CGI与PHP-FPM的相关知识,可以参考 概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM

关于PHP与php-fpm的安装,则可以参考 以源码编译的方式安装PHP与php-fpm

以源码编译安装的PHP,很多时候都是最小化安装,甚至连mysqli扩展都没有。如果这个时候需要一些扩展,比如gd库,soap模块这些,则必须得自己手动安装了。这个专题正是为了解决这些安装问题而编写的。

phpize

还是参考前面的两篇文章,我们当时是这样编译安装 PHP 的:

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm

后面的参数仅仅指定了 PHP 的安装目录,配置文件的位置,还有启动 php-fpm 模式而已。一般更全的编译方式可以参考 自己源码编译安装的PHP如何卸载? 里提到的:

./configure --prefix=/usr/local/php-5.3.5
--with-config-file-path=/usr/local/php-5.3.5/etc
--with-config-file-scan-dir=/usr/local/php-5.3.5/etc/conf.d
--enable-fpm
--with-fpm-user=www
--with-fpm-group=www
--with-pear
--with-curl
--with-gd
--with-jpeg-dir
--with-png-dir
--with-freetype-dir
--with-iconv
--with-mcrypt
--with-mhash
--with-zlib
--with-xmlrpc
--with-xsl
--with-openssl
--with-mysql
--with-mysqli
--with-pdo-mysql
--disable-debug
--enable-zip
--enable-sockets
--enable-soap
--enable-mbstring
--enable-magic-quotes
--enable-inline-optimization
--enable-memory-limit
--enable-xml
--enable-ftp
--enable-exif
--enable-wddx
--enable-bcmath
--enable-calendar
--enable-sqlite-utf8
--enable-shmop
--enable-dba
--enable-sysvsem
--enable-sysvshm
--enable-sysvmsg
make && make install

后面跟的参数是我们要的模块,但是随着工作的需要,我们如果还要增加一些模块,又不想重新编译php,这个时候我们就可以用phpize了。

如何使用 phpize

phpize 是属于 php-devel 中的东西,主要是设定 php 外挂模块的一些设定。一个实际例子可以看看这个 CentOS单独编译安装PHP gd库扩展

其实流程很简单:

下载扩展,解压,编译,安装。

去到PHP的源码目录,比如cd php-5.3.6/ext/gd,执行 phpize 即可。

再举一个例子,假如你的 PHP 不支持mysql,php的源码包在/usr/local/src/php-5.2.6,php安装目录是/usr/local/php。

cd /usr/local/src/php-5.2.6
cd ./ext/mysql
/usr/local/php/bin/phpize
./configure –with-php-config=/usr/local/php/bin/php-config
make
make install

这个时候你会看到mysql.so被拷贝到某个目录, 把mysql.so拷贝到你的extension_dir指向的路径, 在php.ini里增加extension=mysql.so

重启web服务器,看一下phpinfo,应该支持mysql了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: