2012-05-24 3 views
1

Так что мне нужна небольшая помощь в отношении запуска команд ssh/command из php.Использование PHP для правильной работы ssh/командной строки

Из ворот - да Exec включен на сервере - его наш собственный выделенный ящик

Настройка. Я создал сценарий, который использует api cpanel для создания поддоменов для конкретной учетной записи. Все в порядке и денди, и все работает так, как ожидалось. Теперь у нас установлен SSL-шаблон.

Длинные и короткие от этого. В настоящих условиях, если вы остановились: https://user.domain.com вы увидите только верхний корневой каталог для учетной записи, НЕ каталог, в котором он должен быть. Но если вы используете его без https - он делает то, что он должен. Теперь это выделенный ящик с HostGator, и у них был этот скрипт, который установлен для меня, чтобы делать то, что нужно сделать, - и это работает так, как ожидалось.

Сценарий HostGator установлен расположен по адресу: /вар/CPanel/UserData/счета/mdssl

Так линия они дали мне, чтобы запустить сценарий и делать то, что он должен сделать, это выглядит следующим образом:

./mdssl клон domain.com user.domain.com

Так что мой вопрос - потому что я никогда не работал с оболочкой вещи внутри PHP, будет следующая строка будет работоспособным пример того, как выполнить скрипт ?

shell_exec ('/ var/cpanel/userdata/account/mdssl clone domain.com user.domain.com');

или мне просто нужна команда exec? И должна ли линия открытия быть другой? Мне просто нужно нажать эту строку, используя php, и передать ему поле «user», а скрипт сделает свою работу, чтобы клонировать настройку для SSL, так что функции подстановочных знаков работают должным образом, а учетная запись пользователей приземляется правильно каталог должен.

Любое понимание оценено! :)

спасибо.

+0

сделано! спасибо за вход. :) –

+0

Я вернулся в свою учетную запись и нажал на каждый вопрос, а затем нажмите «да», чтобы это было полезно. Это НЕ правильный способ сделать это? –

+1

@MrTechie Вы нажимаете галочку рядом с конкретным ответом, который помог вам решить проблему, галочка станет зеленой, а затем ответ будет принят. – drew010

ответ

0

Я только использовал exec() или system()

Они всегда сложно, и, как правило, не так, как ожидалось.

Я бы начать с

ini_set("display_errors", 1); 

exec('/var/cpanel/userdata/account/mdssl clone domain.com user.domain.com', $output); 

var_dump($output); 

Посмотрите, что говорит выход или если ошибка PHP происходит.

Возможно, вам также необходимо сбежать из текущего каталога, по умолчанию которого вы используете ../, и убедитесь, что у пользователя apache есть доступ к mdssl (или любому пользователю, который использует ваша система). Возможно, вам понадобится sudo.

Смежные вопросы