каталог не создается при запуске сценария оболочки bash в php

Я хочу выполнить сценарий оболочки bash в php . Сценарий оболочки, используемый для создания, создает каталог. Но он не создается, пока я запускаю .php файл на сервере.

Код php для выше i использовал ——-

 <html> <?php echo exec('./home/biswajit/lh.sh') ?> thanx </html> 

И код для соответствующего файла lh.sh – ——

 #!/bin/bash cat <<EOF | /home/biswajit/matlab -nodesktop -nosplash -nodisplay /> /home/biswajit/matlab_result.out mkdir('/home/biswajit/Done'); disp('directory created'); exit EOF 

Проверьте, с какими правами пользователя он запускается. Вы можете повторить вывод команды «whoami» (bash), чтобы узнать, с каким пользователем используется сценарий.

Если он выполняется, например, с пользователем «www-data» (ubuntu [и, возможно, другими] пользователем по умолчанию httpd), тогда у него могут не быть прав на создание каталога в домашней папке вашего пользователя.

Недавно я опубликовал проект, который позволяет PHP получать и взаимодействовать с реальной оболочкой Bash (по запросу root), она решает ограничения exec () и shell_exec (). Получить его здесь: https://github.com/merlinthemagic/MTS

После загрузки вы просто используете следующий код:

 $shell = \MTS\Factories::getDevices()->getLocalHost()->getShell('bash', true); $return1 = $shell->exeCmd('cat <<EOF | /home/biswajit/matlab -nodesktop -nosplash -nodisplay /> /home/biswajit/matlab_result.out'); $return2 = $shell->exeCmd('mkdir -p \'/home/biswajit/Done\''); //the return will be a string containing the return of the command echo $return1; echo $return2;