番外編も6まで来てしまった。Kotz’i’jはTwitter Botなので定期的且つ自動的に実行される必要がある。Herokuにデプロイしたのはそのためだったのに、思った通りに行かなかったのでXserverを活用することとした訳だし。
でCronの設定。こちらはSSH上でも出来るけどウェブページから。
サーバーパネルからCron設定を選択。
適宜入力して実行を試みる。
色々試して
こういう風にコマンドを入力したけどどうしても
1 2 |
kotzij/TwitterBot/tweets.rb:2:in `require': no such file to load -- rubygems (LoadError) from kotzij/TwitterBot/tweets.rb:2 |
というエラーが出てしまった。
SSH上では実行出来ているのでgemが無いということはない。色々検索したけど解決策が見当たらない。そもそもレンタルサーバー上でgemをrequireするRubyプログラム実行例が全く無い様な気がする。
試行錯誤の上思いついたのが.bashrcに記載したパスをCronでプログラムを実行する際に読み込めないかということ。つまり
1 |
export PATH=$HOME/kotzij/bin:$HOME/kotzij/bin/bin:$PATH && ruby kotzij/TwitterBot/tweets.rb |
こういう風に入力してみた。
ただこうするとgemは見つかるけど今度はdicitionariesフォルダ下にあるワード・リストが見当たらないということに。色々試行錯誤した結果カレント・ディレクトリがrootになっていることが問題かなと思いこちらも設定することとした。つまり
1 |
cd $HOME/kotzij/TwitterBot/ && export PATH=$HOME/kotzij/bin:$PATH && ruby tweets.rb |
こうした。これでしっかりと実行出来る様になった。これで好きな様にボットを管理出来る様になった。