Archive for 1月, 2009
□ホームページで動画を見せる方法
by admin on 1月.19, 2009, under MEMO
動画をブラウザ上で見せる方法としては、オブジェクト(object)とメタ
(embed)と両方を記述するようにすれば大抵のブラウザではOKでしょう。
ファイルは本来の動画(.wmv)と、その動画の情報を書いたメタファイル
(.wvx)という二つのファイルを用意します。あ、あとは見せるための
HTMLファイルももちろん必要ですね。
まずはメタファイルを動画ファイル分だけ作るスクリプトを作りましょう。
PHPで自動生成とか出来たらいいんですけどね。WindowsMediaPlayerオブ
ジェクトとかってCookieクッキーたべてくれるのかな?
メタファイル生成スクリプトとしては
> #!/usr/bin/perl
> #
> # メタファイル生成スクリプト
> #
> $ASX_VERSION = “3.0″;
> $DIR_BASE = “../doga”;???動画があるディレクトリ
> $URL_BASE = “mms://www.hogehoge.jp/doga”;?外部から動画にアクセスするURL
>
> opendir(DIR_BASE, $DIR_BASE) || die “ディレクトリが開けません:$DIR_BASE\n”;
> @FILELIST = grep(!/^\.\.?$/, readdir(DIR_BASE));
> closedir(DIR_BASE);
>
> foreach $FILE (@FILELIST)
> {
>???? if ($FILE =~ /(.*).wmv$/)
>???? {
>???????? $META = “$DIR_BASE/$1.wvx”;
>
>???????? if (! -x $META)
>???????? {
>???????????? print “Make $META\n”;
>??????????? open(META, “> $META”);
>??????????? print META<<EOF;
> <ASX version = “$ASX_VERSION”>
> <Entry>
> <Ref href = “$URL_BASE/$FILE” />
> </Entry>
> </ASX>
> EOF
>???????????? close(META);
>???????? }
>???? }
> }
>
> exit 0;
とすると、$DIR_BASEにどどーんとめたファイルを作ってくれるので、
あとはhtmlにこんな風に書けばOK
<HTML>
<Body BgColor=”#000000″>
<BR>
<!– saved from url=(0022)http://www.hogehoge.jp –>
<object id=”player” clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6>
<param name=”autoStart” value=”true”>
<param name=”loop” value=”true”>
<param name=”fullScreen” value=”false”>
<param name=”uiMode” value=”none”>
<param name=”URL” value=”mms://www.hogehoge.jp/doga/doga001.wvx>
<embed name=”WMP” type=”application/x-mplayer2″ pluginspage=”http://www.microsoft.com/Windows/MediaPlayer/” src=”http://www.hogehoge.jp/doga/doga001.wvx” width=”100%” autostart=”1″ loop=”1″ showcontrols=”0″></embed></object>
<BR>
</BODY>
</HTML>
これだと一動画しか表示できないので、マルチスクリーンみたいな
表示をするスクリプトも作っちゃいました。これは動画ファイル名が
doga001.wmv〜doga999.wmvまでにランダムにある、とした場合です。
<?
// 動画マルチ表示スクリプト
//
// 指定された縦横数の動画を表示する
// ページ背景色
$BGCOLOR = “#000000″;
// 動画のサイズ firefox だと大きいサイズにはできないみたい
$MOVIE_X = 360;
//$MOVIE_Y = 240;
$MOVIE_Y = round(($MOVIE_X / 4) * 3) + 45;
// テーブルの縦横の設定
$TABLE_X = 3;
$TABLE_Y = 3;
?>
<HTML>
<Meta Http-equiv=”content-type” Content=”text/html; charset=Shift_JIS”>
<meta http-equiv=”Refresh” content=”30″>
<LINK href=”styles.css” rel=stylesheet type=text/css>
<Body BgColor=”<? print $BGCOLOR; ?>”>
<Br>
<!– saved from url=(0022)http://www.hogehoge.jp –>
<Table Border=”0″ Align=”center” CellSpacing=”0″ CellPadding=”1″ BgColor=”<? print $BGCOLOR; ?>”>
<?
for($Y = 0; $Y < $TABLE_Y; $Y++)
{
?>
<Tr>
<?
??? for($X = 0; $X < $TABLE_X; $X++)
??? {
??????? // 動画ファイルを探す
??????? do
??????? {
??????????? $TARGET_NUM = rand(1,999);
??????????? $TARGET = sprintf(“doga%03d.wvx”, $TARGET_NUM);
??????? }
??????? while(!is_file(“./$TARGET”));
?>
<Td>
<Div Align=”center”><Font Style=”font-size:.8em; color:#777;”><A HREF=”mms://www.hogehoge.jp/doga/<? print “$TARGET”; ?>” TARGET=”<? print “$TARGET”; ?>”><? print “$TARGET”; ?></A></Font></Div>
<object id=”player” width=”<? print $MOVIE_X; ?>” height=”<? print $MOVIE_Y; ?>” clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6>
<param name=”autoStart” value=”true”>
<param name=”loop” value=”true”>
<param name=”URL” value=”mms://www.hogehoge.jp/doga/<? print $TARGET;?>”>
<embed name=”WMP” type=”application/x-mplayer2″ pluginspage=”http://www.microsoft.com/Windows/MediaPlayer/” src=”http://www.hogehoge.jp/doga/<? print $TARGET; ?>” width=”<? print $MOVIE_X; ?>” height=”<? print $MOVIE_Y; ?>” autostart=”1″ loop=”1″ showcontrols=”0″></embed></object>
</Td>
<?
??? }
?>
</Tr>
<?
}
?>
</Table>
<Br>
</Body>
</HTML>
□グーグルマップで遊ぼう!
by admin on 1月.08, 2009, under MEMO
参照:
http://www.google.com/apis/maps/
http://www.geekpage.jp/web/google-maps-api/
http://www.ne.jp/asahi/free/hiroro/GoogleMapsAPI/GoogleMapsAPIDocumentation.htm
http://www.geocoding.jp/ Geocoding – 住所から緯度経度を検索
http://blog.yusukeooki.com/mylab.html
http://www.marlin-arms.co.jp/gmh/index.html
http://neta.ywcafe.net/000597.html データベース上の位置情報を効率的に検索する方法(PostgreSQL編)
http://forum.nifty.com/fyamap/kyorihoi.htm 地図の計算式
グーグルマップは緯度経度情報がわかっていればグーグルが提供する
地図(または衛星写真)の上にマーカーアイコンをいくつも付けたり
それぞれのマーカーに情報を貼り付けたりすることができる、という
すごいサービス。
個別のサイト用にキーが必要だが、そのキー一つで現状5万ヒット程度
なら無料で使っていいよ、という事らしい。ふとっぱら!
キーの取得方法はぐぐればでてくるので省略。
ここではグーグルマップを使う上でのポイントをメモしておく。
■記録するデータ
データはUTF-8で処理しないといけない、携帯は無理なので気にしなくて
いいかもしれないが、DBの中身をどうするか? 基本情報(マーカーの
緯度経度情報)については文字コードは気にしなくていいけど。
1.マーカー情報(marker_tbl) マーカーIDごとに緯度・経度情報のみ
・マーカーID(text) ユニーク
・緯度経度(point)
・登録日時(int)? time()の数値
緯度経度にはトリッキーな方法でインデックスを作る。(関数インデックス)
例:create index point_index on maker_tbl using gist(circle(geo,0));
これは、geoという緯度経度情報で半径サイズ0とした円のインデックスを
つくりなさい、ということ。なぜならpoint型ではインデックスが作れない
から。これをすることで、ある地点から半径rの中にあるマーカーを検索
する時などに速度がとっても速くなる。
2.付随情報(?????_tbl) マーカーIDごとの付随情報
例えば…
・名称
・住所
・電話番号
・そのほかいろいろ
のテーブルをそれぞれ必要に応じて作ればいい。
■データベースの構築
上記のトリッキーなインデックスは、PostgreSQL-8.x以降でないと使えない
ので、まだ7.xなら思い切って pg_dumpall して入れなおしてから設定する
こと。
/usr/local/pgsql/bin/createuser -A -D -P -E maptest
/usr/local/pgsql/bin/createdb maptest –encoding=UNICODE
/usr/local/pgsql/bin/psql -d maptest -U maptest
create table marker_tbl
(
?makerid????? text,
?geo????????? point,
?registdate?? integer
);
create unique index marker_index on marker_tbl (makerid);
create index geo_index on marker_tbl using gist(circle(geo,0));
grant all on marker_tbl to public;
■WEBページの構築
・index.html?トップページ?各自担当
・googlemap.js?基本JavaScript?まるちゃん担当
・??????.js?付属JavaScript?各自担当
基本的には「index.html」から、グーグルマップの基本処理がかかれている
「googlemap.js」や「??????.js」を呼び出す。
呼び出す時には
>?? :
>?? :
> </html>
> <script src=”./js/googlemap.js” type=”text/javascript”></script>
> <script src=”./js/subscript.js” type=”text/javascript”></script>
>?? :
>?? :
のようにして、ページの最後で呼び出すこと。
補足:距離と緯度経度との関係
地球は丸いので、同じ緯度経度の差であっても、赤道付近と極点付近では
二点間の距離が全く異なる。計算式だけでもいろいろあり。
・ガウスの平均緯度法
・ヒュベニイ(Hubeny) の平均緯度法(カシミールとか)
・球面三角法(数値地図ビューアとか)
ガウスもヒュベニィも「500km程度までの距離で、方位1秒距離1mクラス
の精度を出すための式」らしい。地球規模で考えるなら球面三角法で十分
らしい。
補足:グーグルマップの最低サンプル
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
? “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd“>
<html xmlns=”http://www.w3.org/1999/xhtml“>
? <head>
??? <meta http-equiv=”content-type” content=”text/html; charset=utf-8″/>
??? <title>Google Maps JavaScript API Example</title>
??? <script src=”http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA6MLnqMPAjOh6VRA33H0_LBQYsjhNbrBV5g99IYVpwJfLokQpcBRprXsWY_AYLYyOgiRBTOIZT71Jlg”
????? type=”text/javascript”></script>
??? <script type=”text/javascript”>
??? //<![CDATA[
??? function load() {
????? if (GBrowserIsCompatible()) {
??????? var map = new GMap2(document.getElementById("map"));
??????? map.setCenter(new GLatLng(37.4419, -122.1419), 13);
????? }
??? }
??? //]]>
??? </script>
? </head>
? <body onload=”load()” onunload=”GUnload()”>
??? <div id=”map” style=”width: 500px; height: 300px”></div>
? </body>
</html>
補足:PostgreSQL を使うなら
−−−−−−−−−−−−−−−−−−−−−
<HTML>
? <head>
??? <meta http-equiv=”content-type” content=”text/html; charset=utf-8″/>
??? <title>Google Maps JavaScript API Example</title>
? </head>
<BODY>
<?
// データベースへの接続
$DB = pg_connect(“host=hogehoge.mydns.jp port=5432 dbname=hoge_db user=hogehoge password=hoges_pwd”);
if (!$DB)
{
??? print “DBへの接続が失敗しました!?<BR>\n”;
??? print “</BODT></HTML>\n”;
??? exit;
}
?
$dbname = pg_dbname($DB);
print “DB:$dbname へ接続中です!!<BR>\n”;
?>
</BODY>
</HTML>
−−−−−−−−−−−−−−−−−−−−−
こんなふうに。
補足:PHP でUTF-8を扱うなら
.htaccess に次のように書く(for PHP5)
−−−−−−−−−−−−−−−−−−−−−
AddType application/x-httpd-php .html
<IfModule mod_php5.c>
?php_value default_charset UTF-8
?php_value mbstring.language Japanese
?php_value mbstring.internal_encoding UTF-8
?php_flag? mbstring.encoding_translation On
?php_value mbstring.http_input auto
?php_value mbstring.http_output UTF-8
</IfModule>
−−−−−−−−−−−−−−−−−−−−−
ま、PHP4でもmod_php4.cになるだけで他は変わらないけど
補足:グーグルマップを使うなら UTF-8N でHTMLを書くこと
サーバーでなんか変だった。
補足:JavaScriptの変数宣言は<body>タグより前で行なうこと
<html xmlns=”http://www.w3.org/1999/xhtml“>
? <head>
??? <meta http-equiv=”content-type” content=”text/html; charset=utf-8″/>
??? <title>Google Maps JavaScript API Example</title>
??? <script src=”http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA7Q9V5GJtb2ypQFqOFGXXnRQbpbzxjQrr23rkm_uLILBz_mQ5JRSg4VAS_IOoG9a2rhp7EV9QS_DfVQ” type=”text/javascript”></script>
??? <!– JavaScript:変数宣言:ここから動かしてはならない –>
??? <script type=”text/javascript”>
??? //<![CDATA[
??? //]]>
??? </script>
? </head>
? <body><div id=”map” style=”width: 800px; height: 600px”></div></body>
</html>
<!– JavaScript:グーグルマップ基本処理:ここから動かしてはならない –>
<script src=”./js/googlemap.js” type=”text/javascript”></script>
<!– JavaScript:グーグルマップ付属処理:個別処理はこのファイルで –>
<script src=”./js/maruchan.js” type=”text/javascript”></script>
こんな感じ。
補足:エリアを特定した高速検索
http://neta.ywcafe.net/000597.html データベース上の位置情報を効率的に検索する方法(PostgreSQL編)
補足:PHPでイメージを扱うには
<?
// ——————–
// USERINTRO Data Check
// ——————–
function userimage_check()
{
??? global $USERINTRO;
??? global $_FILES;
??? global $_CLIENT;
??? global $USER_DIR;
??? global $ERROR;
??? $ERROR[message] = “”;
??? // 特殊文字変換
??? $USERINTRO[handle] = htmlspecialchars($USERINTRO[handle],ENT_QUOTES);
??? $USERINTRO[spec] = htmlspecialchars($USERINTRO[spec],ENT_QUOTES);
??? $USERINTRO[info] = htmlspecialchars($USERINTRO[info],ENT_QUOTES);
??? // 画像の指定がない場合には
??? if (strlen($_FILES[IMAGEFILE][tmp_name]) == 0)
??? {
??????? $USERINTRO[tmp_image] = “”;
??????? return 1;
??? }
??? list($width, $height, $type, $attr) = getimagesize($_FILES[IMAGEFILE][tmp_name]);
??? if ($_FILES['IMAGEFILE']['size'] > 256000)
??? {
??????? $ERROR[message] .= “画像ファイルのサイズが256KBを超えています。<BR>\n”;
??? }
//??? if ($type == 1)
//??? {
//??????? $kakucyoshi = ‘gif’;
//??? }
//??? elsif ($type == 3)
//??? {
//??????? $kakucyoshi = ‘png’;
//??? }
??? if ($type == 2)
??? {
??????? $kakucyoshi = ‘jpg’;
??? }
??? elseif ($type == 6)
??? {
??????? $kakucyoshi = ‘bmp’;
??? }
??? else
??? {
??????? $ERROR[message] .= “画像ファイルの形式が扱えないタイプ($type)です。<BR>\n”;
??? }
??? if (strlen($ERROR[message]))
??? {
??????? return 0;
??? }
??? if(is_uploaded_file($_FILES[IMAGEFILE][tmp_name]))
??? {
??????? if (ereg(“user([0-9])”, $_CLIENT[login_id], $param))
??????? {
??????????? $TARGET_DIR = “$USER_DIR/user$param[1]/$_CLIENT[login_id]“;
??????????? $tmp_image = “userintro_tmp.$kakucyoshi”;
??????????? move_uploaded_file($_FILES[IMAGEFILE][tmp_name], “$TARGET_DIR/$tmp_image”);
??????????? $USERINTRO[tmp_image] = $tmp_image;
??????? }
??????? else
??????? {
??????????? return 0;
??????? }
??? }
??? if (strlen($ERROR[message]))
??? {
??????? return 0;
??? }
??? return 1;
}
□Nucleus で簡単ブログ構築
by admin on 1月.08, 2009, under MEMO
参考:http://japan.nucleuscms.org/
Nucleusとはいわゆるブログツールです。
一般のレンタルサーバーのユーザーでもPHPとMySQLがあれば問題なく動作
させることが出来ます。
インストールの詳細は参考のURLに詳しく書いてあるのでそちらを読むこと。
インストール方法はいたって簡単。ダウンロードしてきたzipファイルを
自分のパソコンで展開して、出てきたファイルをWEBサーバーの動かしたい
フォルダにアップロードするだけ。
今回は http://www25.big.or.jp/~kabu/nucleus/ で動かすことにする。
zipファイルを展開したフォルダの中身をまるごとアップロードする。
アップロードが出来たら、
・nucleusフォルダの中のconfig.phpのパーミッションを666に
・nucleusフォルダの中のmediaフォルダのパーミッションを777に
・nucleusフォルダの中のskinsフォルダのパーミッションを777に
・skinsフォルダの中のファイルのパーミッションを666に
として、
http://www25.big.or.jp/~kabu/nucleus/install.php
にアクセスする。
すると
> Install Nucleus
> このスクリプトはNucleusのインストールを手助けします。…
とインストール画面が出てくるので、必要な事項を設定する。
それぞれの項目は
> ホスト名: localhost
> ユーザー名: kabu
> パスワード: HIMITSUDESU
> データベース名: kabu_db
として、「高等なデータベース設定」の「テーブル・プリフィックス」に
チェックをいれて「nucleus_」とした。
「ディレクトリとURL」は特にいじらず、「管理権限をもつユーザー」や
「ウェブログのデータ」はきちんと設定しましょう。
で、「Nucleus CMSのインストール」を押して成功すれば
> インストールは完了しました!
となります。
ここで慌てて「管理領域にログインしてサイトの設定を行う」としても
> Security Risk…
と怒られるので、
> install.sql
> install.php
をサーバーから削除して
> config.php
のパーミッションを444にしましょう。
あとはドキュメントを読みながらいろいろとカスタマイズしましょう!!
補足:NP_Captcha でコメントSPAMを防ぐには
参考:http://wakka.xiffy.nl/captcha
NP_Captcha とは投稿時のキーワードを画像で表示することで、自動的に
コメントをするようなシステムを制限するためのプラグインです。
インストール方法はいたって簡単。
参考URLからプラグインをダウンロードして展開して、サーバーの
nucleus/plugins
ディレクトリにアップロードして、管理画面からインストールすればOK。
□WordPress で簡単ブログ構築
by admin on 1月.08, 2009, under MEMO
□WordPress で簡単ブログ構築
WordPressとはいわゆるブログツールです。
一般のレンタルサーバーのユーザーでもPHPとMySQLがあれば問題なく動作
させることが出来ます。
インストールの詳細は参考のURLに詳しく書いてあるのでそちらを読むこと。
MySQLのバージョンによって2.0系か2.1系か使うバージョンが分かれるので
注意。
インストール方法はいたって簡単。ダウンロードしてきたzipファイルを
自分のパソコンで展開して、出てきたファイルをWEBサーバーの動かしたい
ディレクトリにアップロードするだけ。
今回は http://www25.big.or.jp/~kabu/wordpress/ で動かすことにする。
zipファイルを展開したフォルダの名前がwordpressそのままなので、この
フォルダをまるごとアップロードする。
アップロードが出来たら、wordpressフォルダのパーミッションを777にして
http://www25.big.or.jp/~kabu/wordpress/ にアクセスする。
すると
> サーバー上に wp-config.php ファイルが存在しません
> WordPress のインストールにはこのファイルが必要です。
>
> こちらのウィザードを利用してサーバー上で wp-config.php ファイルを作成することができますが、この方法はすべての環境での動作を保障することができませんのでご了承下さい。
>
> 最も確実な方法は wp-config-sample.php を参考に手動でファイルを作成することです。
といわれるので、とりあえずウィザードを使ってみる。
それぞれの項目は
> データベース名 hogehoge_db(※サーバー指定のものに)
> ユーザー名 hogehoge(※サーバー指定のものに)
> パスワード password(※サーバー指定のものに)
> ホスト名 localhost
> テーブル接頭語 wp_
としてブログの文字エンコードは今回はShift_JISにしてみました。
成功すれば
> 準備完了 !
> インストールに必要な情報が揃いました。
> これで WordPress はデータベースに接続することができます。準備ができている場合は早速インストールを実行してください。
というようになりますので「インストール」というところをクリックして
最低限の設定をすれば終わりです。
あとはドキュメントを読みながらいろいろとカスタマイズしましょう!!
補足:Akismet でコメントSPAMを防ぐには
Akismet を有効にするには、インストールしたWordPressにアクセスをして
(http://www25.big.or.jp/~kabu/wordpress/)、下の方にあるメタ情報で
ログインをすると「管理人専用」というメニューになるので、そこから管理
画面に入ることが出来る。
メニューの「プラグイン」から「Akismet」を「有効化」する。
この時にAPI Keyを求められるので、下記を参照して設定すること。
補足:API Keyを取得するには
Akismet のようなコメントSPAMフィルターを有効にするにはWordPressの
API Keyを取得しないといけません。これを取得するためには本家サイト
でユーザー登録をしなければなりません。英語なのでちょっとハードルが
高いかもしれませんが、説明通りに進めばそんなに難しくもありません。
1.まずは本家 WordPress に登録(ブログサイトを作ることになる)
http://wordpress.com/signup/ にアクセスをしてユーザー名とメール
アドレスを入力し、I have read and agree to …にチェックをして、
「NEXT」を押す。
するとブログドメイン・ブログ名・言語を決めろというので適当に決めて
Signupをする。
すると、support@wordpress.comから「Activate hogehoge.wordpress.com」
というタイトルでメールが届くので、本文中のURLをクリックする。
すると、ログインIDとパスワードが表示されるので忘れずにメモ。
2.API Keyを取得する
取得したログインIDとパスワードでログインして、左上の「My Account」
をプルダウンして「Edit Profile」を選択すると、プロフィール画面に
なる。そこに
> Your WordPress.com API key is: xxxxxxxxxxxx.
というようにしてAPI Keyが表示されているので、これをコピーすればOK!!
補足:バナーの類を張るには
コンテンツのソース自体は「\wordpress\wp-content\themes\」の下に、
テーマごとに各フォルダに分かれているので、その中のファイル名を参考
にして修正すること。
・index.php メインコンテンツ部分
・footer.php フッター部分
・sidebar.php 右サイドバー部分
補足:WordPress の最新版で日本語を打つ場合
.htaccess に
php_value default_charset UTF-8
php_value mbstring.internal_encoding UTF-8
#php_value mbstring.http_output UTF-8
php_value mbstring.encoding_translation OFF
php_value mbstring.http_output PASS
php_value mbstring.func_overload 0 ※Ktai Style を入れたとき
とすると、日本語処理がスムーズ。
補足:WordPress を携帯から使う場合には
携帯で見えるようにするには
Ktai Style
http://wppluginsj.sourceforge.jp/ktai_style/
がいい。
それと、携帯とかからメールを受けて投稿するには
Ktai Entry
http://wppluginsj.sourceforge.jp/ktai_entry/
が簡単でいい。
また携帯の場合には表示記事を3件にすると、携帯で見た時に記事が
分割されないので見た目がいい。
□OpenPNEでSNSを構築
by admin on 1月.08, 2009, under MEMO
OpenPNE(オープンピーネ)とは、mixiのようなSNS(ソーシャルネットワーク
サービス)を構築できるフリーソフトです。この手のソフトの中では秀逸の
出来では無いかと思います。
実際に動かすには独自ドメインを持っていたほうが、メールによる各種操作
ができるのでよいのですが、一般のレンタルサーバーのユーザーでもMySQL
があれば基本的な機能については問題なく動作させることが出来ます。
また通常のSNSのようなクローズなコミュニティ以外にも、招待の必要の無い
自由参加型や、逆に管理者が招待した会員のみが参加できる限定参加型にも
設定可能なので、必要に応じたコミュニティを形成することが出来ます。
インストールの詳細は参考のURLに詳しく書いてあるのでそちらを読むこと。
仮に「4×4.jp」に設定するとします。
cd /www/4×4.jp/
mv ./html ./html.old
tar xvzf /usr/src/package/OpenPNE-2.8.0.tar.gz
cd ./OpenPNE-2.8.0
mv ./public_html ../html
cp ./config.php.sample ./config.php
chmod -R 777 var/*
として、config.inc.php と config.php(UTF8で書かれいる)を編集。
そしてMySQLにログインしてデータベースを作成。(設定編集と前後するが)
CREATE DATABASE `4x4_db` DEFAULT CHARACTER SET utf8 ;
そして、初めてならば下記のコマンドを実行
cd setup/sql/install/
mysql -u 4×4 -p –default-character-set=utf8 4x4_db < install-2.6-create_tables-mysql41.sql
mysql -u 4×4 -p –default-character-set=utf8 4x4_db < install-2.6-insert_data.sql
そしてエラーなど無ければ、セットアップURLにアクセス。
必要事項を設定したらまずは一段落。
後は好きなようにカスタマイズしましょう。
スキンやカラーリングなどはこのメモとはちょっと趣旨が外れるので割愛。
ドキュメントではcronの設定をしなさい、とあるけど、これが毎日送られて
くるのがうざいといわれかねないので注意すること。
> 0 15 * * 6????? /www/4×4.jp/OpenPNE/bin/tool_send_dairy_news.cron /www/4×4.jp/OpenPNE/bin/ /usr/local/bin/php
> 0 12 * * *????? /www/4×4.jp/OpenPNE/bin/tool_send_birthday_mail.cron /www/4×4.jp/OpenPNE/bin/ /usr/local/bin/php
> 0 6? * * *????? /www/4×4.jp/OpenPNE/bin/tool_send_schedule_mail.cron /www/4×4.jp/OpenPNE/bin/ /usr/local/bin/php
> */15 * * *????? /www/4×4.jp/OpenPNE/bin/tool_rss_cache.cron /www/4×4.jp/OpenPNE/bin/ /usr/local/bin/php
デイリーニュースは金曜日の午後3時に、誕生日のメールは12時に、
スケジュールだけは朝6時に、RSSの確認は15分毎にしてみた。
携帯などからのメールについては、サブドメインを指定して、そこに
届いたメールは全てOpenPNEに渡すようにする。
今回は「@op.4×4.jp」宛に届いたメールを全て渡すようにする。
Postfixの設定は手っ取り早くするならば、
1./etc/postfix/virtual に設定(openpneというIDにすべて配送)
> @op.4×4.jp?openpne
と追加して、
/usr/sbin/postmap hash:/etc/postfix/virtual < /etc/postfix/virtual
/usr/sbin/postfix reload
/usr/sbin/postfix flush
/etc/postfix/main.cf に
> #
> # virtual domain
> #
> virtual_maps = hash:/etc/postfix/virtual
と書いていないと意味がありません。
2./etc/aliases に設定(openpneというID宛のメールをOpenPNEに渡す)
> openpne:?”| /usr/local/bin/php /var/openpne/bin/mail.php”
として
newaliases
することを忘れずに。
補足:MySQLに外部からアクセスする場合〜複数のサーバーで運用〜
MySQLが動いているサーバーに外部から接続したい場合には、
・MySQLが動いているポートに外部からアクセスできるか?
(3306がデフォルトポート)
・MySQLのユーザー権限(GRANT)で外部接続を許可しているか?
の二点が重要になります。注意しなければいけないのは、例えローカルで
アクセスが出来ているとしても、外部接続は別途許可しなければならない
ということです。
grant select,insert,delete,update,create,drop,\
file,alter,index on *.* to ユーザー名@”%” identified by ‘パスワード’;
flush privileges;
exit
とすることで、外部ホストからのアクセスも大丈夫になります。
これにより、WEB部分については複数のサーバーに分散させることが可能です。
でもそれだけだとMySQLの負荷も上がるので、これもクラスタ構成にした方が
より負荷分散になってよいでしょう。