Проблема с WAMP - PHP shell_exec()
-
06-09-2019 - |
Вопрос
Я использую WAMP в качестве сервера, и мне нужно выполнить svn, который можно найти в моем каталоге Windows:C:/Program Файлы/Subversion/bin/
Проблема в том, что когда я запускаю php-программу с сервера, она не выдает выходных данных.Это работает из командной строки, что заставляет меня думать, что это проблема с разрешениями в WAMP.Однако, предоставив ему неограниченную мощность, он по-прежнему не будет выполнять команды svn, если я не вызову его из командной строки.
Я пробовал вызывать его с полным путем к svn, и это обычный путь.Другие команды, такие как "dir", работают нормально.
Чтобы прояснить мой вопрос:Как я могу выполнить svn из php через WAMP?
Решение
вместо этого используйте бесплатные классы svn, для них не требуется svn module:http://www.phpclasses.org/browse/package/3427.ht http://code.google.com/p/phpsvnclient/
Другие советы
PHP имеет целая куча функций, которые явно имеют дело с репозиториями svn и не требуют от вас использования каких-либо функций типа system().
Поскольку вы сказали, что не можете использовать различные функции svn, попробуйте следующее:
<?php
$cmd = 'set PATH';
echo '<pre>' , shell_exec( $cmd ) , '</pre>';
?>
Посмотрите, что это возвращает (найдите переменную окружения PATH).Посмотрите, что содержит PATH.
Возможно, вам придется добавить папку Subversion в свой PATH:
<?php
$cmd = 'set PATH=%PATH%;"C:\Program Files\Subversion\bin\"; svn up';
shell_exec( $cmd );
?>
Надеюсь, установка ПУТИ решит вашу проблему.
Я тоже нашел эту проблему и могу решить эту проблему, убедитесь, что вы используете имя пользователя и пароль (при необходимости).
например.обновление svn "\мой\проект\" --имя пользователя [имя моего пользователя] --пароль [мой пароль]
Если нет, то вывода нет, и svn все еще ждет, пока вы введете это.
P.S.Когда я вхожу в систему и запускаю svn в cmd, он не запрашивает имя пользователя и пароль, но когда я запускаю PHP, вам это нужно.Надеюсь, это решит вашу проблему.