2013-02-28 164 views
1

我有一个Codeigniter框架,我正在构建一个测试框架。 测试框架的功能之一就是远程部署测试套装。因此,我想部署一个Python测试服我从网页中写道:在codeigniter中执行命令行 - PHP

public function deploy_test() 
{ 
    if(!$this->input->is_cli_request()) { 
     echo json_encode(system("python test_suit.py")); 
    } 
} 
从我的控制器

,所以,当测试部署,我要运行它。为了证明我的概念,我这样做了。但是,这项工作永远不会被部署,命令行也不会被执行。 当我从终端上运行这段代码时,它按照假定的方式工作。我在这里错过了什么? 谢谢

**它的好奇,当我执行ls -l它的工作原理提...

+0

Web用户('www','apache'等)是否有权限运行该文件(并执行脚本需要执行的操作)?另外,你是否确定路径是正确的? – jeroen 2013-02-28 01:08:02

+0

权限为'755'。绝对路径是正确的...我正在执行完整路径 – cybertextron 2013-02-28 01:10:04

+0

@jeroen它不想执行python ......即使'python --version'也不起作用。 – cybertextron 2013-02-28 01:12:01

回答

0

基本上,这是一个坏主意 - 如果主机已拒绝访问服务器上执行的东西(毕竟,它是如何知道你的代码不是恶意的),你真的不应该试图解决这个问题,至少不需要和你的提供者说话,并询问他们是否可以做到这一点!

毕竟,执行一个LS并不是真的会有恶意,但是你可以尝试和执行一个Python脚本,它是'rm -rf的服务器。

现在,您可能能够找到解决办法,但在我看来,问题是应该如何?他们可能会将其解释为黑客企图。

+0

我写了一切俄罗斯...和服务器是本地服务器,这是我的...你有更好的方式来这样做? – cybertextron 2013-02-28 02:18:24

+0

嗯好吧 - 我的观点依然存在,虽然上下文改变了:)你是否检查过执行这些日志文件? (假设linux)http://www.cyberciti.biz/faq/linux-log-files-location-and-how-do-i-view-logs-files/ – 2013-02-28 02:32:21