草庐IT

编译时

全部标签

php - zend 引擎如何编译 php 代码或 php 编译器如何工作?

大家好,任何人都知道zend引擎如何编译php代码。例如。在java中,我们的代码在转换为机器语言之后被编译为字节码。像明智的zend引擎如何编译php代码?请帮助我。 最佳答案 这与PHP的想法是一样的:第一步:PHP源代码(即一些文本)被编译成一组操作码第二步:执行那些操作码。默认情况下,每次执行PHP脚本时都会完成此编译——这会占用一些CPU。这就是您可以使用一些操作码缓存(如APCextension),将操作码存储在内存中的原因——避免冗余编译步骤。您将能够在SebastianBergmann的以下演示中找到有关这些过程的一

php - JSON 未在 php 中编译

我在Ubuntu12.04上安装了PHP版本5.5.1-2,并且JSON没有与它捆绑在一起(据我所知)。我读到我必须使用--enable-json或--with-json选项重新安装php。所以我的问题是:如何验证未安装JSON?如果没有,我是否像这样重新安装php:apt-getinstallphp--with-json(是否包括--enable-json)?如果我重新安装php,我当前的设置会丢失吗?谢谢 最佳答案 如果您还没有安装它:sudoapt-getinstallphp5-json(更多信息:http://iterati

php - 编译失败 : POSIX collating elements are not supported

我刚刚在我们的服务器上安装了一个网站和旧版CMS,但出现了POSIX编译错误。幸运的是,它只出现在后端,但客户很想摆脱它。Warning:preg_match_all()[function.preg-match-all]:Compilationfailed:POSIXcollatingelementsarenotsupportedatoffset32in/home/kwecars/public_html/webEdition/we/include/we_classes/SEEM/we_SEEM.class.phponline621据我所知,这是导致问题的较新版本的PHP。这是代码:fu

php - 使用已编译的 PHP 代码为网站提供服务

显然可以编译PHP并将其与解释器分离:http://en.wikipedia.org/wiki/Php#Compilers但是一旦您这样做了,您将如何配置apache以便它能够使用编译的PHP而不是解释的PHP为网站提供服务? 最佳答案 https://github.com/facebook/hiphop-php/wiki/Running-HipHop这里有一个关于如何编译WordPress以及如何运行它的示例。但是,对于较小的项目,使用APC会好得多。它提供了极大的速度提升——虽然不如hiphop,但您仍然可以使用Apache、e

源码编译系列之mpv播放器编译教程

源码编译系列之mpv播放器编译教程编译mpv播放器有两种方法:手工下载mpv源码编译,然后编译安装,。通过mpv-build工具编译安装,编译简单,依赖库版本脚本自动下载,但跟X相关库问题还是需要自己解决。编译mpv前准备编译过程中需要的依赖包如下:sudozypperin-yxscreensaverlibXss-devellibXpresent-devellibXv-devel如果缺少一些库,编译时还是有一些错误信息,比如下面这个关键问题:INFO:cfg:err:Packagexscrnsaverwasnotfoundinthepkg-configsearchpath.Perhapsyou

php - 在没有root CentOS的情况下编译geos

我一直在尝试在我的受限(无根)环境中编译geos,但我遇到了一些困难...我做了以下wgethttp://download.osgeo.org/geos/geos-3.4.2.tar.bz2tarjxfgeos-3.4.2.tar.bz2cdgeos-3.4.2nano~/.bash_profile#IaddedPATH=$PATH:$HOME/local/binexportPATH./configure--enable-php--prefix=$HOME/local/&&makeclean&&make我收到以下错误Makingallinphpmake[2]:Enteringdirec

php - 使用 freetype 编译 PHP 报错

我自己配置​​了PHP,包含了我需要的所有库...但后来意识到我忘记了freetype库。所以我回到我的php-5.3.2目录并运行./configure'--with-free-type=/usr/local/lib'PHP的配置很好,没有错误。但是当我运行make时:collect2:ldreturned1exitstatusmake:***[sapi/cgi/php-cgi]Error1经常出现的事情:/php-5.3.2/ext/libxml/libxml.c:336:undefinedreferenceto`ts_resource_ex'/php-5.3.2/ext/sqli

php - 是否可以在不重新编译的情况下向 PHP 添加 GD/TTF 支持?

我尝试在SO上搜索此主题,但所有结果都是关于重新编译的,而不是关于不重新编译的。有没有人用过这个->dl()可用于加载动态库:http://php.net/manual/en/function.dl.php是否可以加载GD和TrueType字体库,以便我可以访问函数imagettfbbox()和imagettftext()我正在使用CentOS、Apache、PHP5.25。谢谢 最佳答案 大多数Linux发行版都有一个php-gd(或php5-gd)包,可以通过包管理器轻松获得。您只需要找到它并安装它。对于Ubuntu和Debia

php - PHP 缓存 vs 编译的问题

据我了解,如果您使用APC、eAccelerator等PHP缓存程序,那么操作码将存储在内存中,以便在后续请求时更快地执行。我的问题是,假设您使用的是像phc甚至HPHP这样的编译器(尽管我知道它们在动态构造方面存在问题),为什么编译脚本总是更好/更快?为什么要存储操作码,因为它们必须由Zend引擎重新读取,Zend引擎使用C函数来执行它,而您只需编译并跳过该步骤? 最佳答案 您不能简单地编译为c并让您的php脚本以相同的方式执行。HPHP进行真正的编译,但它不支持php功能的整个超集。其他编译器实际上只是在二进制文件中嵌入了一个p

php - 静态编译 php pecl 扩展(在二进制文件中与 extension=ext.so)会提高性能吗?

在php二进制文件中编译pecl扩展是否会提高性能?我希望我的术语是正确的,但是:http://php.net/manual/en/install.pecl.static.php就是这个意思我们有一小部分扩展,几乎在每个脚本执行中都会用到,我们认为将它们放在mod_php二进制文件中而不是通过extension=ext.so@php.d/php加载会更明智。ini.此外,我们确实使用自编译的php二进制文件,而不是基于包(rpm/dpg/等)的二进制文件。所以这样做是相当微不足道的。有人吗?谢谢! 最佳答案 没有。即使对于老式的CG