8月 31

さてsymfonyまで無事にインストールできたということで、いよいよOpenPNE3本体のインストールに入ります。
基本的なことは全てOpenPNE3開発用ページに書かれていますので、これに従います。

ソースをGET

とりあえず今回インストール用に「pne3」というユーザを作成、そこにOpenPNE3のソースをセッティングしていきます、ユーザ pne3 のホームディレクトリから svn コマンドを入力、リビジョン管理されたファイルをローカルへ取得します。

# svn co https://trac.openpne.jp/svn/OpenPNE3/trunk OpenPNE3_trunk_20080827

  ↓チェックアウトに成功するとこんな感じ

drwx------ 5 pne3 pne3 4096 8月 29 19:36 Maildir
drwxrwxr-x 13 pne3 pne3 4096 8月 30 19:35 OpenPNE3_trunk_20080827
drwxr-xr-x 2 pne3 pne3 4096 8月 29 19:36 public_html

設定ファイルの作成

configディレクトー内の *.sample を .sample なしのファイルにコピー
(ソースディレクトリへ移動後、まとめて.sampleのコピーを作成)

# cd OpenPNE3_trunk_20080827
# ls config/*.sample | sed -e 's/\.sample$//g' | awk '{print "cp "$1".sample "$1}' | sh

 sampleのファイル群が

-rw-rw-r-- 1 config/ProjectConfiguration.class.php.sample
-rw-rw-r-- 1 config/databases.yml.sample
-rw-rw-r-- 1 config/propel.ini.sample

 ↓コマンド適応後(configフォルダー内)

-rw-rw-r-- 1 ProjectConfiguration.class.php
-rw-rw-r-- 1 ProjectConfiguration.class.php.sample
-rw-rw-r-- 1 databases.yml
-rw-rw-r-- 1 databases.yml.sample
-rw-rw-r-- 1 propel.ini
-rw-rw-r-- 1 propel.ini.sample

config/ProjectConfiguration.class.php を編集、##SYMFONY_LIB_DIR## の箇所をsymfony のライブラリ群がインストールされているディレクトリのパスに置換します(例:/usr/share/php/data/symfony)。

# vi config/ProjectConfiguration.class.php

