【问题标题】:Execute perl script from PHP with Codeigniter使用 Codeigniter 从 PHP 执行 perl 脚本
【发布时间】:2019-03-03 19:03:12
【问题描述】:

我对 php 和 perl 有一个问题,我需要使用 codeigniter 从我的网站 php 执行 perl 脚本,但脚本的执行并不明显。我解释得更好。

perl 脚本生成一个 csv 文件,当我在控制台中执行时,它运行良好,但是当我从 PHP 运行它时,它不会生成文件,并且在执行过程中不会出现任何错误,所以我认为,它只是没有运行。

该脚本需要 3 个输入参数,这些参数之前在执行相同的过程中连接。但即使我尝试强制执行脚本,将值放在执行命令中,也没有任何反应。

我曾尝试通过以下方式执行它:

$perl_script = './zc_csv_dist_crd_3.pl' . ' ' . $ctac_corre . ' ' . $codigo. ' ' . $num_dist;
exec($perl_script);

system($perl_script);

或直接

shell_exec("./zc_csv_dist_crd_3.pl 7736 311745421 42906");
#or
exec("./zc_csv_dist_crd_3.pl 7736 311745421 42906");
#or
system("./zc_csv_dist_crd_3.pl 7736 311745421 42906");

我想澄清一下,我不需要返回值,即使是 perl 脚本也没有返回值,因为文件是空的或带有数据的,两种情况都有效。我读过这可能是权限问题,但我是 perl、php 和 linux 的新手。 linux服务器功能我离开了,希望有人可以指导我。

非常感谢您提前提供的帮助。

PD:我已经耐心阅读了 stackoverflow 中的论坛、PHP 手册,即使这样我也无法让它工作,我知道我在跳跃,但我现在看不到它。

【问题讨论】:

  • CentOS Linux 版本 7.3.1611 (Core) NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME=" CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="centos.org" BUG_REPORT_URL="bugs.centos.org" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION ="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7" CentOS Linux 发行版 7.3.1611(核心) CentOS Linux 发行版 7.3.1611(核心)
  • 这是linux服务器
  • 你检查过返回值吗?如果没有,您应该缩小问题范围。 perl 脚本可能无法执行或执行但会引发致命错误。
  • 您是否尝试过使用完整路径而不是相对路径?
  • Ron,我使用完整路径和 perl 脚本,它运行良好,我什至在屏幕上显示执行它的命令,我复制它并在服务器控制台上执行它,然后它运行没有问题或错误

标签: php codeigniter perl codeigniter-3


【解决方案1】:

您的 PHP 代码可能在 Safe Mode 中运行,在您的情况下,这将不允许您使用您提到的功能,请查看 Safe Mode Functions

我发现在这些链接中有一些与您类似的问题: Question 1 Question 2

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多