Fórum Root.cz
Hlavní témata => Server => Téma založeno: BigSandy 15. 08. 2025, 20:46:30
-
Kluci, už si nevim rady.
Mam na raspi LGserver pro přepinani kanalu.
Toto přes terminal funguje
/home/leo/lgtv-remote/venv/bin/lgtv -n OLED55B9PLA on # Zapnout televizi:
/home/leo/lgtv-remote/venv/bin/lgtv -n OLED55B9PLA off # Vypnout televizi do pohotovostního režimu
/home/leo/lgtv-remote/venv/bin/lgtv -n OLED55B9PLA screenOn # Zapnout pouze obrazovku:
/home/leo/lgtv-remote/venv/bin/lgtv -n OLED55B9PLA screenOff # Vypnout pouze obrazovku (zvuk běží dál):
/home/leo/lgtv-remote/venv/bin/lgtv -n OLED55B9PLA volumeUp # Zvýšit hlasitost:
/home/leo/lgtv-remote/venv/bin/lgtv -n OLED55B9PLA volumeDown # Snížit hlasitost:
Se snažim nějaký ten přikaz spustit přes PHP.
<?php
system('/home/leo/lgtv-remote/venv/bin/lgtv -n OLED55B9PLA off');
?>
Soubor TV_server.php ma
skupina leo
vlastnik www-data [33]
a prava 0777
ve visudo mam
www-data ALL=(ALL) NOPASSWD: ALL
Děkuji za jakoukoliv radu, ktera pomuže k vyřešení problemu.
-
jakoukoliv radu...
https://claude.ai/share/eb7d688f-b8b8-4a26-9702-39d5b3a2e46a
-
Ani jedno nepomohlo a 5. Diagnostika problému Přidejte do PHP pro debugging:
Current user: www-data Current directory: /var/www Python path: /usr/bin/python Environment: USER=www-data HOME=/var/www PWD=/var/www Command output: sh: 1: /home/leo/lgtv-remote/venv/bin/lgtv: Permission denied
-
sudo
https://claude.ai/share/eb7d688f-b8b8-4a26-9702-39d5b3a2e46a
ps: řešil jsi to s nějakou ai?
je rychlejší než odpovědi na foru ;)
edit: nejde přesdílet
<?php
$command = 'sudo /home/leo/lgtv-remote/venv/bin/lgtv -n OLED55B9PLA off';
$output = shell_exec($command . ' 2>&1');
echo $output;
?>
-
sudo -u www-data /home/leo/lgtv-remote/venv/bin/lgtv -n OLED55B9PLA off
sudo: unable to execute /home/leo/lgtv-remote/venv/bin/lgtv: Permission denied
-
Jsem zkusil vytvřit bash skript přes ktery vypnu televizi.
Ani ten skript nejde přes php spustit.
www-data nema přistup do složky /home/leo/
-
Jsem zkusil vytvřit bash skript přes ktery vypnu televizi.
Ani ten skript nejde přes php spustit.
www-data nema přistup do složky /home/leo/
Tím oznamuješ, že jsi to vyřešil, nebo se ptáš, jak tam ten přístup nastavit? :)
Co upravit skupinu?
sudo chgrp -R www-data /home/leo/lgtv-remote
sudo chmod -R g+rx /home/leo/lgtv-remote
sudo usermod -aG leo www-data
-
Podle toho venv bych řekl, že to je v Pythonu, a ten venv musíš nejdřív aktivovat, aby to fungovalo. Takže všechny potřebné příkazy "zabal" do jednoho skriptu.
V tom pokusu se sudo logicky nebude -u www-data, ale -u leo. A ještě bys to musel povolit v /etc/sudoers. Třeba takhle:
www-data ALL=(leo) NOPASSWD: /nejaky/program *
Ale to jen pokud bys to opravdu potřeboval.
Takže si ve svém home můžeš vyhradit adresář s právy nastavenými tak, aby se tam www-data dostal. Nebo, pro tebe jednodušší varianta, prostě to dej do web rootu, kam už se www-data dostane teď.
-
Už to mam tak na pul vyřešene.
Cele jsem to smazal a znovu nainstaloval do /usr/local/bin
Jedime co přes php funguje je.
system('/usr/local/bin/lgtv-control/venv/bin/lgtv -n OLED55B9PLA on');
V prohliřeši se mi zobrazi
{"type": "response", "id": "0", "payload": {"returnValue": true}} {"closing": {"code": 1000, "reason": ""}}
Jde tento vystup přesměrovat do nějake proměnne?
-
- proc to delas v php?
- programoval jsi nekdy v necem?
-
Protože to potřebuji spouštět přes tasker a jeho uzel HTTP Request.
https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&hl=cs
https://tasker.joaoapps.com/userguide/en/help/ah_http_request.html
-
Protože to potřebuji spouštět přes tasker a jeho uzel HTTP Request.
https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&hl=cs
https://tasker.joaoapps.com/userguide/en/help/ah_http_request.html
To neznamená že to musí být PHP... WebServer má (skoro) každý jazyk. Jinak jde, stačí se podívat do dokumentace k PHP. system vrací poslední řádek ale explicitně se říká "call also tries to automatically flush the web server's output buffer after each line of output if PHP is running as a server module. " ... pokud potřebujete víc dat a jiné chování, použijte třeba exec. PHP má dokumentaci na https://www.php.net/manual , v pravo nahoře máte input na hledání ;-)
-
Proč jsi nepřešel na Golang nebo Rust?