【发布时间】:2016-06-10 19:00:35
【问题描述】:
所以我在我的 apache 服务器上托管了一个网页,当用户通过 PHP 和 AJAX 按下按钮时,我正在尝试运行一些 python 和 bash 脚本。
现在我的 php 文件在 python 脚本(位于 /var/www/html)处执行,该脚本又执行一个 bash 文件(位于 root/files)。
在终端中手动执行此操作,一切正常。
但是当我通过网页尝试这个时,bash 脚本没有被执行。
(我无法将 bash 脚本放在 /var/www/html 中,因为它具有将 git 存储库克隆到服务器的命令,并且在放置时它给出的私钥不应该是公共错误)
我已经在this answer 中尝试了建议,将www-data 添加到sudoers,但它仍然没有按预期工作。
对此的任何帮助将不胜感激。 谢谢
PHP 文件:
if(isset($_POST['timestamp']))
{
$uid = $_POST['timestamp'];
echo "Please wait while the app is being generated".$uid;
exec("python /var/www/html/appgenserver.py $uid");
appgenserver.py
#! /usr/bin/env python
import os
import json,sys
from firebase import firebase
import requests
import subprocess
arg = sys.argv[1]
# Path to be created
path = "/root/files/"+str(arg)
print path
if not os.path.exists(path):
os.makedirs(path) #Gets executed
subprocess.call(['/root/Final/clone.sh', path) #Not getting executed
【问题讨论】:
-
你能粘贴你用来运行 bash 脚本的 php 代码吗?
-
请检查编辑@VinodKumar
-
OK,在exec函数中尝试使用python的全路径
-
为什么要涉及 Python?特别是如果您打算只调用 bash 脚本?
-
你试过放python可执行文件的完整路径吗?
标签: php python git bash apache