Category: RentalServer

先月末からしばらく github やら ruby やら twitter API やらをいじってはエントリしていたのは、twitter bot を作りたかったのでその予習をしていたのであった。稼働からしばらく時間が経ってしまったのでちょっと今更感があるが、twitter bot のデビュー作を晒してみようと思う。

アカウント停止のお知らせ


2010-01-19 追記


諸事情によりアカウントを停止した。ソースコードなどはそのままにしてあるので、twitter botを作る際の参考資料として役立てていただければ幸いである。


追記ここまで


概要

いきさつ

ラクをしないと成果は出ない」という本がある。ライフハック的なエッセイを見開き2ページで100本集めた本で、かのダンコーガイが絶賛していたことでもおなじみ。発売当時、仕事環境的な理由で技術書よりビジネス本を読みまくっていた私にはストライクな本で、100か条をわざわざテキストファイルに「写経」しては眺めていたりした。

さすがにしばらくして熱は冷めたのだが、今回の「twitter botを作りたい」という欲求と一緒の写経したテキストの存在を思い出し、「名言botなら実装もカンタンだ」とネタに選んだというわけ。


(さらに…)

CoreserverではRuby on Railsが動く。その下準備としてRubygemsをインストールしてみたので、手順をまとめておく。

  • 最新版のアーカイブを確認
  • 解凍してインストール
  • $ cd $HOME/local/src
    $ wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
    $ tar xfvz rubygems-1.3.1.tgz
    $ cd rubygems-1.3.1/
    $ ruby setup.rb --prefix=$HOME/local
  • 環境変数を設定
    • .bashrcに2行追加
    • export RUBYLIB=$HOME/local/lib
      export GEM_HOME=$HOME/local/lib/ruby/gem
    • 環境変数を反映
    • $ source ~/.bashrc
  • 最低限の動作を確認
  • $ gem -v
    1.3.1

Railsインストールまではたどり着かなかったので、またいずれ。

【参考リンク】
●RubyForge: RubyGems: Project Info
http://rubyforge.org/projects/rubygems/

●さくらのレンタルサーバーに RubyGems をインストールする手順 – ishimarumの日記
http://d.hatena.ne.jp/ishimarum/20080929/1222689905

CoreServerというレンタルサーバでMobaSiFを動かすために、遅い夏休み(9月中旬)を使っていろいろやっていた。当然ここにエントリしようと思っていたら、紆余曲折の末にLightning Talkとして発表することになった。顛末に興味のある方は参照されたい。

発表資料が以下である。

[Kwappa開発室]MobaSiFをレンタルサーバで動かす.pdf[PDF]

(さらに…)

前回include_pathを設定したとき「Smarty」の文字があったことからもわかるように、LolipopではSmartyが使用可能になっている。

まずはバージョンをチェック。Zendの技術情報コンテンツに「smartycheck.php」というコードが掲載されているので、LolipopのSmartyのバージョンを調べてみよう。

you can use Smarty(version 2.6.8).

2.6.8は2005年3月のリリース。最新版は2.6.19(2008年2月)なので、できれば新しいものを使いたい気分。

 

●オフィシャルからダウンロード

http://www.smarty.net/

●ディレクトリを作って展開

アーカイブの「libs」以下をすべてコピーし、必要なディレクトリを作る(名前は私の趣味。「templates_c」に違和感を感じるので。)

/smarty
  cache
  compile
  configs
  libs
  templates

cache,compile,configsはパーミションを0777に変更しておく。

●include_pathを設定

前回作った.htaccessを修正。

<IfModule mod_php4.c>
php_value include_path ".:/home/sites/lolipop.jp/users/[domain]-[your-subdomain]/web/lib/PEAR:/home/sites/lolipop.jp/users/[domain]-[your-subdomain]/web/smarty/libs:/usr/local/lib/php"
</IfModule>

●/smartyをふさぐ

Smarty関連のディレクトリは外から見えてもいいことはないので.htaccessでふさいでおく。

【/smarty/.htaccess】

Order allow,deny
Deny from all

●テストしてみる

【smarty_test.php】

