У меня есть php-скрипт, где некоторые системные команды работают нормально, а другие нет. Команды, которые не запускаются, могут быть скопированы и вставлены в оболочку и выполняться просто отлично.Системные команды, которые не выполняются в PHP
Система: OSX 10.9.2 (все обновлено).
Я пробовал много разных команд, как показано ниже.
exec()
, обратные кавычки, shell_exec()
, system()
, passthru()
Эта команда отлично работает.
exec("drush si -y --db-url=mysql://user:[email protected]:3306/dbname");
Но эти команды не запускаются.
exec("drush sql-sync @remote.staging @dev.anme -y");
exec("git ls-remote --heads [email protected]:blablaname/name.git");
Команды, которые не запускаются, могут копироваться и вставляться в оболочку и работать отлично. Я убедился, что сценарий запускается в соответствующем каталоге, используя функцию getcwd()
.
Почему вы думаете, что эти команды «не запускаются»? Любое сообщение об ошибке? В любом случае вы должны внедрять обнаружение ошибок и обработку, чтобы вы знали, что происходит. По крайней мере, вы должны посмотреть файл журнала http-серверов, чтобы прочитать сообщение об ошибке, если эти команды _really_ не выполняются, что я сомневаюсь. – arkascha
Btw: вы уверены, что ваш 'PATH' правильный? Попробуйте использовать абсолютный путь к тем командам, которые вы пытаетесь выполнить. – arkascha
Каково значение 'disable_functions' в вашем php.ini? – m79lkm