【发布时间】: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