OpenPNE: 2008年2月アーカイブ

OpenPNE(MyNETS)のインストール手順をメモっておく。

環境は以下の通り:
■レンタルサーバ会社名:クララオンライン
■サーバOS名:VPS Triplo (Webmin) / CentOS Linux release 5
■PHPのバージョン:5.1.6
■MySQLのバージョン:5.0.22
■メールサーバ:qmail
■ImageMagick:6.2.8
■gd:2.0.33

インストール手順(添付ドキュメント)を引用しながらすすめていく。


1. ファイルの設置
MyNETSに含まれるディレクトリ、ファイルを以下のようにWebサーバ上に設置してください。

インストーラを利用してインストールする場合は、Webサーバ上への設置が完了したら、設置したURLにブラウザでアクセスし、インストーラの指示に従って下さい。

- OPENPNE_DIR
├ bin-- *.cron[755]
├ lib <--- OPENPNE_LIB_DIR
├ var <--- OPENPNE_VAR_DIR
│ ├ img_cache
│ │ ├ gif [777]
│ │ │ ├ w_h [777]
│ │ │ ├ w_h_raw [777]
│ │ │ ├ w76_h76 [777]
│ │ │ ├ w120_h120 [777]
│ │ │ └ w180_h180 [777]
│ │ ├ jpg [777]
│ │ │ ├ w_h [777]
│ │ │ ... [777]
│ │ └ png [777]
│ │ ├ w_h [777]
│ │ ... [777]
│ ├ log [777]
│ ├ rss_cache [777]
│ ├ templates_c [777]
│ └ tmp [777]
├ webapp <--- OPENPNE_WEBAPP_DIR
├ webapp_ext <--- OPENPNE_WEBAPP_EXT_DIR
├ config.inc.php (OPENPNE_DIR ディレクトリを指定)
├ index.php
...

※[777]は例です。環境に合わせて適切な値に読み替えてください。

ここは大きな問題はなかった。FTPする際に、数点気をつければ良い。

・パッシブモードでアップする。
・バイナリモードをアスキーモードを切り分ける。
両方共に、NextFTPでアップすれば、デフォルトで設定されている通りなので、問題なし。

あとは、パーミッションの設定だけ。パーミッションの設定は、NextFTPでOK。設定に漏れがないかどうかだけ確認すればOK。
しかもMyNETS Ver.1.1.1であれば、インストーラーがついてくるので、インストールした後に、パー未ションのチェックしてくれるので、まあ、まず漏れはないと思う。

2. 設定ファイルの変更 OPENPNE_DIR/conf/config.php.sample を OPENPNE_DIR/conf/config.php にコピーして config.php の方を環境に合わせて編集します。

クララのVPSの場合、OPENPNE_DIRは、
/var/www/html/...
となる。

SNSのURL 28行目 Web上の絶対パス(URL) http://sns.example.com/の部分を、SNSを設置するURLに変更してください。最後にスラッシュを付けてください define('OPENPNE_URL', 'http://sns.example.com/');データベースの設定 30行目 $GLOBALS['_OPENPNE_DSN_LIST']['main'] = array( 'dsn' => array( 'phptype' => 'mysql', 'username' => 'MYSQLサーバのユーザー名', 'password' => 'パスワード', 'hostspec' => 'localhost', 'database' => 'SNS用に作成したデータベースの名前', 'new_link' => false, ), );

ここも、記述通りに、淡々とすすめていけばいいだけの部分。特に、MySQLAdminがあるサーバーであれば、ホストの設定やデータベースの設定も楽なので、ほぼ問題なし。
ただ、ここの説明って、前後してるよな。MySQLの設定の説明より先にこれがでてくるってことは、順に読んでる人には若干混乱の元かも...。

DB暗号化キー(56バイト以内のASCII文字列) 42行目 暗号を記入(好きな英数字を入れても大丈夫です) // DB暗号化キー(56バイト以内のASCII文字列) define('ENCRYPT_KEY', ''); サーバで暗号を生成する場合は以下のコマンドで生成ください(CentOS FedoraCore6 にて生成実行確認) $ mkpasswd -l 56 kggqcorgrurylrQts}gpitoqnlqsxcishxdjrq24zjtpyausemhkxtxI

これは、ぶっちゃけ、なんでもいいらしい。

メールのドメイン 45行目 mail.example.comの部分を、使用するメールドメインに変更ください。 // メールサーバードメイン // 携帯メール投稿の宛先などのドメイン名に使われる define('MAIL_SERVER_DOMAIN', 'mail.example.com');

実は、ここがちょっと山場なのだけど、後述するので、保留。

