php下载网站源码-缩放 PHP 源代码

相信任何一个稍有追求的PHP程序员以前都曾有过阅读PHP源码的冲动,但恐怕很多人还没有把这种冲动转化为行动。 虽然有一小部分人行动了,但一直没能维护起来——原因很简单:代码太多,太复杂,完全无从下手——当然我也是大多数之一的人。 其实有时候我个人觉得php下载网站源码,可能没有必要从头开始一行一行的读源码,甚至可能不可行。

如果是这样的话,我们如何知道PHP程序在PHP内部是如何执行的呢? 阅读文档(不是PHP官方提供的)和别人写的文章(比如我前段时间翻译的:深入理解Zend执行引擎)只能学到一些理论知识,读多了总是会感觉有点欠缺。 编程本身就是一个实践性的工作,就像同学的某种编程语言一样,我们只有用这种语言写出程序并运行写好的程序才能掌握这门语言。 例如,当我们学习PHP语言时,我们可以编写最后一段PHP代码,然后在代码中使用echo/print/var_dump或函数等语句来输出变量,然后确认某个函数或语言特性的作用,让你在多次练习后能够学会PHP的各个方面。 类特性,从而达到掌握PHP语言的目的。 那么我们是否可以在PHP内部源代码中使用C语言中的printf函数(类似于PHP中的echo)来输出我们想要检测的变量的值呢? 这个其实是可以的,但是太冗长了,而且每次改源码都要重新编译的工作会害死人,而且这些做法也很业余。 专业的方法是调试PHP内部源代码,使用调试工具单步调试PHP源代码,使用调试工具复制我们想要查看的变量来确认源代码是如何工作的,这就是本次的主题本文。

首先声明本文使用的调试工具是gdb。 所有示例都是在类Unix平台上进行的(我是在MacOS上操作的,其实Windows上也可以使用gdb,只不过需要一些工具)。 另外,为了解释方面,我直接使用了命令行。 也可以使用eclipse等IDE工具进行调试。 其实如果你是Windows,也可以使用VS进行调试。 然而,在Windows下编译PHP有点特殊。 有这方面需求的朋友请自行搜索。 另外,本文假设您至少了解 gdb 的一些基本用法(本文仅使用一些基本用法)。 gdb的使用我就不介绍了。 对于那些不了解或者忘记如何使用gdb的人,我强烈建议你学习gdb,如果你掌握了如何使用gdb进行调试,那么你基本上可以自由地使用任何调优工具。

编译PHP源代码

可以从PHP官网下载PHP源码的压缩包,也可以从git.php.net的git库(或者github的镜像)克隆最新的代码库,然后切换到该分支对应的PHP版本。 本文使用的最新是PHP5.6,可以使用以下命令来完成这项工作:

〜>gitclonehttp://git.php.net/repository/php-src.git

~>cdphp-src

〜/ php-src>gitcheckoutPHP-5.6

php下载网站源码-缩放 PHP 源代码

如果您从 git 库克隆代码,则需要先运行 buildconf 命令:

〜/php-src>./buildconf

该命令会生成一个configure脚本php下载网站源码,该脚本会直接包含在从官网下载的源码包中。 如果你运行buildconf错误,可能是因为你的系统中没有autoconf工具。 可以使用包安装工具来安装,例如Ubuntu下的Apt-get,或者MacOS下的homebrew,编译所需的依赖包我就不介绍了。 基本上,如果编译过程中出现错误,可以通过网上搜索错误信息来查找自己缺少什么。 哪些依赖包。

php下载网站源码-缩放 PHP 源代码

如果你已经成功生成了configure脚本文件(或者使用了已经包含该脚本文件的源码包),就可以开始编译了。 为了扩展PHP源码,我们的编译会禁用所有扩展(不仅是一些必须包含的,这个PHP编译脚本会自己处理),我们使用下面的命令来完成编译和安装工作,假设安装路径是 $HOME/myphp:

〜/ php-src> ./configure --disable-all --enable-debug --prefix=$HOME/myphp

〜/ php-src>make-jN

php下载网站源码-缩放 PHP 源代码

〜/ php-src> makeinstall

注意这里的prefix参数必须是绝对路径,所以不能写成~/myphp。 另外,我们的编译只是针对区间,所以建议设置prefix参数,否则PHP会安装在默认路径下。 大部分时间Hou都在/usr/local/php中,这可能会造成一些不必要的污染。 另外,我们使用了两个选项,一个是--disable-all,表示严格禁止安装所有扩展(不仅必须安装一个),另一个是--enable-debug,表示编译PHP调试模式下的源代码,由于gcc的-g选项,它会将调试信息编译成最后的二进制补码程序。

其中命令make -jN,N代表你的CPU数量(或者CPU核心数),设置这个参数后,你可以使用多个CPU进行并行编译,这样可以提高编译效率,虽然这是在我们的在示例中这不是必需的。

ok,如果里面的所有命令都成功的话,秤的PHP二进制补码可执行程序就会安装在~/myphp文件夹中。

使用 gdb 进行缩放

我们先看一个简单的例子,在命令行执行以下命令:

〜/ myphp> gdb --argsbin / php -r“回显'helloworld';”

如果没有错误,你会看到gdb提示信息,我笔记本上的输出是:

GNUgdb (GDB) 7.8.1

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 网站源码 php下载网站源码-缩放 PHP 源代码 https://www.wkzy.net/game/143719.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务