いま間借りしているレンタルサーバXREA.COMでも、PEARを使いたい。
ってことで、インストールを試みた。
「うるめねっと技研 – Linux派 -」というところで先人の知恵が入手できる。感謝。
実際、ほぼ書いてあるとおりにすればインストール完了。
1点、びびったのは、index.php というのがインストールディレクトリにあると上書きされる。自分の場合は本blogの index.php がモロ上書きされる場所にあったため、go-pear.cgi でインストールされる index.php は pear.php と名前をインストール画面で変えておく。
go-pear.cgiの実行の様子

次に、index.php(自分の場合はpear.php)を呼び出して、個々のPackageをインストールする。先人の教え通り、依存関係が解決できずちょっとウザイが、まあそんなに依存が深いのも多くなさそうなので地道にPackage検索&インストールを繰り返す。
PEAR::Package::MDB2のインストールは、こんな感じ

とりあえず必要なPackageをインストールしたら、PEARのディレクトリ書き込み権限を外すのを忘れずに行う。
Packageインストール完了後に、戻るアンカーをクリックすると以下のエラーが。array_walk_recursive()が未定義ですか。
そっか、これPHP5用だった。自分のサーバは何も考えずに動かすとPHP4になるんだった。
Fatal error: Call to undefined function: array_walk_recursive() in /virtual/ookawara01/public_html/PEAR/PEAR/Frontend/Web.php on line 850
でも問題の箇所のソースを見ると「Package詳細情報出力」らしいし、メニュー押せば戻るのでとりあえず放置。
MDB2のお試しソースをアップして動かす。あれ?あっさり動いた。PEARのパスを指定していないのにどうやって動いたんだろう。
・・・もしかしてPEAR::Package::MDB2は既に入っているのか?
・・・うーん、じゃ試しに、たぶんデフォルトで入れたりはしないであろうPEAR::Package::Image_Graphのサンプルソースをアップして呼び出すと・・・やっぱり未定義エラー。
で、PHPソース先頭に、
set_include_path('/virtual/ookawara01/public_html/PEAR'.PATH_SEPARATOR.get_include_path());
してやると、動いた。(Fontがないと怒られたのでそこのソースはコメントにしたけど)
ということは・・・PEAR::Package::MDB2はやっぱりデフォルトインストールされてるの?
stableなPackageはインストール済とかいうオチか?
まあいいや。どうせ自分で入れたほうを使う予定だし、そのうち調べよう。
ookawara.com PHP
PHP組込み関数直コールってのも勉強には良いが、まとまった何かを開発するとなると辛い。そこで便利なものをどんどん使おう、ということでPEAR(PHP Extension and Application Repository)をインストール。
現時点で400個以上のパッケージが公開されている。ありがたや、ありがたや。
PEAR自体は「sudo apt-get install php-pear」でインストールする。PEARパッケージのインストールその他は「pear」コマンドを使う。
$ sudo pear install DB
/tmp/glibctest8Tjfp8:1:22: error: features.h: No such file or directory
downloading DB-1.7.11.tgz ...
Starting to download DB-1.7.11.tgz (132,064 bytes)
.............................done: 132,064 bytes
install ok: channel://pear.php.net/DB-1.7.11
$ sudo pear install mdb2
/tmp/glibctestjOjMv1:1:22: error: features.h: No such file or directory
downloading MDB2-2.4.1.tgz ...
Starting to download MDB2-2.4.1.tgz (119,790 bytes)
.....done: 119,790 bytes
install ok: channel://pear.php.net/MDB2-2.4.1
MDB2: Optional feature fbsql available (Frontbase SQL driver for MDB2)
MDB2: Optional feature ibase available (Interbase/Firebird driver for MDB2)
MDB2: Optional feature mysql available (MySQL driver for MDB2)
MDB2: Optional feature mysqli available (MySQLi driver for MDB2)
MDB2: Optional feature mssql available (MS SQL Server driver for MDB2)
MDB2: Optional feature oci8 available (Oracle driver for MDB2)
MDB2: Optional feature pgsql available (PostgreSQL driver for MDB2)
MDB2: Optional feature querysim available (Querysim driver for MDB2)
MDB2: Optional feature sqlite available (SQLite2 driver for MDB2)
To install use "pear install pear/MDB2#featurename"
$ sudo pear install MDB2_Driver_mysql
/tmp/glibctestS6lHqn:1:22: error: features.h: No such file or directory
downloading MDB2_Driver_mysql-1.4.1.tgz ...
Starting to download MDB2_Driver_mysql-1.4.1.tgz (36,481 bytes)
..........done: 36,481 bytes
install ok: channel://pear.php.net/MDB2_Driver_mysql-1.4.1
glibc関係のエラーが出てるけどインストール自体はできるのでいまは気にせず使うことにする。
PEARは「ペア」と読むらしい。「ぴあ」かと思ってた。
ookawara.com PHP
プログラミングのリハビリがてら、携帯版Twitter「Mobitter」を作成した。
Twitterらしい、ユルユルなAPIが提供されているおかげで、片意地はらずに作ってみたりできるところがいい。
既にネット上には「携帯版Twitter」「Twitter APIをたたいてみたソース」などがあちらこちらに存在していて、今更感は漂っているのだが、まあ6~7年ぶりにプログラミングに復帰したハンチクSEの自己満足なのでスルーしてください。
興味わいたら使ってみて下さい。
- 本日現在、機能は「Public timeline」「With Friends」「My Archive」「update」のみです
- いまのところFOMA専用です(それだのにモバイル版なんて名乗ってごめんなさい)
- ログインすると、ユーザ名とパスワードをMySQLデータベースに保持します。パスワードは可逆暗号化して格納します
- FOMAの個体識別情報に対応しているので、一度FOMAでログインした後はOKボタン一発で簡単アクセスできます
(逆にログイン画面にてユーザ名、パスワードを入力すると個体識別情報を使わないで認証する…Twitter側でパスワード変更や、携帯機種変した場合など)
- セッション管理は、ページ毎にハッシュを生成してhttpリクエストパラメータに付加しつつDBへも格納、ロードされたページ側ではパラメータに乗ってきた直前のハッシュをDB値とつき合わせてチェックする方式です
-携帯はクッキー使えないので、こんなのしか思いつきませんでした
-誰か心優しい方がいたらもうちょっとよい方法を教えてください
- 画像は表示サイズの調整しかしていないのでダウンロードサイズは大きいままです(パケホーダイじゃない人、注意して)
いちお超簡単に注意事項なども
- MobitterのDBに格納した利用者の情報はMobitter以外には使用しません
- Mobitterを通じて入出力されるTwitterデータの内容および損害について一切の責任をおいません
- Mobitterに不具合があった場合は可及的速やかに改修を努力しますが、Mobitter不具合による利用者の損害については責任を負いません(要するに、もしバグったり止まったりしても太平洋の如き広い心でゆるしてください)
- Mobitterの提供サービス内容を予告なく変更することがあります
- Mobitterの運営を予告なく停止することがあります
今後の予定
- TwitterにあってMobitterにない機能の実装
- 画像ファイルのサイズ変更、および表示OFFの設定を可能にする
- せっかく携帯なので携帯メアドを任意登録してもらいTimelineからメール送信できるようにしようかな
- DBにあるユーザのハッシュを最終アクセス日時から一定期間後に削除するようにする
- DBにあるユーザデータそのものも、一定期間アクセスなければ削除するようにしようと思ってます(あきたりして使うのやめた人のデータをいつまでも残さない)
- FOMA以外の対応(試験ができない…)
- その他、思いついたり言われたりしたこと
ookawara.com PHP, Twitter
Recent Comments