无法在AWS EC2上运行子进程

时间:2015-08-02 23:33:41

标签: php python django amazon-web-services amazon-ec2

我们有一个运行django rest框架的ec2实例。现在,我希望能够运行一个crontab来启动一个调用php脚本的python脚本。

test.py

class Command(BaseCommand):
    def handle(self, *args, **options):
        p = subprocess.Popen(['php', "/opt/python/current/app/my-app/my_test_file.php", name, caption], stdout=subprocess.PIPE)
        result = p.communicate()[0]

现在在我的本地机器上我没有任何错误。它工作正常。正如你所看到的,我在那里使用绝对路径。

上传到ec2并运行时出现此错误:

>       File "/usr/lib64/python2.7/subprocess.py", line 522, in call
>         return Popen(*popenargs, **kwargs).wait()
>       File "/usr/lib64/python2.7/subprocess.py", line 710, in __init__
>         errread, errwrite)
>       File "/usr/lib64/python2.7/subprocess.py", line 1335, in _execute_child
>         raise child_exception
>     OSError: [Errno 2] No such file or directory

这与这有什么关系? 是因为它无法找到的php文件?因为我也使用了这种方法:

directory = os.getcwd()
p = subprocess.Popen(['php', directory + "/my_test_file.php", name, caption], stdout=subprocess.PIPE)

这在本地工作但在ec2上再次出现同样的错误!

请帮忙!先感谢您!

0 个答案:

没有答案