jjzjj

php - Apache 不会加载 Zend Guard Loader

coder 2024-04-20 原文

我正在使用具有以下设置的 Ubuntu 15.04 - 64 位:

Apache

Server version: Apache/2.4.10 (Ubuntu), Server built: Jul 24 2015 17:25:18

PHP

PHP 5.6.4-4ubuntu6.2 (cli) (built: Jul 2 2015 15:29:28) Copyright, (c) 1997-2014 The PHP Group Zend Engine v2.6.0, Copyright (c), 1998-2014 Zend Technologies with Zend OPcache v7.0.4-dev, Copyright, (c) 1999-2014, by 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”和“phpinfo()”中提到)。 线程安全被禁用!如果您需要其他选项,请告诉我。

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

  • 删除了“zend.loader=1”选项,
  • 尝试使用“zend_loader.enabled = 1”代替“zend.loader”
  • 包括来自 ZendGuardLoader 的旧版本(5.5 而不是 5.6)
  • 将两个文件的所有者和组更改为我的帐户(而不是 www-data)
  • 将权限更改为 777、775、755

也很高兴知道:

我的 Apache 错误日志也是“干净的”。如果我重命名 .so 文件,我的 Apache 会记录该异常。但是在当前设置中,该文件是可读的。不要误会我的意思,但我希望看到一条消息,如“ZendGuardLoader can't be loaded because ..

更新1

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

文件存在,也可读,等等。在创建一个新的“info.php”(“phpinfo()”)之后,它仍然没有 ZendGuardLoader Extension。命令 php -v 表示与主系统基本相同(版本不同..)。

php -v 的解决方案

好吧伙计们,我的心碎了 - 但它还没有修复!我告诉过你,通过检查 php -v 输出是非常默认的(没有 ZendGuardLoader)。但是(!): php -v 由命令行 (cli) 执行 - 所以我在 php5\cli\php.ini 中添加了“zend_extension” -> 效果很好!

PHP 5.4.41-0+deb7u1 (cli) (built: May 22 2015 12:49:18) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies with Zend Guard Loader v3.3, Copyright (c) 1998-2013, by Zend Technologies

这就是我想要的。所以我使用命令行调用了 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\目录中创建一个新文件来引发一些错误。新文件包含与我的 php5\apache2\php.ini 相同的“zend_extension=/vagrant/ZendGuardLoader.so”片段 - 因此 apache2 会尝试加载 .so 两次,并抛出预期的错误:

PHP Fatal error: [Zend Guard Loader] Extension "Zend Guard Loader" cannot be loaded twice in Unknown on line 0

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

最佳答案

对于所有想知道解决方案的人:

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

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

奇怪的是:我必须在重新启动 VM 后重新加载 apache2 两次。但在这个过程之后,一切都很完美。所以伙计们..

TL;DR;

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

关于php - Apache 不会加载 Zend Guard Loader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32069145/

有关php - Apache 不会加载 Zend Guard Loader的更多相关文章

  1. ruby - Highline 询问方法不会使用同一行 - 2

    设置:狂欢ruby1.9.2高线(1.6.13)描述:我已经相当习惯在其他一些项目中使用highline,但已经有几个月没有使用它了。现在,在Ruby1.9.2上全新安装时,它似乎不允许在同一行回答提示。所以以前我会看到类似的东西:require"highline/import"ask"Whatisyourfavoritecolor?"并得到:Whatisyourfavoritecolor?|现在我看到类似的东西:Whatisyourfavoritecolor?|竖线(|)符号是我的终端光标。知道为什么会发生这种变化吗? 最佳答案

  2. ruby - 如何在续集中重新加载表模式? - 2

    鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende

  3. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  4. ruby - RuntimeError(自动加载常量 Apps 多线程时检测到循环依赖 - 2

    我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("

  5. ruby-on-rails - 使用 config.threadsafe 时从 lib/加载模块/类的正确方法是什么!选项? - 2

    我一直致力于让我们的Rails2.3.8应用程序在JRuby下正确运行。一切正常,直到我启用config.threadsafe!以实现JRuby提供的并发性。这导致lib/中的模块和类不再自动加载。使用config.threadsafe!启用:$rubyscript/runner-eproduction'pSim::Sim200Provisioner'/Users/amchale/.rvm/gems/jruby-1.5.1@web-services/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:105:in`co

  6. 叮咚买菜基于 Apache Doris 统一 OLAP 引擎的应用实践 - 2

    导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵

  7. ruby-on-rails - 从应用程序中自定义文件夹内的命名空间自动加载 - 2

    我们目前正在为ROR3.2开发自定义cms引擎。在这个过程中,我们希望成为我们的rails应用程序中的一等公民的几个类类型起源,这意味着它们应该驻留在应用程序的app文件夹下,它是插件。目前我们有以下类型:数据源数据类型查看我在app文件夹下创建了多个目录来保存这些:应用/数据源应用/数据类型应用/View更多类型将随之而来,我有点担心应用程序文件夹被这么多目录污染。因此,我想将它们移动到一个子目录/模块中,该子目录/模块包含cms定义的所有类型。所有类都应位于MyCms命名空间内,目录布局应如下所示:应用程序/my_cms/data_source应用程序/my_cms/data_ty

  8. ruby-on-rails - 使用 javascript 更改数据方法不会更改 ajax 调用用户的什么方法? - 2

    我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的

  9. ruby-on-rails - prawnto 显示新页面时不会中断的表格 - 2

    我有可变数量的表格和可变数量的行,我想让它们一个接一个地显示,但如果表格不适合当前页面,请将其放在下一页,然后继续。我已将表格放入事务中,以便我可以回滚然后打印它(如果高度适合当前页面),但我如何获得表格高度?我现在有这段代码pdf.transactiondopdf.table@data,:font_size=>12,:border_style=>:grid,:horizontal_padding=>10,:vertical_padding=>3,:border_width=>2,:position=>:left,:row_colors=>["FFFFFF","DDDDDD"]pdf.

  10. ruby-on-rails - 使用 gmaps4rails 动态加载谷歌地图标记 - 2

    如何只加载map边界内的标记gmaps4rails?当然,在平移和/或缩放后加载新的。与此直接相关的是,如何获取map的当前边界和缩放级别? 最佳答案 我是这样做的,我只在用户完成平移或缩放后替换标记,如果您需要不同的行为,请使用不同的事件监听器:在你看来(index.html.erb):{"zoom"=>15,"auto_adjust"=>false,"detect_location"=>true,"center_on_user"=>true}},false,true)%>在View的底部添加:functiongmaps4rail

随机推荐