[ ページコメント(0) ] [ トラックバック(0) ]
Counter: 4775,
today: 2,
yesterday: 1
XREAでもSSL暗号化ZenCartを導入し利用しよう 【CORESERVER編】 ↑
更新追加記事:なし
筆者は、様々なファイルの配布に、XOOPS2上で稼動するZenCartオンラインショップを利用していますが、本レポートでは「XREAサーバーの共用SSLを利用して、XOOPSを利用しない単独ZenCartを誰もが利用できるZenCartインストーラー」の無料配布とインストール方法についての解説を実施します。
【ページ内/目次】
特徴 ↑
- 全て「UTF-8文字コード」で運用します。
- PHP5で運用します。*1
- MySQL5で運用します。*2
- XREAサーバーの共用SSL暗号化通信を利用します。*3
- phpMyAdminでの文字化け無しは必須とします。
- mysqldumpでの文字化け無しは必須とします。
ダウンロード ↑
| ダウンロードサイト |
|---|
| XOOPS2+ZenCart |
| md5ハッシュ値はダウンロード画面に表示しています |
検査 ↑
インストール前の準備 ↑
| インストール前の準備 | ||
|---|---|---|
| 本ZenCartインストーラーはXREAサーバーのCORESERVER用に調整していますので、特に前準備は無用です。 | ||
| 30 |
|
まずはドメインを手配しましょう。 筆者は3つのドメインが必要だと進言します。 ここでは解説の都合上2つのドメインをCORESERVER標準仕様の「サブドメイン割り当て」を利用します。が、「メール機能は付いておりません」と注意書きがありますので、本番運用ZenCartドメイン名はメール受信ができるドメインでの利用となるでしょう。
※ メールアドレスを新規生成しましょう! ここでは解説の都合上、架空の「 webmaster@zencart.getmyip.com 」とします。 ※ 3つのドメイン名を、XREA側の「マイドメイン / ドメインウェブ 」に登録します。 |
| 40 |
|
XREA側の3つのドメインウェブの設定を行いましょう。 |
| 50 |
|
ZenCart運用ドメインでのメール受信は必須ですよね。 XREAマイドメイン・メールで受信設定を行いましょう。 |
| 60 |
|
CORESERVERでは、9999ものMySQLデーターを管理できます。ZenCartサイト毎にUNICODEで新規作成しましょう。 UNICODEとしてMySQLを用意してください。 |
全てのファイルをアップロードしましょう。 ↑
| 100 | SFTP暗号化ファイル転送*4を利用して、「ログイン名」と「パスワード」が漏洩しないように致しましょう。 上記3つのZenCart用のドメイン名のディレクトリーへ、それぞれをアップロードします。SFTP接続が確立しましたら、セッションを2つコピーして、それぞれを同時に転送しますか。 | |
| 110 | 強制はしませんが、インストーラー専用ディレクトリー「 zc_install 」を適当にリネームしますか。 ここでは解説の都合上、「 zc_install_2008 」とリネームします。 | |
| 120 |
|
リネームしたインストーラー専用ディレクトリー「 zc_install_2008 」をブラウザーで実行します。
※ 筆者の場合は、初期段階において必要だと決断できた場合は、以下の手順でハードリンク化してしまいます。どうされますか? SSHコンソールログインのことが見渡せるスキルが無いとちんぷんかんぷんな世界ですか。 今回は3箇所に全く同じデーターをアップロードしたわけです。3倍の容量を消費したこととなります。 それはそれで正解です。 今回は、「正式運用用のZenCart」と「実験試行用の裏ZenCart」、そして「自習用のZenCart模擬店」の運用でした。それならば、以下で解説する「ハードリンク化」はしない方が良いということにもなります。 ハードリンク化すれば、3セットのアップロードも1セットの容量となる。10セットのZenCartも1セットの容量で済むと言う世界です。 つまり、この場合は4つ目のZenCartを新たにインストールする場合に、有効な手段である点を覚えておいてください。 今の段階で必要なZenCart店舗分だけ3セットに拘らずにインストールしてしまうのも良いでしょう。 |
- ※ 容量の少ないサーバーでも、2セットのZenCartをインストールできたなら、
- それをハードリンク化して、容量を1セット分にしてしまう。次にハードリンクを繰り返せば、理論上は何十セットでもZenCart店舗を運営できますか。
ハードリンク化しますか? ↑
Linux(UNIX)で稼動しているXREAサーバーなら、SSHコンソールを許可して戴いているので、筆者は以下のbsh(ボーンシェル)を実行して、「各ファイルのMD5値が同じならハードリンク化」します。ここでは解説の都合上、以下のbshスクリプトのファイル名を「 MakeLink2008.sh 」としておきます。配置する場所も「ユーザーのルート・ディレクトリー」に保存することとしましょう。
■ 実行する場合の構文は:
/binsh ~/MakeLink2008.sh zencart.getmyip.com zencart.bex.jp
となります。
となります。
■ この構文の例の意味:
- zencart.getmyip.com ディレクトリーを基本とします。削除はしません。
- zencart.bex.jp ディレクトリーを基本と比較して、MD5値が同じであれば日付に関係無くハードリンク化します。
#!/bin/sh
if [ "$3" ]
then DOC_BASE=$3
else DOC_BASE=/virtual/XREAアカウント名/public_html
fi
TMP_DIR=/virtual/XREAアカウント名/temp
if [ ! "$2" -o ! -d $DOC_BASE/$1 -o ! -d $DOC_BASE/$2 -o "$1" = "$2" ]; then
cat<<EOD
usage: $0 dir1 dir2
EOD
exit
fi
if [ ! -d $TMP_DIR ]; then
echo "Please make a temp dir $TMP_DIR !"
exit
fi
function WHERE(){
if [ ! -x "$1" ]; then
echo
PROCESS=`basename $0`
echo "[31m ERROR! CHECK A FILE ---> $1[0m" >&2
echo
echo " Please modify this script `which $PROCESS` for `basename $1`"
echo
exit
fi
}
CUT="/usr/bin/cut" ; WHERE $CUT
FIND="/usr/bin/find" ; WHERE $FIND
GREP="/usr/bin/grep" ; WHERE $GREP
LN="/usr/bin/ln" ; WHERE $LN
MV="/usr/bin/mv" ; WHERE $MV
OPENSSL="/usr/local/bin/openssl"
WHERE $OPENSSL
OPENSSL="$OPENSSL dgst -md5"
RM="/usr/bin/rm" ; WHERE $RM
SED="/usr/bin/sed" ; WHERE $SED
if [ ! -f $TMP_DIR/$2.dat ]; then
$FIND $DOC_BASE/$1 -type f -print | \
$SED 's/ /;/g' | \
$SED "s%${DOC_BASE}/$1%%" | \
sort > "$TMP_DIR/$1.dat"
if [ -f $TMP_DIR/IRAN.dat ] ; then
$GREP -v -f $TMP_DIR/IRAN.dat < "$TMP_DIR/$1.dat" > "$TMP_DIR/$1.grp"
rm -f "$TMP_DIR/$1.dat"
mv "$TMP_DIR/$1.grp" "$TMP_DIR/$1.dat"
fi
for FILE in `cat $TMP_DIR/$1.dat`
do
TFILE=`echo $FILE | $SED 's/;/ /g'`
if [ -f "$DOC_BASE/$2$TFILE" ]; then
echo "$FILE" >> $TMP_DIR/$2.dat
fi
done
echo "START ..... `date` .... made a file $TMP_DIR/$2.dat" > $TMP_DIR/$1.log
fi
> $TMP_DIR/$2.log
for FILE in `cat $TMP_DIR/$2.dat`
do
FILE=`echo $FILE | $SED 's/;/ /g'`
#a echo $FILE ; continue
#b ls -i "$DOC_BASE/$1$FILE"
#b ls -i "$DOC_BASE/$2$FILE" ; continue
ORGINODE=`ls -i "$DOC_BASE/$1$FILE" | $CUT -d\ -f1`
OTHINODE=`ls -i "$DOC_BASE/$2$FILE" | $CUT -d\ -f1`
if [ $ORGINODE != $OTHINODE ]; then
ORGMD5=`$OPENSSL "$DOC_BASE/$1$FILE" | $CUT -d= -f2`
OTHMD5=`$OPENSSL "$DOC_BASE/$2$FILE" | $CUT -d= -f2`
#c echo MD5: $ORGMD5 / $OTHMD5
#c if [ $ORGMD5 = $OTHMD5 ]; then echo "S A M E !!!" ; fi
#c echo "--------------------------------------------------" ; continue
if [ $ORGMD5 = $OTHMD5 ]; then
wait
echo $RM -f "$DOC_BASE/$2$FILE" >> $TMP_DIR/$1.log
echo $LN "$DOC_BASE/$1$FILE" "$DOC_BASE/$2$FILE" >> $TMP_DIR/$1.log
( $RM -f "$DOC_BASE/$2$FILE" 2>> $TMP_DIR/$1.log ; \
$LN "$DOC_BASE/$1$FILE" "$DOC_BASE/$2$FILE" 2>> $TMP_DIR/$1.log )&
fi
else echo "$FILE has same inode number!" >> $TMP_DIR/$2.log
fi
done
if [ -f $TMP_DIR/$2.OLD ]; then
$RM -f $TMP_DIR/$2.OLD
fi
$MV $TMP_DIR/$2.dat $TMP_DIR/$2.OLD
- 上記スクリプトを誰からも利用されない場所に配置し、書き込みパーミッションは「400」にしておきます。*5
- DOC_BASEは、各XREAユーザーのアカウント名を埋め込みます。
- TMP_DIRには、各XREAユーザーのアカウント名を埋め込み、ディレクトリーを作成します。書き込みパーミッションは「700」にします。
- TMP_DIR下に「 IRAN.dat 」ファイルを生成しましょう。ハードリンクさせたくないファイル名を指定します。
.htaccess であったり、md5file.dat などなど、熟慮しましょう。別に指定しなくても良いです。但し、ハードリンク状態を確認しながら、変更・修正は行うと言う操作が今後は必要となります。 - それでは、SSHコンドール画面より実行してみましょう。
- ここでは、「 http://zencart.getmyip.com/ 領域 」を参照する基本とします。
- そして「 http://zencart.bex.jp/ 領域 」をハードリンク化させましょう。
つまり、/binsh ~/MakeLink2008.sh zencart.getmyip.com zencart.bex.jp
を実行し、タイムアウトしないで終了するまで以下の手順で繰り返します。 - それが済んだら、「 http://zencart.cms.am/ 領域 」をハードリンク化させます。
つまり、/binsh ~/MakeLink2008.sh zencart.getmyip.com zencart.cms.am
を実行し、タイムアウトしないで終了するまで以下の手順で繰り返します。
- ZenCartの様に大量のファイルの場合は、途中で必ずタイムアウトします。タイムアウトしますから次の2つのログファイルを開きます。*6
ここでは、/binsh ~/MakeLink2008.sh zencart.getmyip.com zencart.bex.jpを実行したこととして解説します。- TMP_DIR内には少なくとも4つのログファイルが生成されています。
- zencart.getmyip.com.dat
- zencart.getmyip.com.log
- zencart.bex.jp.dat
- zencart.bex.jp.log
- TMP_DIR内の、zencart.bex.jp.log を参照するとハードリンクが終了した状態を見ることができます。最終行を見て、ハードリンクが終了したファイルパスとファイル名を確認します。
- TMP_DIR内の、zencart.bex.jp.dat の先頭行より、ハードリンクが終了したファイルパスとファイル名までを削除して、そのまま保存します。
- /binsh ~/MakeLink2008.sh zencart.getmyip.com zencart.bex.jpを実行しタイムアウトした場合は、繰り返します。
- TMP_DIR内には少なくとも4つのログファイルが生成されています。
- 最後に、必ずZenCartインストール画面のトップメニュー内で実行できるMD5検査を行いましょう。仮に、タイムアウト時に消失しているファイルがある場合は、レポートとして「 NONE 」と表示されますので、基本ディレクトリーよりコピーします!
- 一度でもZenCartインストールを実行しますと固有の2つのパラメーターファイルが生成されます。これは必ず内容が異なりますので、筆者はハードリンクされる筈が無いと考えます。以下のファイルがハードリンクしてしまっている場合は、削除します。*7
- includes/configure.php
- admin 8 1 0 1/includes/configure.php
| 最新版のダウンロードは |
|---|
| 当サイトのZenCartです |
includes/installZenCart_00 を参照
インストールを開始しましょう
includes/vote2007 を参照
| 匿名アンケート | |
|---|---|
| 年齢 | 性別 |
|
年齢・性別はこのPukiWikiで一度だけ
回答ください
|
|
| 本ページは役にたった |
|---|
| コメントしてみますか |
*1 PHP4系はサポート外ですし機能を保証できません!
*2 MySQL4系はサポート外ですし機能を保証できません!
*3 2008-01-04 (金) 14:21:26 現在、管理画面だけSSL対応化したインストーラーです。ご理解願います。m(_~_)m
*4 「 XREAでも暗号化SFTPサーバーを利用しよう 」をご覧ください。
*5 実行時はSSHコンソールログイン後に、/bin/sh の後にファイルパスを指定しましょう。
*6 筆者はSFTPサーバーにアクセスするWinSCPでダイレクトにリモート側のファイルを手元の任意のスクリーンエディターで編集します。
*7 SSHコンソール画面で、ls -li ファイル名 ファイル名 と実行すれば、ハードリンク数とiノード番号を知ることができます。
添付ファイル:
トラックバック [ トラックバック(0) ]
トラックバック URL: http://www.fs4y.com/modules/pukiwiki1/tb/118





