nginx - 关于php模块的动态编译
程序员文章站
2022-06-06 15:52:08
...
写法1: --enable-zip
写法2:--enable-zip=shared
写法1是不是指要静态编译?
写法2是不是指要动态编译?会生成.so文件吗? 如果是的话,它与编译完PHP后,使用phpize命令进模块的增加有什么不同?
回复内容:
写法1: --enable-zip
写法2:--enable-zip=shared
写法1是不是指要静态编译?
写法2是不是指要动态编译?会生成.so文件吗? 如果是的话,它与编译完PHP后,使用phpize命令进模块的增加有什么不同?
原理参考:http://www.walu.cc/phpbook/5.2.md
写法1是静态编译,不会生产so文件;写法2是动态编译,会生产so文件。写法2是编译安装PHP时一起做的,实质结果和phpize仍然是一样的,同样要修改ini文件显示的配置扩展so。但是,写法2有几个相关的问题:
- 官方PHP发行源代码中不一定包含你需要的扩展源代码,因此你不能直接enable或with,如果要这样做则需要删除原理的configure文件并拷贝扩展源代码到ext目录,然后
./buildconf --force
重新生成configure文件 - 否则,如果官方PHP发行源代码中没包含你需要的扩展源代码你也没要一定要静态编译的方式安装,则有2个选择:一是如果支持pecl命令安装,则直接用pecl命令安装;如果扩展不支持pecl安装,才自己使用phpize何php-config命令编译安装
关于两种安装方式的区别,前面提到的网站中有相关的说明,主要是静态编译是直接将扩展编译到PHP主程序中了,其扩展调用的步骤不动态编译方式要简单,有利于提高性能。但是,大部分时候,这点性能应该是可以忽略的了
推荐阅读
-
Linux下查看nginx apache mysql php的编译参数
-
关于基于nginx+php组建的网站上传图片漏洞的修补方法
-
PHP动态编译出现Cannot find autoconf的解决方法
-
Centos6.4 编译安装 nginx php的方法
-
php关于精准计算的模块 BCMath
-
PHP没有数据库连接池怎么破?PHP环境下使用Nginx ngx_http_limit_req_module模块的高负载解决方案
-
不重新编译PHP为php增加openssl模块的方法
-
为Nginx动态添加模块的方法
-
PHP不重新编译,单独添加模块扩展的方法
-
Nginx之为已安装nginx动态添加模块的方法