Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Can';t在AWS EC2上运行子进程_Php_Python_Django_Amazon Web Services_Amazon Ec2 - Fatal编程技术网

Php Can';t在AWS EC2上运行子进程

Php Can';t在AWS EC2上运行子进程,php,python,django,amazon-web-services,amazon-ec2,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],

我们有一个使用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并运行时,我收到以下错误:

这跟你有什么关系? 是因为找不到php文件吗?因为我也使用了这种方法:

directory = os.getcwd()
p = subprocess.Popen(['php', directory + "/my_test_file.php", name, caption], stdout=subprocess.PIPE)
这在本地有效,但在ec2上再次出现同样的错误


请帮忙!提前谢谢你

您应该提供php可执行文件的完整路径,并且可能需要安装php。我确实尝试使用完整路径:“/opt/python/current/app/my app/my_test_file.php”,但这也不起作用。我使用readlink-f file.php来计算完整路径我指的是执行php代码的php二进制文件的完整路径。例如,
p=subprocess.Popen(['/path/to/php',“/opt/python/current/app/my app/my_test_file.php”…
directory = os.getcwd()
p = subprocess.Popen(['php', directory + "/my_test_file.php", name, caption], stdout=subprocess.PIPE)