Использование shell_exec()

Мне было интересно, знает ли кто-нибудь, как я могу правильно использовать shell_exec(). Я включил его в файле php.ini, но, похоже, он не работает.

Должен ли я входить в оболочку, используя имя пользователя и пароль?

Как мне получить доступ к тому, что находится на экране -r через shell_exec()?

P.S. Я пытаюсь запустить команду списка на сервере Minecraft и вернуть данные.


person Hugo    schedule 22.08.2011    source источник
comment
Вы запускаете php-скрипт как исполняемый файл или apache запускает его через браузер?   -  person Explosion Pills    schedule 22.08.2011
comment
Апач через браузер. Я не запускаю файл .sh.   -  person Hugo    schedule 22.08.2011
comment
вы можете запустить файл php как исполняемый файл.   -  person Explosion Pills    schedule 22.08.2011


Ответы (2)


Нет, вам не нужно входить в оболочку, оболочка будет выполняться как пользователь ОС, выполняющий ваши php-команды. Для начала сначала проверьте правильность работы shell_exec:

<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>
person JJ.    schedule 22.08.2011
comment
Хорошо, это сработало. Это дало мне вывод файлов. Мне нужно добраться до сервера майнкрафта, правда, через оболочку на PHP... Не знаю, как это сделать. Я использовал screen -r в командной строке с помощью PuTTy, но я не знаю, применимо ли это здесь. - person Hugo; 22.08.2011
comment
Когда я использую screen -r вместо ls -lart, я получаю эту ошибку: Должен быть подключен к терминалу. - person Hugo; 22.08.2011

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

person ThiefMaster    schedule 22.08.2011
comment
Не могли бы вы расширить .. Я понятия не имею, о чем вы говорите. Извините, я немного новичок. - person Hugo; 22.08.2011