【问题标题】:How can I call Perl from my PHP page on apache?如何从我的 apache 上的 PHP 页面调用 Perl?
【发布时间】:2009-05-05 23:00:10
【问题描述】:

我和我的朋友正在为一系列游戏创建一个日志解析器。我们用 PHP/MySQL 编写了前端(Web),用 Perl 编写了解析器(当然也使用了 MySQL)。现在我们在让这两者交流时遇到了问题。

我们不想做的只是:一个在线管理页面,您可以在其中找到“解析”按钮。当您单击它时,一个 Perl 脚本应该启动。比如"exec("perl /home/www/Init.pm -f games_mp.log")。

这可能吗?请记住,它应该很容易设置。

我们已经尝试了从 system/exec 到 .htaccess 的所有方法,但似乎没有什么是开箱即用的。真的一点都不工作。

建议?

拉卡=)

【问题讨论】:

  • 当您尝试运行该 system()/exec() 调用时遇到什么错误?
  • 等等,调用 exec 时出现 403 Forbidden 错误?我不认为 exec/system 是你的问题。
  • 不是apache不允许运行脚本的问题吗?
  • 好吧,如果你得到一个 403 Forbidden 返回,这是一个 HTTP 错误代码,听起来请求根本没有命中 PHP。检查您的 apache 错误日志。
  • 我不是在尝试使用 PHP,而是使用 Perl。而且我无法控制服务器,所以我无法读取任何日志..

标签: php perl cgi


【解决方案1】:

为什么不运行 Perl 脚本,就好像它们是使用 mod_perl 来自 jQuery 的网页一样?

【讨论】:

  • 因为就像我说的,这应该是开箱即用的。没有多少玩家愿意安装 mod_perl..
【解决方案2】:

我敢打赌你会遇到路径错误。尝试提供 Perl 可执行文件的完整路径。例如:

exec("/usr/bin/perl /home/www/Init.pm -f games_mp.log")

【讨论】:

    【解决方案3】:

    很抱歉,没有简单的方法来设置它。不同的服务器带有不同的默认 apache 配置。

    您可能希望在服务器配置、虚拟主机配置、目录配置中添加以下行,或者,如果设置正确,还可以添加 .htaccess。

    AddHandler cgi-script .cgi .pl .pm

    您的用户还需要适当地对文件进行 chmod 和 chown。

    问题是,这听起来像是一个长期运行的过程。如果是这样,那么运行 Web 浏览器可能需要很长时间才能完成。如果是这种情况,您可能需要设置某种作业队列,并每隔 5 分钟左右执行一次 cron 脚本。

    【讨论】:

    • 该死的。如果我知道让它工作这么难,我会用 PHP 写的。
    【解决方案4】:

    在 PHP 中,很多事情都依赖于配置。尝试查看它,因为可以禁用许多运算符。

    检查 Perl 程序是否具有正确的权限。尝试从命令行运行你的 Perl 程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-23
      • 1970-01-01
      • 1970-01-01
      • 2016-08-17
      • 1970-01-01
      • 2011-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多