shell_exec()在codeigniter中不起作用

时间:2017-08-10 06:32:07

标签: php shell codeigniter

shell_exec()在codeigniter中不起作用。但是,这个命令在终端工作。 输出:00:00:30.11

function Table_to_Array(id) { if (id == "CGT_Data") { var tbl="tbl_CGT"; } if (id == "GRT_Data") { var tbl = "tbl_GRT"; } if (id == "Disb_Data") { var tbl = "tbl_Disb"; } var myTableArray = $('#'+tbl+' tr').map(function () { return $(this).find(':input').map(function () { return this.value; }).get(); }).get(); return myTableArray; } function send_to_server(id) { var iden = id; var result = Table_to_Array(id); var data = { data_holder: result, Category: id }; var params = { url: '@Url.Action("Send_to_server", "Annex1")', type: "POST", contentType: "application/json; charset=utf-8", dataType: "json", traditional : true, data: JSON.stringify(data), success: function (result) { alert('Ok! It worked.'); }, error: function (result) { alert('Warning! It failed.'); } }; $.ajax(params); }

如何解决此问题?

2 个答案:

答案 0 :(得分:0)

当你调试必须执行shell_exec()的web-app时,你会看到详细的错误。你试过这个吗? (来自浏览器的控制台)

您可能正在尝试访问具有受限权限的文件夹(运行Web服务器的用户无法访问该目录)。使用chmod授予您的Web服务器权限以访问此目录并尝试再次运行您的命令。它应该工作。

亚历

答案 1 :(得分:0)

“不工作”不是一种有用的诊断方法。怎么了?您是否检查过您的错误记录/报告是否已正确配置以捕获错误?你的日志里有什么?

“这个命令在终端工作” - 你的意思是什么?您是刚刚运行传递给shell_exec的字符串还是从命令行运行PHP脚本?后者将揭示shell_exec是否被排除为disabled function(但请注意,CLI SAPI可能使用与web sapi不同的php.ini)。

除此之外,潜在的原因是:

  • 数据文件的权限
  • 可执行文件的权限
  • 未填充PATH变量以引用Web服务器环境中的可执行文件
  • 网络服务器可能正在运行chroot
  • SELinux / Apparmor限制