symfonyのバージョン表示(# symfony -V)で表示されるパスに置き換えればよいのではないでしょうか?
私の環境では symfony version 1.1.1 (/usr/share/pear/symfony)でしたので。

require_once ‘##SYMFONY_LIB_DIR##/autoload/sfCoreAutoload.class.php’;
sfCoreAutoload::register();

class ProjectConfiguration extends sfProjectConfiguration
{
  public function setup()
  {
  }
}

   ↓ 編集後 ↓

require_once ‘/usr/share/pear/symfony/autoload/sfCoreAutoload.class.php’;
sfCoreAutoload::register();

class ProjectConfiguration extends sfProjectConfiguration
{
  public function setup()
  {
  }
}

データベースを作成

データベース名 OpenPNE3_trunk_20080827
ユーザー名 (例)pne3
パスワード (例)pne3pass

  まず、symfony側の設定

# symfony configure:database mysql://pne3:pne3pass@localhost/OpenPNE3_trunk_20080827

  実際にデータベースを作成

# mysql -u root -p(要password入力)
mysql> CREATE DATABASE OpenPNE3_trunk_20080827 DEFAULT CHARACTER SET utf8;
mysql> grant ALL PRIVILEGES on OpenPNE3_trunk_20080827.* to pne3@localhost identified by ‘pne3pass’;
mysql> exit

config/databases.yml の編集、最後に「encoding: utf8」を追加

# vi config/databases.yml
all:
  propel:
  class: sfPropelDatabase
  param:
   dsn: ‘mysql://pne3:pne3pass@localhost/OpenPNE3_trunk_20080827′
   encoding: utf8

yml(YAML)表記とはインデント(行頭の半角スペース)を使い階層を表現するためインデントの調整は重要です、なお全角スペースは当然のことながらタブも使用不可です。

データベースのテーブルを構築します

# symfony propel:build-all-load pc_frontend

これで16個のテーブルが自動生成されました

  • admin_user
  • authentication_login_id
  • authentication_pc_address
  • community
  • community_member
  • friend
  • member
  • member_config
  • member_profile
  • navi
  • navi_i18n
  • profile
  • profile_i18n
  • profile_option
  • profile_option_i18n
  • sns_config

 実は[config/schema.yml]というファイルがテーブル定義書です。
  *config/schema.yml の内容(非常にわかりやすいです)

propel:
  member:
    id: ~
    name: { type: varchar(64), required: true }
    is_active: { type: boolean, required: true }
    created_at: ~
    updated_at: ~
  profile:
    id: ~
    name: { type: varchar(64), index: unique, required: true }
    is_required: { type: boolean, required: true }
    is_unique: { type: boolean, required: true }
    form_type: { type: varchar(32), required: true }
    value_type: { type: varchar(32), required: true }
    value_regexp: { type: longvarchar }
    value_min: { type: integer }
    value_max: { type: integer }
    is_disp_regist: { type: boolean, required: true }
    is_disp_config: { type: boolean, required: true }
    is_disp_search: { type: boolean, required: true }
    sort_order: { type: integer }
・・・・ 以下略 ・・・・

因みに最初の項目が「フィールド名」、次が「型」になりますが、idはデフォルトでオートインクリメント,created_at、updated_atはタイムスタンプ型と解釈されるようです。

web公開ディレクトリ(ドキュメントルート)の変更

ここまでで設定は終りですが、apacheのドキュメントルート(現在public_html)とPNEのインストール先フォルダが違うためブラウザーからアクセスできません、一番手っ取り早方法として httpd.conf のバーチャルホストを修正して強引に合わせます。

# vi /etc/httpd/conf/httpd.conf
<virtualhost *:80>
 ServerName user.mydomain.net
 DocumentRoot /home/user/OpenPNE3_trunk_20080827/web
 <directory "/home/user">
  AllowOverride All
 </Directory>
</VirtualHost>

そしてApacheを再起動

# /etc/rc.d/init.d/httpd restart

アクセスしてみる

ログイン画面はこんな様子。
OpenPNE3 Login

さっそくログインしてみましょう。
Login後

管理画面は。
alpha2 管理画面

おや、下の方画像がリンク切れを起こしてます、リンク先を見てみると。。。
/sf/sf_web_debug/images/sf.png
/sf/sf_web_debug/images/config.png
/sf/sf_web_debug/images/comment.png
以下略

これは(OpenPNEではなく)symfonyの「デバックツールバー」が出しているらしく、symfonyのライブラリ参照パスが見つからないため、画像やスタイルシートがロードできずにコケているのでしょう、調べたら、symfony のライブラリは「/usr/share/pear/data/symfony/web/sf」にあったので、これもバーチャルドメイン内でエイリアス (本来はOpenPNEのインストール前に解決しておくべきでしょう)。

symfonyのライブラリのエイリアス

# vi /etc/httpd/conf/httpd.conf
<virtualhost *:80>
 ServerName user.mydomain.net
 DocumentRoot /home/user/OpenPNE3_trunk_20080827/web
 <directory "/home/user">
  AllowOverride All
 </Directory>
 Alias /sf /usr/share/pear/data/symfony/web/sf
</VirtualHost>

そしてApacheを再起動

# /etc/rc.d/init.d/httpd restart

こんどはちゃんとsymfonyのメニューが(上部)表示されました。
正常な管理画面

想像してた以上に簡単でした、OpenPNE3自体のインストールは慣れてしまえば10分くらいでしょうかね。。。

8月 30

今年に入ってから忙しくて、殆どPNEに触っていませんでしたが、本日ちょいと時間が出来たので重い腰を上げPNE3のインストールに挑戦してみました。

今回インストールに使ったサーバーはCentOS5にApache2、MySQL5、PHP5、PEARという構成ですが、OpenPNE3はPHPフレームワークにsymfonyを採用しています、故にPNE3本体のインストールの前にsymfonyのインストールが必要となるわけです(入口から敷居高いのですが。。。苦笑)。

1、PEARを最新版にアップデート
 symhonyをPEARのチャンネルからインストールするためバージョン1.4以上にしておく必要があるので1.4未満の時は以下の方法でアップデート。

# pear upgrade-all
Will upgrade archive_tar
Will upgrade console_getopt
Will upgrade pear
Will upgrade xml_rpc
/tmp/glibctestYXnxji:1:22: error: features.h: そのようなファイルやディレクトリはありませ
  ↑なんだこのエラーは?(とりあえず見なかったことに。汗)

# pear channel-update pear.php.net

2、Symfonyのインストール

# pear channel-discover pear.symfony-project.com
# pear install symfony/symfony
symfony/symfony requires PHP extension “dom”
  ↑ここでもエラーがでましたが、こんどのエラーは見過ごせないです

「php-xml」がないと出るらしいのでそれをインストールし、再度インストールを試みる

# yum install php-xml
# pear install symfony/symfony

 (こんどはエラーでません)

インストールの確認のためにバージョンを表示させてみる

 # symfony -V
 symfony version 1.1.1 (/usr/share/pear/symfony)

どうやら成功したらしいです。(*^ー^*)やっとOpenPNE3 alpha2本体のインストールに取り掛かれます。

8月 22

いまいち信用できない感じはありました。。。
DOS版ワ-プロソフトからWindows版へ移行した時のそんな不安な感覚です。
使い勝手も徐々に改善されていくだろうし、使う側の人間もそれに慣れていくのではないかな。。。

ネットだけやってるぶんには、とても使いやすいし割りと安定してますが、iPhoneはあくまで、携帯型のインターネット端末であって、メール機能や電話機能までもが、iPhone上のひとつのアプリケーションに過ぎないって感じ、でもその代わり本体を買い換えることなくOSやアプリのバージョンアップやアプリケーションの入れ換で、機能や性能も改善できるのが強みです。

以下、暫く使ってみて諸々思ったこと。

◆日本式携帯電話から乗換た人は不便と思えるかもしれない点
 (自分ではそうは思わないが、人によっては不便かもしれないという点も書いてます)

    メール系

  • メールアカウントの設定がわかりづらい
  • ISO-2022-JP(JIS)にはない拡張文字もUTF8として送れてしまう、受信側の携帯がUTF8に対応していない場合はその文字だけでなく全て文字化けする(エンコード形式がUTF8とされる)。
    ※日本式携帯電話への送信は原則JISコードが基本(ではなかろうか?)
  • アドレス帳の移行は自分でやる必要があるので面倒
  • 発信者(グループ)ごとに着信音の設定できない
  • メール着信音と電話着信音で個々に音量を変えることができない
  • アドレス帳のグループ分け機能が無い
  • 付属のメアド「i.softbank.jp」はIMAPで本体ではなくサーバ上に保管されるので5000件又は20MB超えると削除される(らしい)
  • 受信するとディスプレイに「You got a mail」と表示されお洒落だけど、IMAPへ接続しないと誰からのメールかわからないし、何故かこの時点では着信音が鳴らない
  • RFC2821に違反した(?)変なメアドに送ろうとすると「このアドレスはおかしいけど、それでも送る?」みたいなメッセージが出る(でもちゃんと届く)
  • ショートメールが使えない
  • 絵文字が使えない(携帯からPCへ送った場合と同じで絵文字部分のみ化ける)
  • 返信メールに画像が添付できない(その時は新規で)
  • 返信時、元の本文が必ず引用されてしまう(PCへの返信ならOKだが携帯への返信だとちょっと。。。)
  • You got a mail

    インターネット系

  • 付属サファリはFlash未対応
  • 付属サファリはファイルアップロード機能なし
  • 携帯専用サイト(アーティストのオフィシャル、着メロサイト等)や携帯用に最適化されたページ(ミクシィモバイル等)が見れない
  • 端末固有番号を持ってない(と思う)ため、俗に言う「簡単認証」は不可能
    カメラ系

  • 動画撮影機能が無い(動画撮影アプリがあるらしい)
      iphonevideorecorder.com
  • カメラの解像度が低い(200万画素/AF無し/ズーム無し/接写無し)
  • フラッシュが内臓されていない
  • ワンセグ機能はない
    その他

  • 時々文字入力時のレスポンスが極端に低下する、1文字打つのに2~3秒かかる時がある(原因は不明、アプリの起動数かな?リセットでなおる)
  • たまに横画面から縦画面に戻らなくなる
  • バッテリーの消費が早いような気がする
  • バッテリー交換は今までの携帯のように自分で簡単にできない
  • 片手で打ったり、画面を見ないで打ったりができない
  • 着メロという概念がない(全て着うた)
  • おサイフ携帯・FeliCa機能がない
  • まだ携帯クーポンが使えない場合が多い(と思う)
  • 液晶を破損すると6万円規模の修理費がかかるらしい
  • 紛失すると超~悲しい(たぶん)

◆便利だと思った点

    メール系

  • 複数のメールサービスの利用が可能(Gmailはもちろんのこと会社のサーバーにもログインできる、これはアリガタイ)
  • 今までの携帯と比較して画面が広く、スケーラブルなので長文メールも難無く読める
  • アドレス帳はiTunes経由でPCのアドレスブックや、Yahoo、Googleのサービスと同期することが可能。

    FOMA –> CSV形式 –> vCard –> PCアドレス帳 < --同期--> iPhone

    インターネット系

  • 電波さえ届けば24時間ネットが可能
  • というかメールサーバーに限らずTelnetやSSHをインストールすれば色々なサーバーへログインできるので当然、VNCで自宅のXPを制御なんて使い方も可能
     http://jp.youtube.com/watch?v=IwFgO5WizGM&feature=related
  • 画面を任意に拡大・縮小・移動表示できのは感動するし見易い
  • フトンの中でYouTubeが楽しめる(中々快適)
    その他

  • スピーカー内臓でiPodのサウンドもイヤホンなしで楽しめます(モノラルですが仕事中等の利用頻度高いです)
  • 左:スピーカー/右:マイク

  • SDK(アプリケーションを開発するための環境)が無料で手に入ります
  • 開発したアプリケーションは世界規模の市場iTunesStoreで販売することができます
  • iTunesの音源から着うたが変換できる(らしい)
  • つい忘れがちであるが、実はiPodになってる!
  • 今買うと、喋るお父さん犬がついてくる!
  • お父さん

色々と思いのままに書いてますが、現状でもかなり気に入ってます、今後の機能アップや改良を考えると更にわくわくさせてくれる一品なのです。

Tagged with:
preload preload preload