У меня возник вопрос о взаимодействии с системой PHP и Linux.Запуск скриптов из PHP
Я хочу, чтобы запустить стим с веб-страниц и адрес этой страницы является
http://site.eu/cp/user/services/21/steaminstall
И внутренний путь к WebPage, откуда работает команда МОС
/var/www/wwwuser/data/www/site.eu/panel.php?(here goes $_POST[''] data)
и пара Клиент
/var/www/wwwuser/data/Steam/SteamInstall
Дело в том, что я знаю, как получить доступ к этому скрипту, также я могу выполнить простой
echo "Script is Runing"
Но когда мои действия приходит в этот код
#!/bin/bash
wget -P /var/www/aftersoft/data/Servers/Steam/ http://media.steampowered.com/client/steamcmd_linux.tar.gz &&
tar xvfz /var/www/aftersoft/data/Servers/Steam/steamcmd_linux.tar.gz -C /var/www/aftersoft/data/Servers/Steam/ &&
sh /var/www/aftersoft/data/Servers/Steam/steamcmd.sh +login anonymous +quit &&
rm /var/www/aftersoft/data/Servers/Steam/steamcmd_linux.tar.gz &&
echo "Steam Installation and Update Completed"
Это не делает ничего, если им запустить его с веб-страницы, но это работает, когда им пытаются запустить его под пользователем SSH (так же, как апаш пользователь с разрешениями на запись в эту папку)
Итак, мой вопрос, что я делаю неправильно?
UPDATE: Мой PHP код для запуска сценария является
if($path[2] === 'steaminstall')
{
$InstallSteam = exec('/var/www/aftersoft/data/Servers/Steam/SteamInstall', $Output, $Error);
if($Error === 0)
{
$Status = $DB->SteamStatus($_SESSION['username']);
if($Status)
{
header('Location: /cp/'.$_SESSION['username'].'/services/');
}
else
{
$Smarty->assign('InstallStatus', 'Database Error Occured');
$Smarty->display('steaminstall.tpl');
}
}
if($Error === 2)
{
$Smarty->assign('InstallStatus', $Output);
$Smarty->display('steaminstall.tpl');
}
}
И это моя функция запроса к базе данных
public function SteamStatus($Username)
{
$Status = '1';
$Statement = $this->DBConnection->prepare("UPDATE account set steaminstalled = ? where username = ?");
$Statement->bindParam(1, $Status);
$Statement->bindParam(2, $Username);
$IStatus = $Statement->execute();
if($IStatus)
{
return true;
}
else
{
return false;
}
}
Можете ли вы предоставить более подробную информацию о вашем php-коде? –
Отредактированный кулак –