Почему я не могут выполнить этот сценарий удара с помощью php? Я попробовал exec()
а также shell_exec()
.
index.php
<?php
$old = getcwd();
echo $old;
chdir($old);
$message=exec("a.sh");
print_r($message);
?>
a.sh
#!bin/bash
echo "i am a" > /opt/lampp/htdocs/a.txt
echo "Done"
Я попробовал chdir
как предложено здесь, а также я проверил мой disable_functions
в php.ini
, это ничего не имеет. Я также проверил другие вопросы, но ни один, кажется, не решает мою проблему.
Во-первых, убедитесь, что хижина точно следующие:
#!/bin/bash
117-секундный, быть уверенным, что сценарий является исполняемым использованием следующей команды в терминале:
chmod +x /path/to/a.sh
И в-третьих, Вы должны для использования полного пути для сценария удара, или в случае, можно использовать:
$message=exec("$old/a.sh");
И, как в стороне примечание, следующие две команды из Вашего сценария PHP не имеют никакого смысла:
$old = getcwd();
chdir($old);
Они эквивалентны с chdir(getcwd())
, которые изменяют текущий каталог на... текущий каталог, поэтому на самом деле, ничего не происходит.