Kotz’ijに恋して番外編7: Xserver上でCron設定する際の注意点

TwitterbotをHerokuからXserver上に移してCronで定期的に実行する様にしてから不具合のあったreplies.rb。問題点は直ぐに見つかったけど、その後Cronから実行するとこんなエラーが。

で該当のコードがこちら。

要はこのボキャブラリー・リストがアクセントやñを含む文字を含んでいるから文字化けが起こったのだと思う。で対処法としては

とすると正しい文字コードが使われて実行出来るようになった。

よかった、よかった。

Kotz’ijに恋して番外編6(XserverのCronを使ってRubyプログラムを実行)

番外編も6まで来てしまった。Kotz’i’jはTwitter Botなので定期的且つ自動的に実行される必要がある。Herokuにデプロイしたのはそのためだったのに、思った通りに行かなかったのでXserverを活用することとした訳だし。

でCronの設定。こちらはSSH上でも出来るけどウェブページから。

サーバーパネルからCron設定を選択。

適宜入力して実行を試みる。

色々試して

こういう風にコマンドを入力したけどどうしても

というエラーが出てしまった。

SSH上では実行出来ているのでgemが無いということはない。色々検索したけど解決策が見当たらない。そもそもレンタルサーバー上でgemをrequireするRubyプログラム実行例が全く無い様な気がする。

試行錯誤の上思いついたのが.bashrcに記載したパスをCronでプログラムを実行する際に読み込めないかということ。つまり

こういう風に入力してみた。

ただこうするとgemは見つかるけど今度はdicitionariesフォルダ下にあるワード・リストが見当たらないということに。色々試行錯誤した結果カレント・ディレクトリがrootになっていることが問題かなと思いこちらも設定することとした。つまり

こうした。これでしっかりと実行出来る様になった。これで好きな様にボットを管理出来る様になった。

Kotz’ijに恋して番外編5(XserverでRubyプログラムを実行)

RubyもGemもインストール出来たところで実際にプログラムを実行してみる。

sample.rb

一行目で利用するRubyを明示する。以前書いた通り、Xserverには異なるバージョンのRubyがインストールされているため。

2行目はブラウザからプログラムを実行する時に必要。なので今回は特に必要はない。因みにブラウザからプログラムを実行する時はパーミッションを705に変更する必要がある。それから.htaccessをプログラムと同じディレクトリに置く必要あり。Rubyの場合記述する内容は

これは最低限でプログラムによっては記述すべき内容が増える。

ディレクトリを移動してプログラムを実行してみる。

ちゃんと実行出来た。
Al Kotz’i’j nub’i’ in (私の名前はKotz’i’jです)。”Al”でKotz’i’jが女性と判る。

次にgemを含むtweetsプログラムが実行出来るか試してみる。

問題なく実行出来た。

後はXserverのCronを使って定期的にツイートさせることが出来れば目標達成。

Kotz’ijに恋して番外編4(XserverにRubyGemsをインストール)

次はRubyGemsのインストール。

まずは移動する。

それからRubyGemsをダウンロード。こちらもTwitter Botを作成した当時のバージョンをインストールする。

解凍して

移動して

インストール。

の予定だったけどエラーが出た。

要は先にインストールしたRuby 2.3.3ではなくデフォルトの1.8.5を使っているからこうなってしまう。なのでこうすればOK。

インストール出来たかの確認。

Heroku用に作ったGemfileを作成しているのでbundlerだけインストールして他のgemはbundler経由でインストールする。各gemのバージョン管理もその方が楽。

ということでまずはbundlerのインストール。

インストール出来た筈なのに

となってしまう。

で見られるEXECUTABLE DIRECTORYにパスを通すとbundleが使える様になった。

次に

と叩くとGemfileが作成される。

これに使用したいgemを記述する。以前作ったGemfileの内容は

だったので今回も同じ様に。

Gemfileに記述したgemをbundle経由でインストール。

インストール出来たか確認してみる。

記述したgemがリストに載っていればOK。

Kotz’ijに恋して番外編3(XserverにRubyをインストール)

続いてサーバー上にRubyをインストール。Xserverには幾つかのバージョンのRubyがあるけど最新版でも2.0.0。私がTzijonikプログラムとTwitter Bot開発で使ったのが2.3.3なのでそのバージョンをインストールしたい。

必要最低限の手順でやってみたい。

まずはディレクトリを作成:

パスを追加:

一行目の後にiを入力すると入力モードになり二行目を入力。入力モードから抜け出すにはEscを押してから:wqを入力すると変更が保存される。

下記ディレクトリに移動して

Ruby 2.3.3をダウンロード。勿論他のバージョンでもOK。

次にダウンロードしたファイルを解凍する。

移動して

インストール。

Rubyのバージョンを確認すると

1.8.5となっている。これはサーバー上に元々インストールされているもの。

でも下記の通り

しっかりインストールされていることが分かる。

次回はRubyGemsのインストール。