繁体   English   中英

Apache 网络服务器不会编辑文件

[英]Apache webserver wont edit files

因此,我正在尝试创建一个网站,其中包含可以按下激活 PHP 脚本的按钮,该脚本又运行 python 程序来编辑 JSON 文件。 当我在服务器的命令行上尝试 PHP 脚本时,它一切正常,但是,当我尝试通过互联网运行它时,由于某种原因它拒绝工作。 我知道 PHP 脚本肯定正在运行,因为它还被告知在树莓派上切换一个 GPIO 引脚,一切都在运行。

这是激活 PHP 脚本的 javascript:

function relay(rly) {
    var b = new XMLHttpRequest();
    b.open("GET", 'switchScripts/' + rly + '.php');
    b.onreadystatechange = function() {
        if( b.readyState == 4) {
            if( b.status == 200) {
            }else 
                alert("HTTP error "+b.status+" "+b.statusText);
            }
        }
        b.send();
        return false;
    }

这是随后激活的 PHP 脚本:

<?php 
    system ( "gpio -g mode 18 out" );
    system ( "gpio -g  write 18 1" );
    system ( "sudo python3 /var/www/html/home/switchScripts/updater.py RLY1 1" );
 ?>

然后激活 python 程序,如下所示:

import json
import sys

GPIOlabel = sys.argv[1]
state = sys.argv[2]

with open('/var/www/html/home/switchScripts/data.json', 'r') as datafile:
    data = json.load(datafile)
    data[GPIOlabel] = state

with open('/var/www/html/home/switchScripts/data.json', 'w') as datafile:
    json.dump(data, datafile)

正如我之前所说,当尝试将其登录到命令行时,它所有的功能都很完美(JSON 已编辑),所以我完全不知道为什么当我在 web 浏览器中尝试它时它不起作用。

顺便说一句,我对此比较陌生,所以如果您有更好的做事方式,那么我很乐意听到它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM