www-data 사용자는 Ruby gem을 사용할 수 없습니다.

www-data 사용자는 Ruby gem을 사용할 수 없습니다.

Vagrant와 VirtualBox를 사용하여 가상 서버를 실행하려고 합니다. 내가 사용하고 있는 VirtualBox의 경우 scotch/box일부 구성 요소(apache, mysql, php 등)가 포함된 우분투 서버를 실행하기 위한 모든 기본 항목이 포함되어 있습니다. scotchbox에 대한 자세한 내용은 찾을 수 있습니다.여기.

이제 서버를 가동하여 Yii2 응용 프로그램을 실행하고 있지만 응용 프로그램이 시작되자마자 Yii 오류 메시지가 표시되고 sh: 1: sass: not found이로 인해 SASS 파일을 CSS로 변환할 수 없습니다. 그래서 내 서버로 돌아가서 sass가 설치되어 있는지 확인했지만 그렇지 않았기 때문에 명령을 실행 gem install sass한 후 sass가 설치되었습니다. gem list sass -i사실을 반환했습니다.

하지만 여전히 문제는 남아 있었고, sass를 찾을 수 없었습니다. 나는 내 콘솔로 돌아갔고 물론 아파치는 www-data 사용자에 의해 실행되었고 나는 vagrant 사용자로 ssh에 로그인했습니다. 그리고 이것은 나에게 약간 모호해졌습니다. Apache 서비스의 환경 변수에 Ruby와 gem 모두에 대한 경로를 추가했습니다. 하지만 여전히 www-data 사용자는 sass 명령이나 gem 명령, 심지어 ruby ​​명령도 찾을 수 없습니다.

나는 또한 아파치 서비스의 소유자를 www-data에서 방랑자 사용자로 변경하려고 시도했지만 그것은 다소 도움이 되었지만 그것은 내가 받아들이고 싶은 해결책이 아닙니다. 나는 vagrant와 같은 루트 사용자가 아닌 www-data 사용자가 Apache 서비스를 계속 소유하는 솔루션을 원합니다.

더 많은 데이터를 추가해야 한다면 알려주시기 바랍니다.

답변1

Yii 애플리케이션을 어떻게 시작하고 있나요? 명령줄을 통해 실행하는 것 같습니다. 실행하는 데 사용하는 사용자가 해당 경로에서 sass 응용 프로그램을 볼 수 없습니다. 몇 가지 선택 사항이 있습니다.

  • /usr/local/bin(또는 sass가 있는 모든 곳)을 포함하도록 사용자 PATH를 업데이트합니다. 이는 다음을 실행하여 확인할 수 있습니다.which sass
  • /usr/local/bin/sass에서 사용자가 성공적으로 검색하는 디렉토리에 대한 심볼릭 링크를 만듭니다(/bin과 같은 것이 작동할 수 있음).

이 오류가 발생했을 때 실행 중인 명령의 붙여넣기를 제공할 수 있습니까? Yii 실패 후 실행하면 which sass스크립트 위치에 대한 결과가 표시됩니까? 이것을 직접 실행하려고 하는지, 아니면 아파치를 통해 페이지에 접속하는지 확인할 수 있습니까(이 시점에서 www-data 사용자가 작동하게 됩니다).

관련 정보