【问题标题】:Has anyone been successful getting Joomla running under IIS/Phalanger?有没有人成功让 Joomla 在 IIS/Phalanger 下运行?
【发布时间】:2013-10-10 21:03:39
【问题描述】:

有没有人成功让 Joomla 在 IIS/Phalanger 下运行?

我已经完成了 Phalanger 3.0 的安装,按照说明使 Joomla 成为使用 Phalanger 编译器运行的应用程序,但由于某种原因,我在应用程序启动之前就收到了错误:

Error: Class 'JLogEntry' not found in C:\inetpub\wwwroot\nfspv3\libraries\joomla\log\log.php on line 169, column 4.

在安装 Phalanger 3.0 之前,我在 IIS/MySQL 上运行 Joomla 2.5,所以我想知道这是否是 Phalanger 编译器无法解释 PHP 的问题,对吗?很高兴知道是否有人让 Joomla 与 Phalanger 一起工作。

【问题讨论】:

  • 你能在 PHP 代码中设置断点吗?这需要一些调试...
  • 在 Apache/PHP 下我可以用 XDebug,但我不知道 Phalanger 是否支持调试。该代码在 IIS/ISAPI 接口下运行良好,但确定单步执行代码会有所帮助。
  • 我刚刚注意到,您正在使用 Phalanger 3.0 ...在pub.devsense.com/phptools/Phalanger.4.0.Tools.1.15.7667.msi 尝试 4.0 最新预览版..
  • @JakubMíšek 我尝试使用 3.0 和 4.0,但错误仍然存​​在。

标签: iis joomla phalanger


【解决方案1】:

错误告诉您类 JLogEntry 尚未定义,但它已被期望定义它的东西引用。这意味着不满足依赖关系。您的 log.php 依赖于定义 JLogEntry 类的文件。 JLogEntry 类在entry.php 中是这样定义的:

http://www.reference.joomlademo.de/nav.html?_classes/index.html

还有这个:

http://www.reference.joomlademo.de/nav.html?_classes/index.html

因此,无论出于何种原因,您都无法满足这种依赖性。如果我在您的系统上,我会四处寻找该文件,检查它是否存在、是否损坏、版本是否正确或以其他方式阻止执行。

如果您仍然怀疑您的 Phalanger 编译器有问题,请对其进行测试。写一个简单的"hello world" 并证明它是否有效。事实上,在同一个文件中(备份文件后)执行它以证明它是否正在执行。编译器在某个级别上工作,否则它不会向您显示错误消息。

编辑:

根据@highcore 的说法,Phalanger 3.0 编译器未能以 Joomla 期望的方式实现正则表达式。 Joomla 依靠它来解析它将包含的文件名。因此,entry.php 永远不会被包括在内,而JLogEntry 未定义。建议的解决方法是避免使用 reg ex 并拆分文件名。

【讨论】:

  • @highcore 而不是这为您提供解决问题的罐头解决方案,而是试图为您指明发现问题的方向。看来你并不孤单:forum.joomla.org/viewtopic.php?t=680673
  • @CandledOrange 我一直在联系 Phalanger 支持,这似乎是编译器中的错误,它错误地解析了 joomla 用于解析文件名的某个正则表达式,从而导致文件不正确尝试包含的名称,因此缺少类。我一直忙于自己发布答案,但我已经找到了一种解决方法(通过手动拆分单词而不使用正则表达式)
  • @highcore 啊,好吧,看来我来晚了。祝你好运。
  • 是的。 Phalanger perl 正则表达式实现 (github.com/DEVSENSE/Phalanger/blob/master/Source/ClassLibrary/…) 存在问题,并且类名被错误地转换为文件路径。
猜你喜欢
  • 2011-04-16
  • 2013-11-28
  • 2011-09-16
  • 2014-07-28
  • 2010-11-02
  • 2016-09-21
  • 1970-01-01
  • 2022-06-25
  • 1970-01-01
相关资源
最近更新 更多