Пользователь www-data не может использовать рубиновые драгоценные камни

Пользователь www-data не может использовать рубиновые драгоценные камни

Я пытаюсь запустить виртуальный сервер с помощью Vagrant и VirtualBox. Для VirtualBox, который я использую, scotch/boxв котором есть все основные вещи для запуска сервера Ubuntu с некоторыми компонентами (apache, mysql, php и т. д.), больше информации о scotchbox можно найти здесьздесь.

Теперь я запустил сервер (запустил приложение Yii2), но как только приложение запускается, я получаю сообщение об ошибке Yii sh: 1: sass: not found, и из-за этого файл SASS не может быть преобразован в CSS. Поэтому я вернулся на свой сервер, чтобы проверить, установлен ли sass, он не был установлен, поэтому я запустил команду, gem install sassи после этого sass был установлен. gem list sass -iвернул true.

Но проблема осталась, sass не удалось найти. Я вернулся к своей консоли, и, конечно же, apache запущен пользователем www-data, и я вошел в ssh с пользователем vagrant. И вот тут-то для меня все становится немного неясным. В переменных окружения службы apache я добавил пути и к ruby, и к gems. Но пользователь www-data все еще не может найти команду sass или команду gem или даже команду ruby.

Я также пытался изменить владельца службы apache с www-data на пользователя vagrant, но это немного помогло, но это не то решение, которое я хочу принять. Мне нужно решение, при котором служба apache останется собственностью пользователя www-data, а не пользователя root, как vagrant.

Если необходимо добавить дополнительные данные, пожалуйста, дайте мне знать.

решение1

Как вы запускаете свое приложение Yii? Похоже, вы запускаете его через командную строку. Какого бы пользователя вы ни использовали для запуска, он не видит приложение sass в своих путях. У вас есть несколько вариантов.

  • Обновите PATH пользователя, включив в него /usr/local/bin (или там, где находится sass, это можно определить, выполнив командуwhich sass
  • Создайте символическую ссылку из /usr/local/bin/sass на каталог, в котором ваш пользователь успешно выполняет поиск (может подойти что-то вроде /bin)

Не могли бы вы предоставить вставку команды, которую вы запускаете, когда получаете эту ошибку? Если вы запускаете which sassпосле сбоя Yii, вы видите результаты для местоположения скрипта? Можете ли вы подтвердить, что вы пытаетесь запустить это вручную или вы обращаетесь к странице через apache (в этом случае пользователь www-data вступит в игру).

Связанный контент