現在位置: Top/EUC-JPなMySQLにOpenPNE
- 履歴一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- EUC-JPなMySQLにOpenPNE へ行く。
- 1 (2006-07-29 (土) 21:21:28)
- 2 (2006-07-29 (土) 21:27:29)
- 3 (2006-08-10 (木) 23:23:39)
- 4 (2006-08-11 (金) 17:11:23)
EUC-JPなMySQLにOpenPNE
land.toにOpenPNEを設置してみました。
このland.toはMySQLがEUC-JPしか受け付けないようで、
初期状態ではOpenPNEが文字化けしていました。
OpenPNEの解凍と変換
- 圧縮ファイルを解凍後、OpenPNE内のpublic_htmlをsnsとリネームする。
- sns内のconfig.inc.phpの設定をし、land.toのpublic_htmlへ移動。
- OpenPNE内の他のフォルダ内のファイルをすべてEUC-JPにコンバート。
- OpenPNE/webapp内のUTF-8という文字列をすべてEUC-JPに置換。
※コンバートや置換は、自動化させないと途方もない作業になります。
※webapp以外のUTF-8もEUC-JPへ置換してしまうとメールが文字化けしてしまいました。 - OpenPNE/config.php内のUTF-8もEUC-JPへ置換。
- OpenPNEはpublic_htmlと並列にルートへアップロード。
コンバートと置換を一括処理
コンバートと置換の一括処理の一例
#!/bin/bash
CONVERT_HOME="/tmp/OpenPNE"
for f in `find $CONVERT_HOME`
do
if [ -f "$f" ] ; then
nkf -d --euc $f > "$f"_tmp
mv "$f"_tmp "$f"
fi
done
for f in `find $CONVERT_HOME/webapp`
do
if [ -f "$f" ] ; then
sed -e 's/UTF-8/EUC-JP/g' "$f" > "$f"_tmp
mv "$f"_tmp "$f"
fi
done
exit 0
データベースの設定
- データベースの設定は、phpMyAdminでSQLを実行する。
- 文字コードはEUC-JP。
あとは説明書通りの設定で。
RSSの取得で文字化けを修正
OpenPNE/lib/PNE/RSS.php
function convert_encoding($string)
{
// if (!$this->charset) {
// return $string;
// }
// return mb_convert_encoding($string, $this->charset, MAGPIE_OUTPUT_ENCODING);
return mb_convert_encoding($string, "EUC-JP", "auto");
}
日付が代入されない
「%m月%d日」と数値が代入されません。
OpenPNE/webapp/lib/smarty_plugins/modifier.date_format.php
return preg_replace_callback('/\%[a-z\%]/iu',
という部分の「iu」→「i」とします。
cronを遠隔操作(おまけ)
- /public/sns/binをいうディレクトリを作成し、
/OpenPNE/binのファイルをコピー。 - *.php内の
require_once './config.inc.php';
という行をdefine('OPENPNE_DIR', realpath('/home/httpd/xxx/openpne')); require_once OPENPNE_DIR . '/config.php';と置き換える。 - これを自宅のローカルサーバーでcronする。
01 6 * * * wget -q -O - http://xxx.land.to/sns/bin/tool_send_daily_news.php 02 6 * * * wget -q -O - http://xxx.land.to/sns/bin/tool_send_birthday_mail.php 03 6 * * * wget -q -O - http://xxx.land.to/sns/bin/tool_schedule_mail.php */20 * * * * wget -q -O - http://xxx.land.to/sns/bin/tool_rss_cache.php

