1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml" lang="ja-JP" xml:lang="ja-JP">
4 <!-- $Id: tips.html,v 1.5 2006-07-12 07:11:46 kimitake Exp $ -->
5 <!-- $NucleusJP: tips.html,v 1.4 2005/03/19 08:34:53 kimitake Exp $ -->
6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
7 <title>Nucleus - 便利な使い方ヒントの紹介</title>
8 <link rel="stylesheet" type="text/css" href="styles/manual.css" />
13 Tips & Suggestions
19 <a href="index.html">Nucleusマニュアルに戻る</a>
23 ここでは便利な使い方ヒントをご紹介します。</p>
25 <h1><a name="toc"></a>目次</h1>
29 <a href="#searchengines">検索エンジンにひっかかりやすくする方法</a>
31 <li><a href="#searchengines-fancyurls">Fancy URL モード</a></li>
32 <li><a href="#searchengines-rewrite">mod_rewrite</a></li>
35 <li><a href="#filepermissions">ファイルとディレクトリのパーミッション変更ガイド</a></li>
36 <li><a href="#backups">バックアップをリストア(復元)する方法</a></li>
37 <li><a href="#newblog">新しくweblogを作成する方法</a></li>
38 <li><a href="#xhtml">XHTMLサポートについて</a></li>
40 <li><a href="#"></a></li>
41 <li><a href="#"></a></li>
42 <li><a href="#"></a></li>
43 <li><a href="#"></a></li>
56 <h1>Googleなどのサーチエンジンに引っかかりやすくする方法 <a name="searchengines" href="#top" class="toplink"><img src="icon-up.gif" width="15" height="15" alt="back to top" /></a></h1>
59 <b>留意点:</b> これらの方法は、サーバの環境によっては動作しない事があります。
63 Nucleus はアクセスごとにページを生成しています。アクセスするURLは「<code>index.php?archive=2001-09&blogid=1</code>のようになっています。残念ながらURLに「?」やそのほかの余分な文字列がたくさんあるとgoogleなどの検索エンジンに登録されにくくなってしまいます。無駄なロボット巡回を省くための措置だそうです。
66 <p>この対策を2つ紹介しておきます。しかしながら必ず動作するとは限りませんのでご注意下さい(動作するかどうかはサーバ側の設定によります)。</p>
69 <li><a href="#searchengines-fancyurls">Fancy URLモード</a></li>
70 <li><a href="#searchengines-rewrite">mod_rewrite</a></li>
73 <a name="searchengines-fancyurls"></a>
76 <p>Nucleusではバージョン2.0からグローバル設定において「URLモード」というオプションを設けています。ここを「FancyURLモード」に設定して以下の作業を行うと、URLが「<code>http://example.org/index.php?itemid=1234</code>」から「<code>http://example.org/item/1234</code>」に変わります。このURL形式の方が検索エンジンに登録されやすくなります。 </p>
81 <li>Copy all files from the <code>/extra/fancyurls</code> ディレクトリにある<code>index.html</code>以外の全部のファイルをルートディレクトリ(<code>index.php</code> と <code>action.php</code>があるディレクトリ)にコピーします。</li>
82 <li>すでにルートディレクトリに<code>.htaccess</code>ファイルを設置している方はまず現在の<code>.htaccess</code>ファイルをダウンロード後に今回の <code>/extra/fancyurls</code> ディレクトリにある<code>.htaccess</code>ファイルの中身を追加してください。(FTPソフトでは標準設定では<code>.htaccess</code>ファイルは見えないことが多いので、確認方法を調べた上で存在を確認してください。)<br />
83 <code>.htaccess</code>ファイルを設置していなかった方は<code>/extra/fancyurls</code> ディレクトリにある<code>.htaccess</code>ファイルをそのまま使用してください。</li>
84 <li>「<code>fancyurls.config.php</code>」という名前のファイルの中の<code>$CONF['Self']</code>の値を自分のトップページのURLとします。 <br /><strong>重要: URLの末尾にスラッシュは<em>絶対に</em>入れないでください。</strong></li>
85 <li>同様に<code>index.php</code>ファイルの<code>$CONF['Self']</code>の値を編集(引用符の中を削除)します。これをやらないと、URLが<code>index.php/item/1234</code>などとおかしくなります。</li>
86 <li>これらの新しくルートディレクトリに追加したファイルをサーバにアップロードします。</li>
87 <li>最後に、管理エリアのグローバル設定においてURLモードを「FancyURLモード」に変更します。</li>
91 <p>もしページが正常に表示されない場合(Internal Server Errorなどと表示される場合)は、残念ですがこの対策は使えません。上の作業で追加したファイルを速やかに削除し(<code>.htaccess</code>ファイルの削除も忘れずに)、管理エリアのグローバル設定においてURLモードを元に戻してください。</p>
94 <a name="searchengines-rewrite"></a>
98 次に紹介する対策はApacheサーバを使用していて、かつ、「mod_rewrite」の使用が許可されている環境でのみ有効な方法です。アクセスするページがhtmlファイルであるかのようにみせかける方法です。
102 ルートディレクトリに「<code>.htaccess</code>」という名前のファイル(ファイル名の先頭はピリオドです)を作成し、以下の内容を書き込みます:
107 RewriteRule ^archive-([0-9]+)-([0-9]+)-([0-9]+).html+ index.php?archive=$2-$3&blogid=$1
108 RewriteRule ^item-([0-9]+).html+ index.php?itemid=$1
109 RewriteRule ^archivelist-([a-z]+).html+ index.php?archivelist=$1
113 このファイルを <i>index.php</i> や <i>config.php</i> があるディレクトリにアップロードします。ブラウザで「<code>archive-1-2004-06.html</code>」にアクセスしてみましょう。きちんとページが表示されればこの方法が使える環境です。(このURL例は2004年6月の記事を表示させるURLですから該当月のログがない場合は「記事がありません」となりますが、これは成功している事を意味します。)<br />もし、アクセスした際に 500 error (internal server error) が表示されていたらそのサーバ環境ではこの方法は使えません。.htaccess ファイルを削除してください。
117 成功していたら、次にこのURLにジャンプするようにテンプレートを書き換えます。上のURL例をリンク先とする場合は、アーカイブリスト(アーカイブ一覧ページ)で指定しているテンプレートの「アーカイブ一覧の本体」の部分を以下のように変更します:
121 <a href="archive-<%blogid%>-<%year%>-<%month%>.html">...</a>
125 これで検索エンジン対策の説明はおしまいです。あとは検索ロボットが到来するのを待ってみましょう。
129 <h1>ファイルとディレクトリのパーミッション変更ガイド <a name="filepermissions" href="#top" class="toplink"><img src="icon-up.gif" width="15" height="15" alt="back to top" /></a></h1>
132 Nucleusのいくつかの機能を正常動作させるためにはパーミッションの変更作業が必要となります。ここではFTPソフト(FTPクライアント)を使ってパーミッションを変更する方法を紹介しておきます。
135 まずはパーミッション変更ができるFTPソフト(FTPクライアント)を入手します。英語ガイドでは「CuteFTP」というソフトを例にとって説明されていますが、シェアウェアであり日本ではメジャーではないのでOS別に分けて説明します。</P>
139 Windows版では、「FFFTP」というソフトを例に用いて説明させていただきます。FFFTPはフリーウェアです。『<a href="http://www2.biglobe.ne.jp/‾sota/ffftp.html">Sota's Product : FFFTP</a>』で入手できます。また、FFFTPのインストールや基本的な使い方につきましては、『<a href="http://ftp.hm/ffftp/manual.shtml">初心者マニュアル - FFFTP Support Page.</a>』をご覧下さい。
143 まずサーバに接続します。パーミッションを変更したいサーバ側のファイル又はディレクトリをクリックして選択します。(画面右側がサーバに置いてあるディレクトリとファイルのリストとなっています。)
147 メニューバーの <tt>コマンド > 属性変更</tt> を選択します。
150 <div class="screenshot">
151 <img src="pics/screen4.png" width="370" height="257" alt="menu" />
155 パーミッションを設定するウィンドウがポップアップします:
158 <div class="screenshot">
159 <img src="pics/screen5.png" width="305" height="189" alt="The window that pops up" />
163 このポップアップしたウィンドウの下の方に数字を入れる所がありますから、ここに説明書に記載されている数字(例えば777とか666)を入力してOKボタンを押します。これでおしまいです。
167 MacOS上で動作する日本語が使えるFTPクライアントでは、「Fetch日本語版」が最も人気があるようです。『<a href="http://www.hart.co.jp/fetch/">Fetch日本語版公式ホームページ</a>』よりダウンロードできます。(使い続ける方は有料になります。)
170 パーミッションの変更画面では数字を入力する機能がないようですので、どこにチェックを入れたら(はずしたら)よいかがよくわからない方は『<a href="http://trynext.co.jp/tips/chmod/">TryNext|Fetchによるパーミッション設定</a>』をご覧下さい。代表的なパーミッション設定例と、計算の仕方が説明されています。
173 または、下記の表にチェックを入れてみて指示されているパーミッション値になるようにテストしてみても良いかと思います。
174 (上記のWindows版FTPソフトの設定画面とは縦軸と横軸が逆になっていますので混同しないように。)
176 <SCRIPT language="javascript">
178 //------------------------------------------------------------
179 //javascript by @うさ http://usagi-js.com/
180 //------------------------------------------------------------
182 function ResetValue()
186 function CheckValue()
191 if (document.frmSample.chkValue11.checked)
193 nCurrentValue = eval(document.frmSample.chkValue11.value);
195 if (document.frmSample.chkValue12.checked)
197 nCurrentValue += eval(document.frmSample.chkValue12.value);
199 if (document.frmSample.chkValue13.checked)
201 nCurrentValue += eval(document.frmSample.chkValue13.value);
203 if (document.frmSample.chkValue21.checked)
205 nCurrentValue += eval(document.frmSample.chkValue21.value);
207 if (document.frmSample.chkValue22.checked)
209 nCurrentValue += eval(document.frmSample.chkValue22.value);
211 if (document.frmSample.chkValue23.checked)
213 nCurrentValue += eval(document.frmSample.chkValue23.value);
215 if (document.frmSample.chkValue31.checked)
217 nCurrentValue += eval(document.frmSample.chkValue31.value);
219 if (document.frmSample.chkValue32.checked)
221 nCurrentValue += eval(document.frmSample.chkValue32.value);
223 if (document.frmSample.chkValue33.checked)
225 nCurrentValue += eval(document.frmSample.chkValue33.value);
228 document.frmSample.txtTotal.value=nCurrentValue;
233 <table align="center"><tr>
234 <FORM name="frmSample">
242 <td><INPUT type="checkbox" name="chkValue11" value="400" onClick="CheckValue()"></td>
243 <td><INPUT type="checkbox" name="chkValue12" value="200" onClick="CheckValue()"></td>
244 <td><INPUT type="checkbox" name="chkValue13" value="100" onClick="CheckValue()"></td>
248 <td><INPUT type="checkbox" name="chkValue21" value="40" onClick="CheckValue()"></td>
249 <td><INPUT type="checkbox" name="chkValue22" value="20" onClick="CheckValue()"></td>
250 <td><INPUT type="checkbox" name="chkValue23" value="10" onClick="CheckValue()"></td>
254 <td><INPUT type="checkbox" name="chkValue31" value="4" onClick="CheckValue()"></td>
255 <td><INPUT type="checkbox" name="chkValue32" value="2" onClick="CheckValue()"></td>
256 <td><INPUT type="checkbox" name="chkValue33" value="1" onClick="CheckValue()"></td>
260 パーミッション値(直接入力はできません)<br>
261 <INPUT type="text" name="txtTotal" readonly>
270 <h1>バックアップをリストア(復元)する方法 <a name="backups" href="#top" class="toplink"><img src="icon-up.gif" width="15" height="15" alt="back to top" /></a></h1>
273 Nucleus には最高管理者が使うことができるデータベースのバックアップ機能があります。定期的に(週1回など)バックアップを取られることを強くおすすめします。 生成されるバックアップファイルはスタンダードなSQLクエリ文です。バックアップを取った時点のデータベース状態に再構成するコマンドが書かれています。
277 バックアップが作成できればリストアも簡単にできるはずですが、何らかの理由によりリストアが成功しないケースも考えられます。そこで、万が一管理エリアからリストアができない場合でも、データを書き戻す方法をいくつか紹介しておきます:
281 バックアップ作成時にzip圧縮を選択していた方はまず最初に解凍してください(中身はsqlファイルです)。
285 <h2>方法その1: ブラウザ上にて行う方法</h2>
288 <a href="http://phpmyadmin.sourceforge.net/">PHPMyAdmin</a>のようなブラウザでデータベースを操作できる状態の方は、ローカルにあるsqlファイルをデータベースに取り込む機能が付いているはずですので、この機能を使用してみてください。
291 <h2>方法その2: Shellにアクセスして作業する方法</h2>
294 Shellにアクセスできる状態の方は、mysqlプログラムを実行して下記のようなコマンドを叩けばリストアできます:
298 mysql -u <i>username</i> -p -h <i>hostname</i> <i>databasename</i> < <i>backupfile.sql</i>
302 <h1>新しくweblogを作成する方法 <a name="newblog" href="#top" class="toplink"><img src="icon-up.gif" width="15" height="15" alt="back to top" /></a></h1>
304 <h2>1. 新規weblogの作成</h2>
306 <p>最高管理者としてログインすると「新規weblog作成」メニューが使用できます。ここで画面の指示に従って作成してください。</p>
308 <h2>2. 作成したweblogにアクセスする</h2>
310 <p>新しく追加されたweblogにアクセスする方法はいくつかあります。</p>
313 <li>URLにて<strong><code>blogid</code>の値</strong>を指定する:
314 <pre><code>http://yourhost.com/index.php?blogid=<i>2</i></code></pre>
315 (作成したweblogのblogidは管理エリアのトップページにあるblog一覧の中の該当blogのリンク先を見ればわかります。)
319 <pre><code>$CONF['Self'] = '<i>copy.php</i>';
320 include('./config.php');
321 selectBlog('<i>shortblogname</i>');
325 上のような内容の「<tt>copy.php</tt>」という名前(この名前は一例です)のファイルをルートディレクトリに作成し、これにアクセスすると新しく追加されたblogが表示されます。
326 (作成したweblogの短縮名はは管理エリアのトップページにあるblog一覧の中から該当blogの設定画面に入るとわかります。)
330 <h2>アクセス専用phpファイルの中で使用できるコマンド</h2>
332 <p>上記のサンプル内で使用している <tt>selectBlog</tt> というコマンドは、アクセス専用phpファイルにて使用できるコマンドの一例です。他にも使用できるコマンドがありますので紹介しておきます:</p>
338 <td><code>selectBlog('shortblogname');</td>
339 <td>「shortblogname」という短縮名のblogを表示させる<br />
340 (* URLにて指定するblogidの方が優先されます。URLにて指定がない場合にこの指定が使われます)
343 <td><code>selectSkin('skinname');</td>
344 <td>「skinname」という名前のスキンを適用してページ表示する<br />
345 (* URLにて指定するskinidの方が優先されます。URLにて指定がない場合にこの指定が使われます)
348 <td><code>selectCategory(1234);</td>
349 <td>IDが「1234」のカテゴリを選択した状態でページ表示する<br />
350 (* URLにて指定するcatidの方が優先されます。URLにて指定がない場合にこの指定が使われます)<br />
351 この指定にはカテゴリ名を指定する事もができますが、複数blogが存在している場合は同じカテゴリ名があることが考えられますのでID指定の方が無難でしょう。</td>
353 <td><code>selectItem(1234);</td>
354 <td>IDが「1234」の記事を選択した状態でページ表示する<br />
355 (* URLの指定が優先されます。URLにて指定がない場合にこの指定が使われます)</td>
357 <td><code>selectLanguage('french');</td>
358 <td>言語を「french」にしてページ表示する
359 (PHPエラーが出る可能性がありますので注意してください)</td>
363 アクセス専用phpファイルの中にこれらのコマンドを書く時は、コードの順番に留意してください。これらのコマンドは、<code>include('./config.php')</code>よりも<strong>後に</strong>書き、かつ、<code>selector();</code>という行よりも<strong>前に</strong>書かなくては反映されません。
366 <h2>サブディレクトリに新しいblogを配置する場合</h2>
368 <p>例えば、最初のblogが <tt>http://yourhost.com/</tt> で表示されていて、新しく追加するblogは <tt>http://yourhost.com/sub/</tt> のようにサブディレクトリに配置したい方は、上記のサンプルと同じアクセス専用phpファイルをそのサブディレクトリに作成します。このサブディレクトリに配置したアクセス専用phpファイルの<code>include('./config.php');</code> という部分を <code>include('../config.php');</code>と書き換えるだけで動作します。</p>
384 <h1>XHTML サポートについて <a name="xhtml" href="#top" class="toplink"><img src="icon-up.gif" width="15" height="15" alt="back to top" /></a></h1>
387 自分のページのソースコードを見た時、<code><br /></code>のようなタグコードにお気付きかと思います。これは、Nucleusが自動生成するコードがW3Cにて策定されているXHTML 1.0 standard(HTML4継承)に則っているからです。webの将来性を鑑みてこのようにしております。知る限りでは、XHTML形式の記述が古いブラウザとの互換性を損なってはいないようです。
391 ですから、スキンとテンプレートの記述でミスを犯していなければ完全なXHTML準拠のソースコードが生成されるはずです。1点だけ付け加えておきますと、標準添付のスキンでは、敢えてdoctypeを「HTML 4 Loose」と宣言しております。これは、XHTML準拠でないコードをスキンやテンプレートや記事内に登録してしまい、正常にページ表示ができなくなる可能性を回避する為です。