shell exec не работает для определенного кода в php


Когда я пытаюсь использовать *shell_exec(cmd)* или system(cmd) для такой команды, как ping google.com тогда он работает правильно.

Код 1: Будет работать на PHP

<?php
echo shell_exec(ping google.com)
?>

Но когда я пытаюсь выполнить следующий код, он возвращает пустую страницу.

Код 2: Не будет работать в PHP

<?php
echo shell_exec(ec2-describe-addresses --region us-west-2)
?>

Обе команды

1.пинг google.com

2.ec2-описание-адреса -регион США-запад-2

Правильно работает в командной строке Windows.

Может ли кто-нибудь, пожалуйста, подсказать мне, как я могу запустить вторую команду в PHP?

PS:ec2-описание-адресов -регион сша-запад-2 - это команда AWS EC2 для Описания эластичных IP-адресов для учетной записи http://aws.amazon.com/articles/Amazon-EC2/1346

Author: HackerNews, 2013-09-02

1 answers

Проблема заключалась в том, что PHP работал не от имени пользователя root, изменение пользователя на root фактически решило проблему. Для тех, кто хочет знать, как переключить пользователя PHP на ROOT. Просто выполните следующие действия.

Шаг 1: Откройте httpd.conf

Шаг 2: Поиск пользователя/группы

Шаг 3: Под ним вы найдете

Пользователь (ваше имя пользователя по умолчанию)

Группа (имя группы по умолчанию)

Измените его на root, чтобы ваш файл выглядит так:-

Корень пользователя

Корень группы

Шаг 4: Перезапустить Apache

PS: Переключение PHP на работу в качестве пользователя root не рекомендуется для производственных серверов. Пожалуйста, измените это только в том случае, если вы уверены в этом.

 2
Author: HackerNews, 2013-09-03 20:58:24