Codeigniter AMFPHP无法正常工作

时间:2012-05-25 11:23:34

标签: apache codeigniter permissions webserver amfphp

我正在开发基于php flash的应用程序并关注this tutorial

我的localhost PC上的所有东西都运行良好,但不是在实时服务器CentOS上运行。

本教程指导将amfphp库保留在应用程序的librarires目录中,并在gateway中创建一个控制器“controllers/amf”,并将控制器作为服务创建到controllers/amf/services

我已经正确地遵循了这一点,并且我能够在localhost上顺利运行它。此外,删除子目录amf也正常工作

现场直播

Error #2044: Unhandled NetStatusEvent:. level=error, code=NetConnection.Call.BadVersion
    at amfphpconnection_fla::MainTimeline/frame1()

来自AS的连接需要

http://domain.com/index.php/amf/gateway

我正在尝试不同的技巧使其工作,我发现如果我将服务从/ controller / services / serices文件夹保存到amf本身所在的应用程序/库中并更改网关中服务的路径,那么flash就能够当我将闪存中的路径更改为

时到达文件
http://domain.com/application/libraries/Amfphp/

但是,在我从服务文件中删除extends CI_Controllerconstructor functionget_instance()之前,它仍然无法正常运行。要么提出相同的错误。这只是运行文件,但对我来说没用,因为它无法使用CI框架。

在AS中使用控制器路径是必需的,我认为这与文件访问权限有关,因为它在PC上工作正常,而不是在Linux上工作。

我也试图查看 Apache错误日志,但没有任何可能的错误迹象。

看了很多网站寻求帮助但尚未成功..

还在project site本身发布了错误,但目前还没有更新

任何帮助将不胜感激

此致

3 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,并且阅读我在Windows上看到的AMFPHP网站没有敏感的案例文件。

因此,在CI中,他们说,“将您的类命名为'myclass.php'并在内部声明My_class扩展CI_Controller”。我在flash中做了什么?我打电话给“My_c​​lass”服务。由于我使用windows进行localhost,AMFPHP可以找到该文件并正常工作。

但不是在Linux上。所以,在flash中,我称之为“this.connection.call(”my_class“,”mymethod“等)”并且一切正常。

希望这对某人有用。因此,如果您在Linux环境中进行部署,请仔细检查您的AMF呼叫的大小写拼写,并确保您从flash中调用 gateway.php 您的服务文件的完美名称文件中类的名称。

欢呼声。

答案 1 :(得分:0)

我也遇到了这个问题,我正在开发OSX,我看到了错误

faultString =>未找到测试服务

这一个......

* faultDetail => #0 /home/myserver.com/public_html/project/ci/application/libraries/Amfphp/Core/Common/ServiceRouter.php(100):Amfphp_Core_Common_ServiceRouter-> getServiceObject('Testservice') 1 /home/myserver.com/public_html/project/ci/application/libraries/Amfphp/Core/Amf/Handler.php(107):Amfphp_Core_Common_ServiceRouter-> executeServiceCall('Testservice','getAll',Array) 2 /home/myserver.com/public_html/project/ci/application/libraries/Amfphp/Core/Amf/Handler.php(138):Amfphp_Core_Amf_Handler-> handleRequestMessage(Object(Amfphp_Core_Amf_Message),Object(Amfphp_Core_Common_ServiceRouter)) 3 /home/myserver.com/public_html/project/ci/application/libraries/Amfphp/Core/Gateway.php(199):Amfphp_Core_Amf_Handler-> handleDeserializedRequest(Object(Amfphp_Core_Amf_Packet),Object(Amfphp_Core_Common_ServiceRouter)) 4 /home/myserver.com/public_html/project/ci/application/controllers/amf/gateway.php(39):Amfphp_Core_Gateway-> service() 5 /home/myserver.com/public_html/project/ci/system/core/CodeIgniter.php(339):网关 - > index() 6 /home/myserver.com/public_html/project/ci/index.php(202):require_once('/ home / ncubator / ...') 7 {main} *

我使用的文件来自谷歌代码页,我没有更改网关文件。我刚刚更改了testservice.php内容以适合我的项目。我的基本网址是

http://myserver.com/project/ci/index.php/amf/gateway

您能否提供一下您提出的解决方案?

谢谢!

答案 2 :(得分:0)

嗯,据我所知,通过AMFPHP Flash进行Flash通信只接受预期的内容,如果 之前的任何内容结果Bad Connect闪存结束时的错误...正如我在ppalmeid's的评论中已经提到的那样,回答我的问题是因为包含了第三方library that was loading automatically并且它是 printing some HTML characters in the output that was causing the Flash to blow

只需检查屏幕上是否有任何字符/警告/通知等字样。

希望这可以帮助其他人面对同样的问题。

此致 朱奈德