J'ai un script qui appelle fswebcam pour capturer un jpg avec ma caméra USB. Je l'ai fait exécutable avec "chmod + x webcam.sh":Exécution d'un script bash depuis PHP sur raspbian
fichier: /var/www/html/webcam.sh
#!/bin/bash
DATE=$(date + "%Y-%m-%d_%H%M")
fswebcam -r 640x480 /home/pi/webcam/$DATE.jpg
Cela fonctionne bien dans la ligne de commande sans sudo, donc Je l'ai fait une petite page PHP:
fichier: /var/www/html/index.php
<?php
$output = shell_exec('sh /var/www/html/webcam.sh');
echo "<pre>$output</pre>";
?>
Quand je vais à la page Web, je viens d'obtenir une page blanche et pas jpg est créé dans mon dossier webcam.
j'ai eu l'erreur suivante: Apache2 error log
J'ai essayé de modifier mon appel en PHP, à:
<?php
$output = shell_exec('/usr/bin/sudo /bin/bash /var/www/html/webcam.sh');
echo "<pre>$output</pre>";
?>
J'ai aussi ajouter ce qui suit pour déposer sudoers
www-data ALL=NOPASSWD: /path/to/script
Mais je reçois toujours l'erreur: apache2 log error
J'ai tout essayé depuis ce fil: How to run .sh script with php?
Avez-vous une idée?
Merci à l'avance,
Victor
Si cela ne fonctionne toujours pas, veuillez publier la sortie du script. – d3L
J'ai essayé le code ci-dessus, mais j'ai reçu une erreur du serveur: Erreur HTTP 500. Dans le journal des erreurs je peux voir: "Erreur d'analyse PHP: erreur de syntaxe, 'echo' inattendu (T_ECHO) dans/var/www /html/index.php sur la ligne 3 ". Si je commente les lignes d'écho, je reçois une page blanche, et le journal des erreurs donne: « dispositif d'ouverture d'erreur:/dev/video0 ouvert: Autorisation refusée » –
Ok, il travaille maintenant! J'ai vérifié la dernière chose que vous m'avez dite au sujet de la permission. J'ai donc donné l'autorisation au serveur pour accéder à la caméra: « adduser vidéo www-data » et lui a donné la permission d'écrire le dossier avec: « chown -R www-data/home/pi/webcam ». –