html — команда Grunt в скрипте Bash пропускается при вызове со страницы php (хост MAMP)

Фон

Поэтому я создаю страницу HTML и PHP, которая, когда пользователь нажимает кнопку, использует такие инструменты, как Ionic, чтобы создать приложение из файлов конфигурации и подписать его, а затем автоматически загрузить его в соответствующее хранилище.

Я создал страницу индекса PHP, которая находится в папке «htdocs» на сервере MAMP и прекрасно работает, когда вы переходите к «localhost: 8888» в браузере, все работает нормально, и когда нажимается кнопка «Отправить», выполняется быстрый вызов AJAX, который запускает другой PHP-файл, который запускает сценарии bash, которые выполняют всю работу по упорядочению файлов и папок, распаковке и, в конечном итоге, использованию grunt для запуска различных ионных процессов над файлами.

Проблема возникает с командой «grunt». У меня есть сценарий, который отлично выполняет каждую команду, и у меня даже есть файл журнала, поэтому я могу проверить его выполнение при вызове сценария с помощью кнопки на странице. Он проходит весь путь до ворчливой команды, а затем, кажется, просто пропускает ее. Когда я запускаю сценарий, используя все те же параметры в терминале, он работает прекрасно, и даже вызов grunt выполняется и выполняется хорошо, но как только я пытаюсь использовать точно такой же сценарий, используя созданную интерфейсную страницу, grunt Команда игнорируется, и каждая другая команда, кажется, успешно нажата.

Просто для повторения итерации, когда я запускаю скрипт с использованием терминала и передаю те же самые входные параметры, он работает, но когда я использую страницу и нажимаю кнопку, все остальное работает, и команда grunt пропускается или пропускается или не выполняется?

Вопрос

Итак, мой вопрос: почему это происходит и как я могу это исправить? Это как-то связано с MAMP или ворчанием?

Дополнительная информация:

Страница PHP хранится в папке htdocs MAMP, так что когда вы вводите localhost в браузер, она загружает эту страницу индекса.

/ Применение / MAMP / HTDOCS

Здесь также хранится файл PHP, который вызывает скрипты и возвращает на страницу индекса параметр успеха, так как он вызывается с помощью быстрой функции AJAX.

Сценарии, однако, расположены локально на компьютере, просто в простой папке для тестирования, которую я создал для тестирования системы. Возможно, здесь возникает проблема? Однако, как указано, скрипт работает и перемещает папки, копирует их, расстегивает молнию на них, но как только ворчание вызывается для запуска нескольких ионных процессов, он пропускает его.

Спасибо, что нашли время, чтобы прочитать это, и если у вас есть какие-либо вопросы или вам нужен код, пожалуйста, дайте мне знать, однако я считаю, что это не проблема, основанная на коде, а скорее теоретическая проблема. Но я более чем готов выложить код в случае необходимости.

Добавлен фрагмент кода
Я добавил код, который, кажется, вызывает проблемы, это из сценария, который вызывается. Этот фрагмент существует в операторе IF и ему удается успешно пройти весь путь до вызова «exec grunt», я пробовал много разных вариантов этого, включая cd-ing в каталог, затем просто командовал «grunt» и даже помещал grunt Команда в свой собственный скрипт PHP, чтобы увидеть, если это работает, ничего не работает с этой командой grunt.

echo "====================================="echo "|                                   |"echo "| Sources avaliable, ok to proceed  |"echo "|                                   |"echo "====================================="timestamp=$( date +%T )
echo "$timestamp ==== Sources file is avaliable <br />" >> "$LOG_FILE"
echo "====================================="echo "|                                   |"echo "|   Beginning the UN-zip and Move!  |"echo "|                                   |"echo "====================================="timestamp=$( date +%T )
echo "$timestamp ==== Un-zipping now starting <br />" >> "$LOG_FILE"
if [ -d "zz_app-framework_adrian_plus" ]; then
echo "Framework already exists so skip the un-zip phase"else
echo "Framework not present so, unzipping into current dir"unzip ../../Master/zz_app-framework_adrian_plus.zip -d .
fi
#REVISED --- #unzip ../../Master/zz_app-framework_adrian_plus.zip -d .
timestamp=$( date +%T )
echo "$timestamp ==== Un-zipping done! <br />" >> "$LOG_FILE"
echo "====================================="echo "|                                   |"echo "|          Unzip complete           |"echo "|                                   |"echo "====================================="
#REVISED --- #cd zz_app-framework_adrian_plus

rm -r zz_app-framework_adrian_plus/sources
unzip -o sources.zip -d zz_app-framework_adrian_plus/

rm -r zz_app-framework_adrian_plus/sources/appsmart-cfg.json

timestamp=$( date +%T )
echo "$timestamp ==== Config now swithcing <br />" >> "$LOG_FILE"
pwd

locate=$(pwd)

php ../../Master/getConfig.php "$apptoken" "$locate"
timestamp=$( date +%T )
echo "$timestamp ==== Config file replaced! <br />" >> "$LOG_FILE"
echo "====================================="echo "|                                   |"echo "|  Sources and Config updated...    |"echo "|                                   |"echo "====================================="
echo "====================================="echo "|                                   |"echo "|     Beginning Ionic Build         |"echo "|                                   |"echo "====================================="
timestamp=$( date +%T )
echo "$timestamp ==== Beginning Ionic processes <br />" >> "$LOG_FILE"
if [ -d "zz_app-framework_adrian_plus/project/platforms" ]; then
echo "Platforms already exist, deleting first before continuing!"  >> "$LOG_FILE"rm -r zz_app-framework_adrian_plus/project/platforms
else
echo "No Platforms exists, please check folders, however script will continue" >> "$LOG_FILE"fi

timestamp=$( date +%T )
echo "$timestamp ==== About to call grunt <br />" >> "$LOG_FILE"
exec grunt --base zz_app-framework_adrian_plus/project/ --gruntfile zz_app-framework_adrian_plus/project/Gruntfile.js

timestamp=$( date +%T )
echo "$timestamp ==== Grunt completed! <br />" >> "$LOG_FILE"
echo "====================================="echo "|                                   |"echo "|    Build Complete, Now Signing    |"echo "|                                   |"echo "====================================="
timestamp=$( date +%T )
echo "$timestamp ==== Beginning Signing process <br />" >> "$LOG_FILE"
locationOfApk=$(pwd)
fulllocation="$locationOfApk/zz_app-framework_adrian_plus"keylocation="../../Master/"
../../Master/./signit.sh "$apptoken" "$ident" "$slug" "$fulllocation" "$keylocation"
timestamp=$( date +%T )
echo "$timestamp ==== Signing Done! <br />" >> "$LOG_FILE"

echo "====================================="echo "|                                   |"echo "|         Signing Complete!         |"echo "|                                   |"echo "====================================="
echo "====================================="echo "|                                   |"echo "|       Uploading to store...       |"echo "|                                   |"echo "====================================="
timestamp=$( date +%T )
echo "$timestamp ==== Now uploading to store... <br />" >> "$LOG_FILE"

0

Решение

Задача ещё не решена.

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

Других решений пока нет …

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