首页 / PHP / PHP扩展开发编译环境的搭建
PHP扩展开发编译环境的搭建
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP扩展开发编译环境的搭建,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2384字,纯文字阅读大概需要4分钟。
内容图文
PHP允许使用扩展的方式,直接使用C语言开发PHP的功能,由于编译的问题,很多底层和框架的基础工作如果用PHP必然会带来额外的开销,降低系统的吞吐量,必然yaf就是这样的思路,把框架封装在扩展里,让系统开销降低到最小,基本接近不用框架的性能水平。
首先是获取PHP的源代码,这里提供一个PHP源码的下载地址,目前最新的是PHP7.1,不够考虑到我一直在用的环境,这里选择PHP 5.4.31为例。
第二是在Windows平台下的PHP编译部署。在Windows下需要用到Visual Studio,PHP 5.4.31用到的是Visual Studio 2008,同时需要升级到vS2008 SP1编译才能正常编译使用。否则在部署之后就会出现无法加载的问题。
注意,在此之前,windows需要先安装php,并把php加入到环境变量中,推荐安装xampp,一步到位。
VS2008 SP1 :下载地址
PHP 5.4.31源码:下载地址
PHP5ts.lib:下载地址
安装完开发环境之后,就可以开始进行配置了。在Windows下开发扩展在创建项目时比在Ubuntu上要麻烦的多,一个是需要PHP的源代码,还有一个就是配置需要先构建一个项目,然后手动配置,不能像Ubuntu下那么直接执行一个脚本就完事了。将源代码部署在E:\Projects\php-5.4.45-src路径下,然后使用管理员身份运行终端(cmd.exe)然后
cd E:\Projects\php-5.4.45-src\ext php ext_skel_win32.php --extname=hello
就可以构建一个PHP扩展的开发项目,(路径在 E:\Projects\php-5.4.45-src\ext\hello)可以看到如下图所示的项目文件
利用之前安装好的VS2008SP1 打开这个项目。可以看到如下内容
右键选中项目 打开右键菜单-->属性,如下
点击C/C++-->常规,找到并打开如下图红圈所示
把这是个地址都修改成PHP源码部署的绝对地址,这样就不会出现稍微移动一下项目位置就会出现不能编译的问题,修改后的地址如下
配置好之后,还需要在PHP源码上做一些设置,
找不到..main\config.w32.h文件的错误
(2)需要单独下载php5ts.lib并进行配置,否则会出现
1>LINK : fatal error LNK1181: 无法打开输入文件“php5ts.lib”
错误,将php5ts.lib解压到E:\Projects\php-5.4.45-src\build,然后打开项目属性--->链接器--->输入,然后把值改成如下图标识的样子。
到此为止,就可以开始编译项目了。编译出来的动态库,通过在php.ini后增加扩展的方式,然后重启xampp,就可以通过phpinfo()函数看到了。
第三是在Ubuntu平台下的编译部署,在Ubuntu下开发php扩展要简单的多,首先一样先安装xampp for Ubuntu,安装方法可以参考我前一篇文章《Ubuntu16.04的PHP开发环境配置》。然后配置系统的php环境,执行如下命令
将系统php和xampp中的php链接在一起,这样可以方便测试php扩展。系统的php命令路径在 cd /usr/local/bin,所以先切换到该路径下
cd /usr/local/bin sudomv php php-5.4.45sudomv php-cgi php-cgi-5.4.45sudomv php-config php-config-5.4.45sudomv phpize phpize-5.4.45sudoln -s /opt/lampp/bin/php-5.4.31 php sudoln -s /opt/lampp/bin/php-cgi-5.4.31 php-cgi sudoln -s /opt/lampp/bin/php-config-5.4.31 php-config sudoln -s /opt/lampp/bin/phpize-5.4.31 phpize
sudo ln -s /opt/lampp/etc/php.ini /usr/local/lib/php.ini
执行之后,xampp apache使用的php和终端使用的php就是同一个了。
接下来就可以开始创建项目了,设置PHP源码放置在 home/Projects/php-5.4.45-src
注意 ext_skel 刚开始是没有执行权限的,需要执行如下命令 给予执行权限
chmod 777 ext_skel
那么接下去创建项目可以执行如下的命令
cd /home/Projects/php-5.4.45-src/ext sudo ./ext_skel --extname=hello
cd hello
gedit config.m4 /*找到第16行和第18行去掉前面的dnl注释,如下图所示*/ sudo phpize sudo ./configure sudomake && makeinstallsudomake test
注意保存文件之后,还需要执行phpize,否则还是会碰到不生成.so文件的问题。
原文:http://www.cnblogs.com/fishyxj/p/7120653.html
内容总结
以上是互联网集市为您收集整理的PHP扩展开发编译环境的搭建全部内容,希望文章能够帮你解决PHP扩展开发编译环境的搭建所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。