GoogleMap API KEY 設置するサイト用のGoogleMapKeyを取得してください。 * 申請先URL:http://www.google.com/apis/maps/signup.html 401行目に取得したキーを記入してください。 // Google Maps API key /// define('GOOGLE_MAPS_API_KEY', '取得したKEYをここに記入してください');

ここは、書いてある通りにすすめれば、ほぼ問題なし。但し、登録サイトが英語なので、これだけ注意かな。あと、サブドメイン名がついてる場合は、www.とかを記入忘れないように。

スキン設置ディレクトリ スキンの変更はFTPにより行います。 スキンディレクトリの設置場所について * OPENPNE_DIR/skin/[skin任意のディレクトリ名]/img/以下に、スキン素材を保存します。 (このディレクトリ内で足りない素材は、skin/default/img/以下のファイルが補完をします。) * 設置ディレクトリおよび設置スキンのパーミッションを777に変更します。 $ chmod -R 777 OPENPNE_DIR/skin/[skin任意のディレクトリ名]/img/
これは、後でも設置可能なので、後回し。パーミッションは先に変更しておこうね。
3. サーバ設定 レンタルサーバ等で設定済みの場合は読み飛ばしてください。

3-1. Apacheの設定
httpd.confを修正し、

DirectoryIndex に index.php を追加します。
OPENPNE_DIR にアクセスできるようにドキュメントパスを通します。
[設定例]

バーチャルホストを使ったhttpd.confの設定

ServerName openpne.example.com
DocumentRoot /home/username/OPENPNE_DIR/
DirectoryIndex index.html index.php

httpd.confを修正したら、Apacheを再起動してください。
設定は設置した環境に合わせて行ってください。

これは、設定しなくても動いた。ってことは、設定は必要ないらしい。

後は、明日にしよう...。

<<栞>>

OpenPNE(UsagiVer.)--cron設定

| | トラックバック(0)

cronの設定にも一苦労。
マニュアルには、

3-3. cronの設定
[設定例]

/etc/crontab に以下を記述。

# 6時にメールを送信&20分毎にRSS更新
00 6 * * * root sh OPENPNE_DIR/bin/tool_send_dairy_news.cron OPENPNE_DIR/bin/ [bin_path]/php
00 6 * * * root sh OPENPNE_DIR/bin/tool_send_birthday_mail.cron OPENPNE_DIR/bin/ [bin_path]/php
00 6 * * * root sh OPENPNE_DIR/bin/tool_send_schedule_mail.cron OPENPNE_DIR/bin/ [bin_path]/php
*/20 * * * * root sh OPENPNE_DIR/bin/tool_rss_cache.cron OPENPNE_DIR/bin/ [bin_path]/php
[bin_path]はphpをインストールしたbinディレクトリ(例えば、/usr/local/bin)です。

とあるのだが、クララオンラインWebminのcron設定は、crontabに書き込むのではなく、webminで登録できる。
これは、これで楽で良いのだが、設定が若干異なる。

まずは、OPENPNE_DIRディレクトリーは、
/var/www/html/sns/
でOK。shコマンドは必要ないようだ。
.cronで止めて入力してみると、エラーがでる。
例えば、tool_send_dairy_news.phpというコマンドがありませんとでる。
tool_send_dairy_news.cronを見てみると、


#! /bin/sh
cd $1
$2 tool_send_dairy_news.php > /dev/null

となっている、単純な命令文。tool_send_dairy_news.phpが見つからないというから、多分、絶対パスが必要なのだろうと、

#! /bin/sh
cd $1
$2 /var/www/html/sns/bin/tool_send_dairy_news.php > /dev/null

に変更。やっぱり動いた。

※実行環境がcron依存のため、シェルコマンドでパスをわたしてやらなければならない。
しかし、またエラー。phpを理解していないようだ。

そこで、ウェブで調べてみると、どうも、これはcronコマンドではなく、無理矢理phpを走らせるというやり方らしく、
※シェルスクリプトから起動させるのは常套手段。PHPをコマンドとして使用するのがある意味無理矢理という意味らしい。通常だと、perlやRuby等を使うのが普通らしい。
.cronの後に、phpのありかを宣言してやらなくてはならないらしい。
※上記にも書いたとおり、cron依存であるため、環境変数をわたす必要があるので、phpのパスをわたすのは必須。本来あるパラメーターを略してはいけないということ。
なので、
/var/www/html/sns/bin/tool_send_dairy_news.cron /var/www/html/sns/bin/ usr/bin/php
という命令文になる。とりあえず、動いた。