2016-11-23 4 views
2

при попытке запустить эту команду из PHP это показать эту ошибкуIIS 8 - отказано в доступе при попытке выполнить команду с Exec в PHP

Access is denied.

$ruta = "C:\OpenSSL-Win31\bin\openssl pkcs8 -inform DER -in Usuarios_XML/$rfc/$archivo.key -out Usuarios_XML/$rfc/$archivo.key.pem -passin pass:".$key; 

$ejecuta = exec($ruta . ' 2>&1', $output); 
print_r($output); 

Но когда я запускаю его прямо из моего сервер в консоли openssl он работает.

Я предполагаю, что мне нужно разрешение, но я понятия не имею, где его изменить, какая-то идея, как это можно достичь?

Сервер работает Windows Server 2012, надеюсь, вы можете мне помочь, спасибо.

+0

Это было бы полезно. http://stackoverflow.com/questions/17914402/php-exec-is-not-executing-the-command –

+0

@DipuRaj Я прочитал всю информацию с этого вопроса и там, где я видел ваш комментарий, но там нет информации чтобы дать разрешение, как вы это сделали, чтобы решить, кому вы дали разрешение и как ?, Мне действительно нужна помощь, у меня есть доступ к моему серверу, и я могу сделать какие-либо изменения, но я не то, что мне нужно изменить – Fixer

+0

Я попытался дать все разрешения для пользователей и файла, у меня есть, но это не работает, по-прежнему та же проблема, – Fixer

ответ

0

Это довольно сложная проблема. Насколько я понимаю до сих пор, проблема в том, что ваша команда пытается получить доступ к файловой системе, а IIS не разрешает доступ к файловой системе по умолчанию. Он работает в командной строке, потому что команда propt имеет доступ к файловой системе, но когда одна и та же команда запускается через PHP и WebServer (IIS), она получает отказ.

Вы можете попробовать несколько вещей,

  1. Перейти через свойство безопасности всех файлов, используемые в команде (в том числе C:\OpenSSL-Win31\bin\openssl.exe) и проверить, если NETWORK USER имеет доступ, еще добавить и дать полный доступ ,
    Для проверки secuirty файла: right click on the file > properties > security tab

  2. Если это не поможет, дайте IIS доступ администратора. Пожалуйста, проверьте IIS: Application Pool Identities, чтобы узнать, как это сделать. Поскольку вы предоставляете Администратору доступ к IIS, у него есть собственный риск внешней атаки. Пожалуйста, исследуйте больше об этом, чтобы вы знали, что делаете.

В моем случае работало более позднее решение, сообщите нам, поможет ли вам это.

+0

Я пробовал первый, но я не уверен, что является сетевым пользователем моего списка, я попробовал со вторым вариантом но он говорит, что в основном для Windows Server 2008 в любом случае я пытался сделать часть, где показан рабочий процесс W3wp.exe, и я попытался дать полный контроль, но он не позволяет мне сохранять изменения, которые он говорит: «не удалось сохранить изменения на w3wp, доступ запрещен' – Fixer

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

  • Нет связанных вопросов^_^