Apache不会加载Zend Guard Loader

时间:2015-08-18 09:54:12

标签: php apache zend-guard

我使用Ubuntu 15.04 - 64位进行以下设置:

的Apache

  

服务器版本:Apache / 2.4.10(Ubuntu),   服务器内置:2015年7月24日17:25:18

PHP

  

PHP 5.6.4-4ubuntu6.2(cli)(建于2015年7月2日15:29:28)版权所有,   (c)1997-2014 PHP Group Zend Engine v2.6.0,版权所有(c),   1998-2014 Zend Technologies与Zend OPcache v7.0.4-dev,版权所有,   (c)1999年至2014年,Zend Technologies

我的php.ini(最后5行)

; Local Variables: 
; tab-width: 4 
; End
zend.loader=1
zend_extension="/var/www/extensions/ZendGuardLoader_56.so"

是的,ZendGuardLoader不会被加载(" php -v"以及#34; phpinfo()"中没有提及)。 线程安全已禁用!如果您需要其他选项,请与我们联系。

到目前为止我尝试了什么:

  • 删除了" zend.loader = 1"选项,
  • 尝试" zend_loader.enabled = 1"相反" zend.loader"
  • 包括ZendGuardLoader的旧版本(5.5而不是5.6)
  • 将所有者和群组从两个文件更改为我的帐户(而不是www-data)
  • 将权限更改为777,775,755

也很高兴知道:

我的Apache错误日志也是#34; clean"。如果我重命名.so文件,我的Apache会记录该异常。但是在目前的设置中,文件是可读的。不要误会我的意思,但我希望不会加载像#34; ZendGuardLoader这样的消息,因为" ..

UPDATE1

几个小时后,我非常害怕!我安装了流浪汉。 " Debian 7.8"同样,开始一切等等。在我的盒子上我安装了PHP(5.4)和Apache,创建了www文件夹到同一目的地,并下载了5.4 ZendGuard Loader。在我的盒子设置中我做了同样的事情,就像在我的主系统上一样 - > php.ini,最后一个条目:" zend_extension = / vagrant / ZendGuardLoader.so"

文件存在,也是可读的,依此类推。创建一个新的" info.php" (" phpinfo()"),它仍然没有ZendGuardLoader扩展。命令php -v与主系统大致相同(版本差异)。

解决php -v

好吧,伙计们,我的思绪被打破了 - 但它没有修复!我告诉过你,通过检查php -v输出是非常默认的(没有ZendGuardLoader)。但是(!):php -v由命令行(cli)执行 - 所以我已经添加了" zend_extension"在php5 \ cli \ php.ini中 - >就像一个魅力!

  

PHP 5.4.41-0 + deb7u1(cli)(建于2015年5月22日12:49:18)   版权所有(c)1997-2014 PHP小组   Zend Engine v2.4.0,版权所有(c)1998-2014 Zend Technologies       Zend Technologies的Zend Guard Loader v3.3,Copyright(c)1998-2013,

这就是我想要的。所以我使用命令行调用了phpinfo文件 - 并将输出保存到一个单独的文件中。正如我所看到的,ZendGuardLoader也是如此!

但仍存在Apache问题。 zend_extension行与apache2 \ php.ini和cli \ php.ini完全匹配。

所以它不是权限问题,因为CLI没有问题。我认为,apache已经被打破了,因为它不会加载那种不那么特殊的扩展。

新的一天 - 新想法

好的,昨天我们明白了,为什么它不能在CLI上工作,但这不是主要问题。所以我在CLI和apache上集成了ioncube。 CLI就像魅力一样。 Apache也不会加载ioncube。那么这个apache有什么问题..?

我试图通过在php5 \ apache2 \ conf.d \目录中创建一个新文件来激发一些错误。新文件包含相同的" zend_extension = / vagrant / ZendGuardLoader.so"片段,作为我的php5 \ apache2 \ php.ini - 所以apache2会尝试加载.so两次,并抛出预期的错误:

  

PHP致命错误:[Zend Guard Loader] Extension" Zend Guard Loader"无法在第0行的“未知”中加载两次

Apache尝试加载这两个扩展。所以我可能是对的,如果我要说,apache2加载扩展,如果它只是一个!但看起来,apache无法使用扩展。记住 - php cli(" php -v" /" php -m")可以!

1 个答案:

答案 0 :(得分:1)

对于那些想知道解决方案的人:

调试Apache一段时间之后,我发现,每个apache2 \ php.ini中的include对我来说无法正常工作。所以我在apache2 \ conf.d \中创建了一个新文件 - 并删除了apache2 \ php.ini中的条目。

重新加载apache2后没有任何改变,但phpinfo()说,扩展已加载。我再次重新加载 - 最后!,一切正常。我不确定,我或apache2会发生什么。

古玩的事情:重启虚拟机后我要重新加载apache2两次。但在这个过程之后,一切都很完美。所以伙计..

<强> TL; DR;

  • 在apache2 \ conf.d \中创建新文件并使用相同的“zend_extension = / path”
  • 重启apache2两次。
  • 利润