Моя проблема с выполнением любой команды с моей домашней страницы php
Половина решена, я запустил свой pythonscript, но далее у pythonscript нет разрешения на выполнение его модулей
но я начинаю думать, что проблема в apache, а не в php? я попытался запустить pythonscript, который на самом деле и будет работать в конце, затем он запускается, но останавливается, когда скрипт пытается получить доступ к txt-файлу, похожему на этот
[stdout] =>
[stderr] => Traceback (most recent call last):
File "pythontest.py", line 4, in ? f = open("(path)/temp.txt", "w")
IOError: [Errno 13] Permission denied: '(path)/temp.txt'
Я перепробовал все различные виды методов выполнения, которые я мог найти exec, system, popen, proc_open, почти ничего не работает, я могу получить строку из system ("pwd"), но system ("ls") возвращает число 127 или 126. Я также пытался запустить скомпилированную программу c (код ниже), exec вернет объект "Array", но система вернет только 127 или 126, как это делает ls.
Также я пытался получить значения из объекта "Массив"? из exec, но ничего не возвращает, если я php print_R Array страница не загрузится.
вывод php (код ниже) -> a:, out1: 126, t [[0]:, strlen out: 5, out: Array, t:
независимо от того, сколько аргументов я на самом деле привел!
полный путь к ls дает 126, а просто "ls" дает число 127
Я протестировал chmod для всех файлов с полным разрешением, из page.php для тестирования программы, но все равно выдает тот же вывод
php безопасный режим отключен
<code>echo '<pre>';
print_r(execute('ls'))
echo '
';
возвращает
array
(
[stdout] =>
[stderr] => sh: /var/www/html/grndb/upscgenesearch/test1: Permission denied
[return] => 126
)
почему выдается разрешение «Отказано», когда программа test1 имеет полное разрешение?
<?php
$a = system("/bin/ls",$out1);
echo "a: "; echo $a;
echo ", out1: "; echo $out1;
$t = exec('pwd/test1 aa hh 11',$out);
foreach ($t as &$value) {
echo ($value);
}
echo ", t[[0]: "; echo $t[0];
echo ", strlen out: "; echo strlen($out);
echo ", out: "; echo $out;
echo ", t: "; echo $t;
?>
C исходный код
int main(int argc, char *argv[])
{
int i;
for(i = 0; i < argc; i++)
printf("arg %d: %s\n", i, argv[i]);
return 0;
}