#php #html #linux #nginx #scripting
#php #HTML #linux #nginx #сценарии
Вопрос:
здесь небольшая проблема. Я уже перепробовал много подходов, которые я нашел в Интернете, чтобы решить эту проблему, но пока это не сработало.
Я пытаюсь выполнить серверный скрипт Linux Bash при нажатии кнопки на статической стороне HTML. Это просто не работает.
Моя установка — это веб-сервер nginx, работающий на ubuntu, получивший статическую HTML-страницу с PHP-кодом внутри нее:
Версия Ubuntu: 18.04.2 LTS (Bionic Beaver) / Версия Linux: 5.4.0-42-generic / Версия Nginx: nginx / 1.14.0 (Ubuntu) / Версия PHP: 7.4.11
Скрипт Bash хранится в той же папке, что и index.html для веб-сайта (/var/www/website). В целях тестирования передал право собственности на файл сценария пользователю www-data и даже предоставил полный доступ всем пользователям к файлу (chmod 777 script.sh ), файл скрипта также определенно пригоден для выполнения.
Также это работает отлично: sudo -u www-data php -r "shell_exec('bash script.sh');"
PHP-код в HTML-файле:
<?php
shell_exec('bash script.sh)';
?>
Проверено с некоторыми echo, что эта часть выполняется. Также выглядит хорошо.
Но скрипт никогда не запускается ..
Был бы очень признателен за любые подсказки, как вы можете заметить, мои веб-навыки такие же плохие, как и мои навыки написания сценариев 😉
Большое спасибо и наилучшие пожелания
Juls
Комментарии:
1. Вы должны поместить php-код в файл .php, а не в .html, но если все в порядке, проверьте, есть ли в
script.sh
файле#!/bin/bash
в первой строке. Возможноshell_exec('./script.sh)';
, достаточно только. Или попробуйте указать ПОЛНЫЙ путь к скрипту, напримерshell_exec('bash /var/www/website/script.sh)';
2. @hlorand большое спасибо за ваши подсказки! Я попытался поместить php-код в файл .php и включил HTML-код файла, но это не сработало, но я продолжу пробовать что-то в этом направлении. The script.sh это определенно нормально 🙂
Ответ №1:
Является ли исполняемый файл shellscript без sudo? Может быть, попробовать
chmod x script.sh