phpzie 不完全使用教程

zenwong 2010-02-17 02:14:57
原文地址:http://doc.zenw.org/developer/ch03s05.html



phpzie

phpize 命令是用来准备 PHP 扩展库的编译环境的。

如果你的PHP不支持mysql、pdo、mbstring这样的扩展库的话,可以没有必要重新编译PHP,直接使用phpize进行添加编译就可以了


如何使用

-- 进入要安装的扩展包的源代码目录 --

(拿APC为例)

# cd /usr/local/src/APC-3.0.19

-- 运行phpzie,生成configure文件 --

# /usr/local/php/bin/phpzie

Note
如果这一步发生错误,请看这里。如果没有,请跳过:

# /usr/local/php/bin/phpize

Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF
environment variable is set correctly and then rerun this script.

通过安装 autoconf 可以解决
centos下执行 yum install autoconf即可



-- 开始编译扩展包 --

# ./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/local/php/bin/php-config

# make

# make install



-- 拷贝添加SO文件 --

# cp /usr/local/lib/php/extensions/no-debug-zts-20060613/apc.so /usr/local/php/lib/php/extensions/apc.so

# chmod 755 /usr/local/php/lib/php/extensions/apc.so


-- 修改PHP.INI使之启用刚才编译的模块 --

修改 php.ini下

extension_dir = "./"

extension_dir = "/usr/local/php/lib/php/extensions"

配置/etc/php.ini 末尾加入

(此步用于APC 其他扩展按具体情况而定)

extension=apc.so

apc.enabled = 1

apc.cache_by_default = on

apc.shm_segments = 1

apc.shm_size = 128

apc.ttl = 7200

apc.user_ttl = 7200

apc.num_files_hint = 1024

apc.write_lock = On

apc.gc_ttl=3600

apc.ttl=0

apc.mmap_file_mask=/tmp/apc.XXXXXX


重启webservice


完成


官方解释

用 phpize 编译共享 PECL 扩展库

http://docs.php.net/manual/zh/install.pecl.phpize.php 用 phpize 编译共享 PECL 扩展库


有时候不能用 pear 安装命令。这可能是因为在防火墙后面,或者是因为想要安装的扩展库还没有 PEAR 兼容的包,例如 CVS 中尚未发布的扩展库。如果要编译这种扩展库,可以用更底层的编译工具来手工进行编译。

phpize 命令是用来准备 PHP 扩展库的编译环境的。下面例子中,扩展库的源程序位于 extname 目录中:

$ cd extname
$ phpize
$ ./configure
$ make
# make install

成功的安装将创建 extname.so 并放置于 PHP 的扩展库目录中。需要调整 php.ini,加入 extension=extname.so 这一行之后才能使用此扩展库。


将 PECL 扩展库静态编译入 PHP

http://docs.php.net/manual/zh/install.pecl.static.php 将 PECL 扩展库静态编译入 PHP


有时可能需要将扩展库静态编译到 PHP 中。这需要将扩展库源程序放入 php-src/ext/ 目录中去并告诉 PHP 编译系统来生成其配置脚本。

$ cd /your/phpsrcdir/ext
$ pear download extname
$ gzip -d < extname.tgz | tar -xvf -
$ mv extname-x.x.x extname

这将产生以下目录:

/your/phpsrcdir/ext/extname

此时强制 PHP 重新生成配置脚本,然后正常编译 PHP:

$ cd /your/phpsrcdir
$ rm configure
$ ./buildconf --force
$ ./configure --help
$ ./configure --with-extname --enable-someotherext --with-foobar
$ make
$ make install

Note: 要运行“buildconf”脚本,需要 autoconf 2.13 和 automake 1.4+(更新版本的 autoconf 也许能工作,但不被支持)。

是否用 --enable-extname 或 --with-extname 取决于扩展库。通常不需要外部库文件的扩展库使用 --enable。要确认的话,在 buildconf 之后运行:

$ ./configure --help | grep extname







更多内容可访问:
http://www.zenw.org
http://doc.zenw.org
http://doc.zenw.org/linux
http://doc.zenw.org/mysql
http://doc.zenw.org/developer
...全文
159 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zenwong 2010-02-18
  • 打赏
  • 举报
回复
引用 1 楼 zjstandup 的回复:
此时强制 PHP 重新生成配置脚本,然后正常编译 PHP:  这句话是不是说以前那些编译参数都要带上?


理论上是的
天降大任于斯 2010-02-18
  • 打赏
  • 举报
回复
此时强制 PHP 重新生成配置脚本,然后正常编译 PHP: 这句话是不是说以前那些编译参数都要带上?

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