这是一篇引用的文章,说的是关于phpize动太添加扩展的事,写得很好
尊重原著,请给他点赞,原文链接地址
为防资料丢失,我原模原样的复制过来记录,请给原著点赞
由于以 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 的:
1
./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了。