El usuario de www-data no puede usar gemas de rubí

El usuario de www-data no puede usar gemas de rubí

Estoy intentando ejecutar un servidor virtual usando Vagrant y VirtualBox. Para VirtualBox que estoy usando scotch/box, que tiene todo lo básico para ejecutar un servidor Ubuntu con algunos componentes (apache, mysql, php, etc.), se puede encontrar más información sobre scotchbox.aquí.

Ahora tengo el servidor en funcionamiento (ejecutando una aplicación Yii2), pero tan pronto como se inicia la aplicación, aparece un mensaje de error de Yii sh: 1: sass: not foundy debido a eso, un archivo SASS no se pudo convertir a CSS. Así que volví a mi servidor para verificar si sass estaba instalado, no fue así, ejecuté el comando gem install sassy luego se instaló sass. gem list sass -idevolvió verdadero.

Pero aún así el problema persistió, no se pudo encontrar sass. Regresé a mi consola y, por supuesto, el usuario www-data ejecuta Apache e inicié sesión en ssh con el usuario vagabundo. Y aquí es donde se vuelve un poco vago para mí. En las variables de entorno del servicio apache agregué las rutas tanto a ruby ​​como a gems. Pero aún así el usuario de www-data no puede encontrar el comando sass o el comando gem o incluso el comando ruby.

También intenté cambiar el propietario del servicio Apache de www-data al usuario vagabundo, pero eso ayudó un poco, pero esa no es la solución que quiero aceptar. Quiero una solución para que el servicio Apache siga siendo propiedad del usuario www-data y no de un usuario root como vagrant.

Si es necesario agregar más datos, hágamelo saber.

Respuesta1

¿Cómo estás iniciando tu aplicación Yii? Parece que lo está iniciando a través de la línea de comando. Cualquiera que sea el usuario que esté utilizando para iniciar, no ve la aplicación descarada en sus rutas. Tienes algunas opciones.

  • Actualice la RUTA de los usuarios para incluir /usr/local/bin (o dondequiera que viva sass, que puede determinar ejecutandowhich sass
  • Cree un enlace simbólico desde /usr/local/bin/sass a un directorio en el que el usuario busque correctamente (algo como /bin podría funcionar)

¿Podrías pegar el comando que estás ejecutando cuando aparece este error? Si ejecuta which sassdespués del error de Yii, ¿ve resultados para la ubicación del script? ¿Puedes confirmar que estás intentando ejecutar esto manualmente o si estás accediendo a una página a través de Apache (en cuyo momento, el usuario www-data entraría en juego)?

información relacionada