Hello à toutes et tous.
J’ai besoin d’exécuter un script bash via un script php, avec des paramètres.
Voici mon script bash :
#!/bin/bash
rm /etc/hostapd.conf
ssid=$1
key=$2
echo 'ssid=$1' >> /etc/hostapd.conf
echo 'interface=wlan0' >> /etc/hostapd.conf
echo 'hw_mode=g' >> /etc/hostapd.conf
echo 'channel=5' >> /etc/hostapd.conf
echo '#bridge=br0' >> /etc/hostapd.conf
echo 'driver=nl80211' >> /etc/hostapd.conf
echo 'logger_syslog=0' >> /etc/hostapd.conf
echo 'logger_syslog_level=0' >> /etc/hostapd.conf
echo 'wmm_enabled=1' >> /etc/hostapd.conf
echo 'wpa=2' >> /etc/hostapd.conf
echo 'preamble=1' >> /etc/hostapd.conf
echo 'wpa_psk=66eb31d2b48d19ba216f2e50c6831ee11be98e2fa3a8075e30b866f4a5ccda27' >> /etc/hostapd.conf
echo 'wpa_passphrase=$2' >> /etc/hostapd.conf
echo 'wpa_key_mgmt=WPA-PSK' >> /etc/hostapd.conf
echo 'wpa_pairwise=TKIP' >> /etc/hostapd.conf
echo 'rsn_pairwise=CCMP' >> /etc/hostapd.conf
echo 'auth_algs=1' >> /etc/hostapd.conf
echo 'macaddr_acl=0' >> /etc/hostapd.conf
echo 'noscan=1' >> /etc/hostapd.conf
echo 'ctrl_interface=/var/run/hostapd' >> /etc/hostapd.conf
echo 'ctrl_interface_group=0' >> /etc/hostapd.conf
Et celui en php
<?php
key=12345678
ssid=OBAMA
exec('/diagbox/scripts_sh/hostapd');
?>
Vous vous doutez bien que si je pose mon code ici,c’est que ça ne fonctionne pas. Et étant débutant, je ne vois pas mon erreur qui doit être énorme
Merci d’avance
Mimoza
Octobre 25, 2017, 8:55
2
Essaye ça déjà :
<?php
exec('/diagbox/scripts_sh/hostapd 12345678 OBAMA');
?>
et ensuite ça
<?php
$key=12345678
$ssid=OBAMA
exec("/diagbox/scripts_sh/hostapd $key $ssid");
?>
«$x» représente le Xème argument lors du lancement de ton script, là tu ne passais rien.
Attention au deuxième exemple j’ai changer les guillemet pour que tes variables soient bien interprétées.
PS : J’ai pas testé le code …
Hello Mimoza.
La première commande fonctionne super bien.
La deuxième non lol
Mimoza
Octobre 25, 2017, 12:13
4
Désolé je ne fait pas de dev PHP et je n’ai pas d’environnement de test sous la main …
Si la première commande te suffit tant mieux
Ne sois pas désolé,tu m’as beaucoup aidé déjà. Merci
Bonjour
domoticity:
…La deuxième non lol…
Je n’ai pas l’habitude d’utiliser php
Mais peut-être comme ça :
<?php
$key = 12345678
$ssid = "OBAMA"
exec("/diagbox/scripts_sh/hostapd ".$key." ".$ssid);
?>
Merci pour ton aide
apres plusieurs tests j’ai trouvé mon erreur
Mimoza avait raison mais il manquait un petit truc :
<?php
$key=12345678; ==> le ;
$ssid="OBAMA"; ==> le ; et les guillemets
exec("/diagbox/scripts_sh/hostapd $key $ssid");
?>
tu n’etais pas tres loin
merci encore pour ton aide précieuse
Mimoza
Octobre 26, 2017, 12:03
9
La meilleur façon d’apprendre c’est de chercher par soi-même
Bien joué
Merci pour le retour
et bravo pour avoir trouvé la solution
Je me suis permis de modifier l’apparence des blocs de lignes des scripts dans ton premier message de fil,
et je te propose le script suivant :
#!/bin/bash
ssid=$1
key=$2
cat << TAG_EOF > /etc/hostapd.conf
ssid=$ssid
interface=wlan0
hw_mode=g
channel=5
#bridge=br0
driver=nl80211
logger_syslog=0
logger_syslog_level=0
wmm_enabled=1
wpa=2
preamble=1
wpa_psk=66eb31d2b48d19ba216f2e50c6831ee11be98e2fa3a8075e30b866f4a5ccda27
wpa_passphrase=$key
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
auth_algs=1
macaddr_acl=0
noscan=1
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
TAG_EOF
Voir :
https://stackoverflow.com/questions/2953081/how-can-i-write-a-heredoc-to-a-file-in-bash-script
https://en.wikipedia.org/wiki/Here_document
Hello
Ca marche très bien ton code.
Je vais étudier les liens que tu m’as mis.
Merci beaucoup