私はこれを理解することができました。まず、www-data
アカウントにアクセスできるようにするために、マルチユーザーインストールとしてI installed rvmを使用します。
$ curl -sSL https://get.rvm.io | sudo bash -s stable
、私の場合2.3.1には、それを使用するには、次に設定RVMを希望ルビーバージョンをインストールします。
$ rvm install 2.3.1
$ rvm use 2.3.1
実行gem
必要とされているすべての宝石をインストールします。 rvmはマルチユーザーインストールであるため、これらのgemは特定のユーザーではなくシステムに保存されます。
$ gem install packagename
これが必要かどうかわかりませんが、私はSSHセッションを閉じて再度開きます。 rvmは環境変数を混乱させるので、申し訳ありません。
すべての環境変数を印刷するにはenv
を実行してください。 printenv
は何らかの理由でenv
がない場合でも動作します。あなたはすべてのセットの大きなリストを取得します、あなたはルビー関連のものだけが必要です。 これらの値をコピー/ペーストしないでください。私は自分のシステムから引っ張った例です。あなたのものは違うでしょう!
PATH=/usr/local/rvm/gems/ruby-2.3.1/bin:/usr/local/rvm/gems/[email protected]/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/[email protected]
RUBY_VERSION=ruby-2.3.1
今、私たちは、これらの変数を認識するためにPHPを必要としています。システム上で適切なファイルを見つける必要がありますが、それは扱いにくいことがあります。私はどちらが正しいかを知る方法がなく、試行錯誤を繰り返しました。
私のシステム上のファイルは/etc/php/5.6/fpm/pool.d/www.conf
です。 のすべてを、以前にこのファイルに取り込んだ環境変数の下の形式で追加してください。ここにもPATH
が必要です。
env[rvm_path] = /usr/local/rvm
env[rvm_prefix] = /usr/local
ここで、php-fpm
を再起動します。あなたのサービス名は私のものと異なるかもしれません。私はondrej/phpから5.6ビルドを使用しています。
のUbuntu 15.04以降(systemdに):
$ sudo systemctl restart php5.6-fpm
のUbuntu 14.10以降:
$ sudo service php5.6-fpm restart
最後に、スクリプト自体に、あなたが実行しているディレクトリにcd
する必要がありますからbundle
コマンド。私の短いスクリプトはこれです:
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
私のための作品!
ユーザーwww-dataのパスにあることを確認しますか? –
Rubyのgem環境には、多くの変数が設定されている必要があります。そうでないと動作しません。最も重要なのは 'PATH'です。 – tadman