Pude resolver esto. Publiqué la respuesta a mi pregunta en SO. ¡Espero eso ayude!
Pude resolver esto. Primero, instalé rvm como una instalación multiusuario para asegurar que la www-data
cuenta pueda acceder a ella.
$ curl -sSL https://get.rvm.io | sudo bash -s stable
Instale la versión ruby deseada, en mi caso 2.3.1, luego configure rvm para usarla:
$ rvm install 2.3.1
$ rvm use 2.3.1
Ejecute gem
para instalar las gemas que sean necesarias. Debido a que rvm es una instalación multiusuario, estas gemas se almacenan en el sistema y no en su usuario específico.
$ gem install packagename
No sé si esto es necesario, pero cerraría la sesión SSH y la volvería a abrir. rvm se mete con las variables de entorno, por lo que es mejor prevenir que curar.
Ejecute env
para imprimir todas las variables de entorno. printenv
También funciona si
env
no por alguna razón. Obtendrá una gran lista de todo lo establecido, solo necesita los relacionados con el rubí. No copie / pegue estos valores, son ejemplos que extraje de mi sistema. ¡El tuyo será diferente!
PATH=/usr/local/rvm/gems/ruby-2.3.1/bin:/usr/local/rvm/gems/ruby-2.3.1@global/bin:/usr/local/rvm/rubies/ruby-2.3.1/bin:/usr/local/rvm/bin:/home/steven/bin:/home/steven/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
rvm_bin_path=/usr/local/rvm/bin
GEM_HOME=/usr/local/rvm/gems/ruby-2.3.1
IRBRC=/usr/local/rvm/rubies/ruby-2.3.1/.irbrc
MY_RUBY_HOME=/usr/local/rvm/rubies/ruby-2.3.1
rvm_path=/usr/local/rvm
rvm_prefix=/usr/local
rvm_ruby_string=ruby-2.3.1
GEM_PATH=/usr/local/rvm/gems/ruby-2.3.1:/usr/local/rvm/gems/ruby-2.3.1@global
RUBY_VERSION=ruby-2.3.1
Ahora necesitamos PHP para reconocer estas variables. Tendrá que encontrar el archivo correcto en su sistema, lo que puede ser complicado. No tengo forma de saber cuál es el correcto, utilicé prueba y error.
El archivo en mi sistema es /etc/php/5.6/fpm/pool.d/www.conf
. Agregue
todas las variables de entorno que capturó previamente en este archivo con el siguiente formato. Tenga en cuenta que usted también necesita PATH
aquí.
env[rvm_path] = /usr/local/rvm
env[rvm_prefix] = /usr/local
Ahora reinicia php-fpm
. El nombre de su servicio puede ser diferente al mío; Estoy usando la compilación 5.6 de
ondrej / php .
Ubuntu 15.04 y más reciente (systemd):
$ sudo systemctl restart php5.6-fpm
Ubuntu 14.10 y más reciente:
$ sudo service php5.6-fpm restart
Finalmente, en el script en sí, necesitará ir cd
al directorio desde el que ejecuta el bundle
comando. Mi guión corto es este:
cd /opt/slate
/usr/bin/git reset --hard
/usr/bin/git pull
bundle exec middleman build --clean
cp -R /opt/slate/build/* /var/www/docs
¡Funciona para mi!