<?php
define('SMARTY_ROOT', "/home/sites/lolipop.jp/users/[domain]-[your-subdomain]/web/smarty") ;
define('SMARTY_DIR',  SMARTY_ROOT . "/libs/") ;
require_once "Smarty.class.php" ;
$smarty = new Smarty() ;
$smarty->template_dir = SMARTY_ROOT . "/templates/" ;
$smarty->compile_dir  = SMARTY_ROOT . "/compile/" ;
$smarty->config_dir   = SMARTY_ROOT . "/configs/" ;
$smarty->cache_dir    = SMARTY_ROOT . "/cache/" ;
$smarty->assign("hoge", "piyo") ;
$smarty->display("smarty_test.tpl") ;
?>

【smarty_test.tpl】

smarty_test.tpl<br />
var 'hoge' = [{$hoge}] .

もちろんSmartyを使うページではベースクラスを作って使う。Smartyを使うと強制的に「俺フレームワーク」を書かされるのでいい勉強にもなると思う。

●リンク
本家:
http://www.smarty.net/

日本語ドキュメント:
http://www.smarty.net/manual/ja/

趣味でwebサイトを作るために、lolipopのサーバを借りている。安いわりにいろいろ使えるのだが、最初にわーっと作って満足してしまい、その後は放置が続いていた。仕事でweb作ってるってのにこれじゃいかん、ということで活用の道を探ってみる。

RSSを取得してごにょごにょするためにはPEAR::XML_RSSを使うと簡単なので、まずはPEARのインストールからやってみた。

●ディレクトリを作る

ftpでログイン、ルートに「lib」ディレクトリを作成。パーミションを0777にしておく。

●go-pear.phpを保存する

http://pear.php.net/go-pear

ソースコードがテキストとして落ちてくるので「対象をファイルに保存」、libディレクトリにアップロード。

/lib/go-pear.php

●ブラウザからインストール
http://[your-subdomain].[domain]/lib/go-pear.php

「NEXT>>」をクリック

「1. Installation prefix ($prefix)」をコピーしておく

/home/sites/lolipop.jp/users/[domain]-[your-subdomain]/web/lib

「Install」をクリック

●念のためbasic認証をかけておく

/lib以下は今後パッケージマネージャとして使うので、他人にいろいろ触れると問題がある。lolipopのツールを使ってbasic認証をかけておこう。

  1. lolipopユーザ専用ページにログイン
  2. 「WEBツール」>「アクセス制限」>「新規作成」
  3. http://[your-subdomain].[domain]/lib
  4. タイトル、アカウント、パスワードを設定する

●include_pathの設定

ルートに「.htaccess」を作成する。

<IfModule mod_php4.c>
php_value include_path ".:/home/sites/lolipop.jp/users/[domain]-[your-subdomain]/web/lib/PEAR:/usr/local/lib/php:/usr/local/lib/php/Smarty"
</IfModule>

赤字の部分がPEAR用に追加したもの、青字の部分がサーバのphp.iniで設定されているパス。

●ついでに

Lolipopのデフォルトでは若干問題のある(あるいは私の好みと異なる)設定が若干あるので、.htaccessで設定してしまう。上記IfModuleディレクティブに、以下の設定を追加しておく。

php_flag magic_quotes_gpc Off
php_flag short_open_tag Off
php_flag display_errors Off
php_flag log_errors On
php_value error_reporting 2047
php_value error_log /home/sites/lolipop.jp/users/[domain]-[your-subdomain]/web/log/php_error.log

開発中はdisplay_errors = On / log_errors = Offでもかまわないが、世間に公開したあとはdisplay_errorsはOffにしておこう。

●lolipop編の目標

PHP4で動く低機能フレームワークを作り、趣味のweb開発もさくさく進むようにする。

●参考にしたサイト

ロリポップでPEARをブラウザからインストールする! – ビキニ★プロ
http://d.hatena.ne.jp/bikinipro/20080124/1201185703

ブラウザからPEARをインストールする – ホリデープログラミング入門 – Yahoo!ブログ
http://blogs.yahoo.co.jp/nob_ll/46788965.html

zuzara : 格安サーバ・ロリポップを使い倒す
http://blog.zuzara.com/2006/07/23/100/