Я пытаюсь заставить PHP делать системные вызовы в OS X. Однако он, похоже, не может найти что-либо, что включено в системный путь.
Когда я бегу ...
putenv("PATH={$_SERVER["PATH"]}:/usr/local/bin");
... как раз перед системным вызовом, он работает. Это не практическое решение, так как код, который выполняет системный вызов, является плагином, поэтому я не хочу касаться исходного кода, который сделает его несовместимым, придет обновление.
Apache2 работает как тот же пользователь, что и у меня, поэтому теоретически он имеет доступ к тем же командам, что и я.
Кроме того, тот же код отлично работает на моей машине Ubuntu.
Что говорит 'getenv (« PATH »)' say? Может быть, нет пути для пользователя PHP/Apache на Mac OS? –
Ну, работает Php echo getenv («PATH»); ?>, php echo system ("whoami"); ?> и php echo system ("echo \ $ PATH"); ?> выходы/usr/bin:/bin:/usr/sbin:/sbin, (мой пользователь) и/usr/bin:/bin:/usr/sbin:/sbin. Запуск «echo $ PATH» с консоли, когда пользователь apache выводит/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/git/bin:/usr/X11/bin – Henrik