我對 php 很陌生,雖然有一些“diy”編碼經驗,但我基本上是個新手!因此,我有一個非常簡單的問題......
基本上,我使用裝有 Raspberry Pi OS 的 raspberry pi 在汽車中為長途旅行的孩子們創建了一個迷你媒體服務器。但是,當汽車關閉時,它會立即切斷樹莓派的電源,這通常不是問題,但最近損壞了我已修復的系統。
但正因如此,我決定添加一個小腳本,允許連接的設備打開網頁并單擊按鈕在切斷電源之前關閉 pi。我使用 lighttpd 作為 Web 服務器,并且我有基本的作業,這意味著當我輸入 IP 地址并且存在一個按鈕時,index.php 頁面會加載。我的問題是,當我單擊按鈕時,不是執行腳本,而是將腳本的內容列印在螢屏上?!!
要添加,我已按照以下鏈接中列出的解決方案進行操作:https : //superuser.com/questions/829243/how-to-shut-down-a-server-from-the-webinterface
此外,我已將腳本更改為 bash 和 PHP 失敗(結果相同)。我還將索引從基本的 HTML 頁面更改為 PHP 腳本。目前,以下是我用來生成按鈕的腳本:
<?PHP
?><!DOCTYPE html>
<html lang="en">
<body>
<form method="post" action="shutdown.sh">
<input type="submit" value="Submit" name="Submit">
</form>
</body>
</html>
腳本是:
#!/bin/bash
echo $("sudo shutdown now");
www-data 是具有 root 權限的用戶 visudo
如前所述,bash 腳本已從原始 python 示例中編輯,我嘗試了 PHP ...
還要注意:這兩個檔案都在同一目錄中,但我確實將它們分開放在關閉腳本的子目錄中(如示例中所示)...
感謝所有幫助!
uj5u.com熱心網友回復:
您的 Web 服務器可能未配置為執行 shell 腳本。
但是,您提到您還嘗試過 php 版本的腳本。
我認為您的 Web 服務器未配置為執行 php 腳本。如果顯示<?PHP ?>未正確配置,請單擊 ctrl u 或 cmd u 使用瀏覽器中的按鈕檢查頁面的來源。
你不寫你安裝了哪個作業系統。但也許本指南會幫助你https://wiki.ubuntu.com/Lighttpd PHP或這個答案https://raspberrypi.stackexchange.com/questions/1164/how-to-install-lighttpd-with-php
uj5u.com熱心網友回復:
我不能完全說出什么是有效的,因為我已經做了一些進一步的事情。我不相信 PHP 和 bash 腳本的服務器執行是問題,因為我之前更改了這兩個檔案的權限。然而,這并非不可能,因此對于任何有類似問題的人來說,以下內容值得一試:
更改目錄所有者和組
sudo chown www-data:www-data /var/www
允許組寫入目錄
sudo chmod 775 /var/www
將 pi 用戶添加到 www-data 組
sudo usermod -a -G www-data pi
完成此操作后,以下是我實際作業的代碼:
索引.html:
<html lang="en">
<body>
<form method="post" action="shutdown.php">
<input type="submit" value="Submit" name="Submit">
</form>
</body>
</html>
關閉.php:
echo shell_exec("sudo shutdown -h now");
?>```
Make sure they are both executable files (sudo chmod x ....)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/314569.html
上一篇:如何使YAML嵌入的shell腳本安全地避免不同引號的問題?
下一篇:行程替換中的大括號擴展?
