#php
#php
Вопрос:
я использовал PHP site для запуска сценария оболочки, и он создал желаемый файл имени «result.txt » внутри /opt/xampp/htdocs. Однако result.txt является полностью пустым, когда предполагается, что он должен иметь выходные значения из сценария оболочки. Попробовал на терминале, result.txt создается на рабочем столе, и выходные данные находятся там. Пробовал на PHP, result.txt создается, но внутри нет абсолютно никаких выходных данных.
Это длинный скрипт, поэтому вот первые несколько строк:
# creates result.txt
touch result.txt
##makes the .txt read only
chmod 444 result.txt
clear
###################################################
# This option audits the password and #
# shadow files on the system #
###################################################
##option 2.1.1
echo -e "=========================================================================================" >> result.txt
echo " SHADOWED PASSWORD CHECK " >> result.txt
echo "=========================================================================================" >> result.txt
Кто-нибудь?
Спасибо.
Комментарии:
1. Покажите код, который вы используете для запуска сценария оболочки
2. <?php exec(‘/Desktop/test.sh’); ?> Я полный новичок в PHP
3. Что содержит сценарий оболочки?
4. Он содержит базовые коды аудита ИТ-системы. Он создает файл с именем «result.txt » и отправляйте туда каждый тестовый вывод в одном скрипте.
5. Было бы полезно их просмотреть — вызов exec() в порядке, единственное отличие от его запуска из командной строки обычно заключается в том, что PHP запускается под другим пользователем.
Ответ №1:
Во-первых, совершенно необязательно перенаправлять вывод каждого эхо-вызова — используйте это в начале вашего сценария оболочки, чтобы перенаправить стандартный вывод в ваш выходной файл.
exec amp;> results.txt
Во-вторых, ваш chmod в 444 не оставит файл доступным для записи пользователем Apache / PHP — я бы выполнил это в самом конце вашего скрипта, если это вообще необходимо.
Ответ №2:
Сначала попробуйте изменить рабочий каталог, используя chdir($folder).
<?php
chdir("/testfolder/");
exec("./script.sh");
?>
Но почему бы не написать скрипт как php? Такие вещи, как touch, chmod и любая другая команда, доступная в оболочке unix, легко доступны в php.