sh — php shell_execute не работает

У меня есть проблема, что я не могу shell_exec (), но он просто не будет работать. Есть ли проблема с shell_exec () или он просто не может как-то запустить myfile.sh ..
Если я запускаю код в оболочке, он работает нормально. Мой php не запускается в безопасном режиме, я проверил его из файла php.ini и также проверил disable_functions.
Мой PHP-код возвращается прямо сейчас ноль. И я попробовал также для целей тестирования:

$result = exec('myfile.sh', $output, $status);

я получил :

array(0){}int(127)

Оба файла имеют права чтения и выполнения chmod 775.
У меня есть файл message.php, на что похоже

<?php
$user = "username";
$pass = "pass";
$from = "from who";
$to = "1234567";
$msg = "test message";

$host="https://web.myurl.ee:portnr/etc/etc";
$handle = curl_init($host);
curl_setopt($handle, CURLOPT_NOBODY, true);
curl_exec($handle);
$res = curl_getinfo($handle, CURLINFO_HTTP_CODE);

if($res >= 400){
exit;
}else if($res < 200){
exit;
}else{
if(function_exists('shell_exec') && !ini_get('safe_mode')){
$file = 'myfile.sh';
if(file_exists($file)){
$result = shell_exec($file ."$user $pass $from $to $msg");
var_dump($result);
}else{
echo "No files";
}
}else{
echo "check status";
}
}
?>

и файл myfile.sh выглядит так

#!/bin/sh
if [$# -ne 5 ]; then
echo"jahas"exit 1
fi
etc...

Что мне здесь не хватает, любые советы, что посмотреть или что делать дальше.

В коде может быть несколько опечаток, я не копировал и не вставлял их.

1

Решение

Здесь нужно проверить две вещи:

  1. Сначала определите, отключены ли exec и shell_exec в php.ini

    disable_functions = exec

  2. exex () принимает команды и никаких файлов, если я не ошибаюсь, поэтому вместо простого добавления имени файла вы должны попробовать:

    Exec (имя_директории (ФАЙЛ) ‘/Myfile.sh’);

Используя правильный каталог и фактически передавая команду, а не имя файла.

0

Другие решения

Вы можете использовать абсолютный или относительный путь. Для относительных путей текущим каталогом обычно являются файлы PHP. Если вы не можете получить доступ к своим сценариям даже с абсолютным путем, может быть проблема с правами доступа к файловой системе. Имейте в виду, что PHP-скрипты обычно выполняются как системная учетная запись пользователя на веб-сервере.

Сценарии вашей оболочки должны храниться где-то рядом или внутри дерева приложений, чтобы вы могли предоставлять им доступ к своим PHP-сценариям (т. Е. К вашему веб-серверу), не слишком ставя под угрозу безопасность вашей файловой системы.

0

По вопросам рекламы [email protected]