У меня проблемы с выполнением компилятора lessc из PHP.Я использую Symfony и пробовал использовать sfLESSPlugin, но безуспешно.Я поместил свой код в фильтр, который выполняется до отображения страницы, чтобы каждый раз, когда страница обновлялась, мои файлы LESS компилировались в один файл CSS (не нужно перекомпилировать вручную каждый раз, когда я вносил изменения,по крайней мере пока я развиваюсь).Вот различные варианты, которые я пробовал:
$fs = new sfFilesystem();
$command = '/Users/jordanb/node/node_modules/less/bin/lessc less/bootstrap.less css/bootstrap.css';
try
{
$fs->execute($command, null, array($this, 'throwCompilerError'));
}
catch (RuntimeException $e)
{
return false;
}
Это возвращает ошибку: «Ошибка выполнения команды» с кодом ошибки 127. При копании глубже в execute () Symfony он вызывает proc_open (), а затем proc_close ().Некоторые онлайн-исследования показали, что код ошибки 127 означает, что команда не найдена.
Выполнение точно такой же команды в командной строке работает просто отлично.
Чтобы быть уверенным, я выполнил chmod 777 в / Users / jordanb / node / node_modules / less / bin / lessc, просто чтобы убедиться, что это не проблема с разрешениями.Все еще не работал.
Я также попробовал просто "lessc" вместо полного пути, который не работал.Я добавил lessc в мой путь к классам, поэтому, набрав «which lessc», я получаю /Users/jordanb/node/node_modules/less/bin/lessc".
Я также попробовал простое:1015 *
который, похоже, ничего не делал.Я напечатал вывод в журнал ошибок PHP, а также в текстовый файл, и вывод был пустым в обоих случаях.Я также попытался использовать полный путь в этом случае.