Всем привет.
Хочу вызывать из php скрипт на shell с передачей переменных. В какой-то степени я это реализовал. Есть страница с формой:
<form id="form" action="form.php" method="POST">
<input name="name" type="text" placeholder="Ваше имя" required>
<input name="email" type="text" placeholder="Ваш email" required>
<input name="sub" type="text" placeholder="Тема" required>
<textarea name="message" placeholder="Сообщение" required></textarea>
<input name="button" type="submit" value="ОТПРАВИТЬ">
</form>
Форма обрабатывается php скриптом:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$sub = $_POST['sub'];
$message = $_POST['message'];
system ("NAME='$name', EMAIL='$email', SUB='$sub', MESSAGE='$message' bash /root/scripts/emailsender.sh");
?>
и этот скрипт вызывает другой скрипт, уже на shell:
#!/bin/bash
sendemail -f blabla@yandex.ru -t info@blabla.ru -u TEST -m $NAME $EMAIL $SUB $MESSAGE -s smtp.yandex.ru -xu blabla-xp Password -o tls=yes -v > /tmp/formLog
При этом многочисленными тыками я понял, что в php скрипте не выполняется именно вызов shell скрипта, переменным значения из формы присваиваются (проверено). Что допилить, чтобы оно заработало? Думаю, что кто-то упрекнет меня за такую реализацию отправки писем с сайта, ну и что, дело не в этом.
P.S. Если запустить из консоли сервера скрипт form.php, то всё отработает как надо (разве что, в таком виде будут неопределенными переменные, но не суть). Проблема именно при выполнении скрипта апачем. На сркиптах для теста права 777.
Перемещено beastie из general