OSDN Git Service

applied 3.2 modification
[nucleus-jp/nucleus-jp-ancient.git] / utf8 / nucleus / documentation / tips.html
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">
3 <head>
4         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5         <title>Nucleus - Tips and suggestions</title>
6         <link rel="stylesheet" type="text/css" href="styles/manual.css" />
7 </head>
8 <body>
9
10 <div class="heading">
11 Tips &amp; Suggestions
12 </div>
13
14 <h1>Introduction</h1>
15
16 <p>
17 <a href="index.html">Nucleusマニュアルに戻る</a>
18 </p>
19
20 <p>
21 ここでは便利な使い方ヒントをご紹介します。</p>
22
23 <h1><a name="toc"></a>目次</h1>
24
25 <ul>
26         <li>
27                 <a href="#searchengines">検索エンジンにひっかかりやすくする方法</a>
28                 <ul>
29                         <li><a href="#searchengines-fancyurls">Fancy URL モード</a></li>
30                         <li><a href="#searchengines-rewrite">mod_rewrite</a></li>
31                 </ul>
32         </li>
33         <li><a href="#filepermissions">ファイルとディレクトリのパーミッション変更ガイド</a></li>
34         <li><a href="#backups">バックアップをリストア(復元)する方法</a></li>
35         <li><a href="#newblog">新しくweblogを作成する方法</a></li>
36         <li><a href="#xhtml">XHTMLサポートについて</a></li>
37 <!--
38         <li><a href="#"></a></li>
39         <li><a href="#"></a></li>
40         <li><a href="#"></a></li>
41         <li><a href="#"></a></li>
42 -->
43 </ul>
44
45
46
47
48
49
50
51
52
53
54 <h1>Googleなどのサーチエンジンに引っかかりやすくする方法 <a name="searchengines" href="#top" class="toplink"><img src="icon-up.gif" width="15" height="15" alt="back to top" /></a></h1>
55
56 <div class="note">
57 <b>留意点:</b> これらの方法は、サーバの環境によっては動作しない事があります。
58 </div>
59
60 <p>
61 Nucleus はアクセスごとにページを生成しています。アクセスするURLは「<code>index.php?archive=2001-09&amp;blogid=1</code>のようになっています。残念ながらURLに「?」やそのほかの余分な文字列がたくさんあるとgoogleなどの検索エンジンに登録されにくくなってしまいます。無駄なロボット巡回を省くための措置だそうです。
62 </p>
63
64 <p>この対策を2つ紹介しておきます。しかしながら必ず動作するとは限りませんのでご注意下さい(動作するかどうかはサーバ側の設定によります)。</p>
65
66 <ol>
67         <li><a href="#searchengines-fancyurls">Fancy URLモード</a></li>
68         <li><a href="#searchengines-rewrite">mod_rewrite</a></li>
69 </ol>
70
71 <a name="searchengines-fancyurls"></a>
72 <h2>Fancy URLモード</h2>
73
74 <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>
75
76 <p>手順:</p>
77
78 <ol>
79         <li>Copy all files from the <code>/extra/fancyurls</code> ディレクトリにある<code>index.html</code>以外の全部のファイルをルートディレクトリ(<code>index.php</code> と <code>action.php</code>があるディレクトリ)にコピーします。</li>
80         <li>すでにルートディレクトリに<code>.htaccess</code>ファイルを設置している方はまず現在の<code>.htaccess</code>ファイルをダウンロード後に今回の <code>/extra/fancyurls</code> ディレクトリにある<code>.htaccess</code>ファイルの中身を追加してください。(FTPソフトでは標準設定では<code>.htaccess</code>ファイルは見えないことが多いので、確認方法を調べた上で存在を確認してください。)<br />
81         <code>.htaccess</code>ファイルを設置していなかった方は<code>/extra/fancyurls</code> ディレクトリにある<code>.htaccess</code>ファイルをそのまま使用してください。</li>
82         <li>「<code>fancyurls.config.php</code>」という名前のファイルの中の<code>$CONF['Self']</code>の値を自分のトップページのURLとします。 <br /><strong>重要: URLの末尾にスラッシュは<em>絶対に</em>入れないでください。</strong></li>
83         <li>同様に<code>index.php</code>ファイルの<code>$CONF['Self']</code>の値を編集(引用符の中を削除)します。これをやらないと、URLが<code>index.php/item/1234</code>などとおかしくなります。</li>
84         <li>これらの新しくルートディレクトリに追加したファイルをサーバにアップロードします。</li>
85         <li>最後に、管理エリアのグローバル設定においてURLモードを「FancyURLモード」に変更します。</li>
86         <li>これで完了です。</li>
87 </ol>
88
89 <p>もしページが正常に表示されない場合(Internal Server Errorなどと表示される場合)は、残念ですがこの対策は使えません。上の作業で追加したファイルを速やかに削除し(<code>.htaccess</code>ファイルの削除も忘れずに)、管理エリアのグローバル設定においてURLモードを元に戻してください。</p>
90
91
92 <a name="searchengines-rewrite"></a>
93 <h2>mod_rewrite</h2>
94
95 <p>
96 次に紹介する対策はApacheサーバを使用していて、かつ、「mod_rewrite」の使用が許可されている環境でのみ有効な方法です。アクセスするページがhtmlファイルであるかのようにみせかける方法です。
97 </p>
98
99 <p>
100 ルートディレクトリに「<code>.htaccess</code>」という名前のファイル(ファイル名の先頭はピリオドです)を作成し、以下の内容を書き込みます:
101 </p>
102
103 <pre>
104 RewriteEngine On
105 RewriteRule ^archive-([0-9]+)-([0-9]+)-([0-9]+).html+ index.php?archive=$2-$3&amp;blogid=$1
106 RewriteRule ^item-([0-9]+).html+ index.php?itemid=$1
107 RewriteRule ^archivelist-([a-z]+).html+ index.php?archivelist=$1
108 </pre>
109
110 <p>
111 このファイルを <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 ファイルを削除してください。
112 </p>
113
114 <p>
115 成功していたら、次にこのURLにジャンプするようにテンプレートを書き換えます。上のURL例をリンク先とする場合は、アーカイブリスト(アーカイブ一覧ページ)で指定しているテンプレートの「アーカイブ一覧の本体」の部分を以下のように変更します:
116 </p>
117
118 <pre>
119 &lt;a href="archive-&lt;%blogid%&gt;-&lt;%year%&gt;-&lt;%month%&gt;.html"&gt;...&lt;/a&gt;
120 </pre>
121
122 <p>
123 これで検索エンジン対策の説明はおしまいです。あとは検索ロボットが到来するのを待ってみましょう。
124 </p>
125
126
127 <h1>ファイルとディレクトリのパーミッション変更ガイド <a name="filepermissions" href="#top" class="toplink"><img src="icon-up.gif" width="15" height="15" alt="back to top" /></a></h1>
128
129 <p>
130 Nucleusのいくつかの機能を正常動作させるためにはパーミッションの変更作業が必要となります。ここではFTPソフト(FTPクライアント)を使ってパーミッションを変更する方法を紹介しておきます。
131 </p>
132 <p>
133 まずはパーミッション変更ができるFTPソフト(FTPクライアント)を入手します。英語ガイドでは「CuteFTP」というソフトを例にとって説明されていますが、シェアウェアであり日本ではメジャーではないのでOS別に分けて説明します。</P>
134
135 <h2>Windows</h2>
136 <p>
137 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>』をご覧下さい。
138 </p>
139
140 <p>
141 まずサーバに接続します。パーミッションを変更したいサーバ側のファイル又はディレクトリをクリックして選択します。(画面右側がサーバに置いてあるディレクトリとファイルのリストとなっています。)
142 </p>
143
144 <p>
145 メニューバーの <tt>コマンド &gt; 属性変更</tt> を選択します。
146 </p>
147
148 <div class="screenshot">
149         <img src="pics/screen4.png" width="370" height="257" alt="menu" />
150 </div>
151
152 <p>
153 パーミッションを設定するウィンドウがポップアップします:
154 </p>
155
156 <div class="screenshot">
157         <img src="pics/screen5.png" width="305" height="189" alt="The window that pops up" />
158 </div>
159
160 <p>
161 このポップアップしたウィンドウの下の方に数字を入れる所がありますから、ここに説明書に記載されている数字(例えば777とか666)を入力してOKボタンを押します。これでおしまいです。
162 </p>
163 <h2>MacOS</h2>
164 <p>
165 MacOS上で動作する日本語が使えるFTPクライアントでは、「Fetch日本語版」が最も人気があるようです。『<a href="http://www.hart.co.jp/fetch/">Fetch日本語版公式ホームページ</a>』よりダウンロードできます。(使い続ける方は有料になります。)
166 </p>
167 <p>
168 パーミッションの変更画面では数字を入力する機能がないようですので、どこにチェックを入れたら(はずしたら)よいかがよくわからない方は『<a href="http://trynext.co.jp/tips/chmod/">TryNext|Fetchによるパーミッション設定</a>』をご覧下さい。代表的なパーミッション設定例と、計算の仕方が説明されています。
169 </p>
170 <p>
171 または、下記の表にチェックを入れてみて指示されているパーミッション値になるようにテストしてみても良いかと思います。
172 (上記のWindows版FTPソフトの設定画面とは縦軸と横軸が逆になっていますので混同しないように。)
173 </p>
174 <SCRIPT language="javascript">
175 <!--//
176 //------------------------------------------------------------
177 //javascript by @うさ http://usagi-js.com/
178 //------------------------------------------------------------
179 var nCurrentValue;
180 function ResetValue()
181 {
182         nCurrentValue = 0;
183 }
184 function CheckValue()
185 {
186         //リセット
187         ResetValue()
188         //全てをチェック
189         if (document.frmSample.chkValue11.checked)
190         {
191                 nCurrentValue = eval(document.frmSample.chkValue11.value);
192         }
193         if (document.frmSample.chkValue12.checked)
194         {
195                 nCurrentValue += eval(document.frmSample.chkValue12.value);
196         }
197         if (document.frmSample.chkValue13.checked)
198         {
199                 nCurrentValue += eval(document.frmSample.chkValue13.value);
200         }
201         if (document.frmSample.chkValue21.checked)
202         {
203                 nCurrentValue += eval(document.frmSample.chkValue21.value);
204         }
205         if (document.frmSample.chkValue22.checked)
206         {
207                 nCurrentValue += eval(document.frmSample.chkValue22.value);
208         }
209         if (document.frmSample.chkValue23.checked)
210         {
211                 nCurrentValue += eval(document.frmSample.chkValue23.value);
212         }
213         if (document.frmSample.chkValue31.checked)
214         {
215                 nCurrentValue += eval(document.frmSample.chkValue31.value);
216         }
217         if (document.frmSample.chkValue32.checked)
218         {
219                 nCurrentValue += eval(document.frmSample.chkValue32.value);
220         }
221         if (document.frmSample.chkValue33.checked)
222         {
223                 nCurrentValue += eval(document.frmSample.chkValue33.value);
224         }
225         //表示
226         document.frmSample.txtTotal.value=nCurrentValue;
227 }
228 //-->
229 </SCRIPT>
230
231 <table align="center"><tr>
232 <FORM name="frmSample">
233 <td> </td>
234 <td >読む</td>
235 <td>書込</td>
236 <td>検索/実行</td>
237 </tr>
238 <tr>
239 <td>オーナー</td>
240 <td><INPUT type="checkbox" name="chkValue11" value="400" onClick="CheckValue()"></td>
241 <td><INPUT type="checkbox" name="chkValue12" value="200" onClick="CheckValue()"></td>
242 <td><INPUT type="checkbox" name="chkValue13" value="100" onClick="CheckValue()"></td>
243 </tr>
244 <tr>
245 <td>グループ</td>
246 <td><INPUT type="checkbox" name="chkValue21" value="40" onClick="CheckValue()"></td>
247 <td><INPUT type="checkbox" name="chkValue22" value="20" onClick="CheckValue()"></td>
248 <td><INPUT type="checkbox" name="chkValue23" value="10" onClick="CheckValue()"></td>
249 </tr>
250 <tr>
251 <td>全員</td>
252 <td><INPUT type="checkbox" name="chkValue31" value="4" onClick="CheckValue()"></td>
253 <td><INPUT type="checkbox" name="chkValue32" value="2" onClick="CheckValue()"></td>
254 <td><INPUT type="checkbox" name="chkValue33" value="1" onClick="CheckValue()"></td>
255 </tr>
256 <tr>
257 <td colspan="4">
258 パーミッション値(直接入力はできません)<br>
259 <INPUT type="text" name="txtTotal" readonly>
260
261 </td>
262 </FORM>
263
264
265 </tr></table>
266
267
268 <h1>バックアップをリストア(復元)する方法 <a name="backups" href="#top" class="toplink"><img src="icon-up.gif" width="15" height="15" alt="back to top" /></a></h1>
269
270 <p>
271 Nucleus には最高管理者が使うことができるデータベースのバックアップ機能があります。定期的に(週1回など)バックアップを取られることを強くおすすめします。 生成されるバックアップファイルはスタンダードなSQLクエリ文です。バックアップを取った時点のデータベース状態に再構成するコマンドが書かれています。
272 </p>
273
274 <p>
275 バックアップが作成できればリストアも簡単にできるはずですが、何らかの理由によりリストアが成功しないケースも考えられます。そこで、万が一管理エリアからリストアができない場合でも、データを書き戻す方法をいくつか紹介しておきます:
276 </p>
277
278 <div class="note">
279 バックアップ作成時にzip圧縮を選択していた方はまず最初に解凍してください(中身はsqlファイルです)。
280 </div>
281
282
283 <h2>方法その1: ブラウザ上にて行う方法</h2>
284
285 <p>
286 <a href="http://phpmyadmin.sourceforge.net/">PHPMyAdmin</a>のようなブラウザでデータベースを操作できる状態の方は、ローカルにあるsqlファイルをデータベースに取り込む機能が付いているはずですので、この機能を使用してみてください。
287 </p>
288
289 <h2>方法その2: Shellにアクセスして作業する方法</h2>
290
291 <p>
292 Shellにアクセスできる状態の方は、mysqlプログラムを実行して下記のようなコマンドを叩けばリストアできます:
293 </p>
294
295 <pre>
296 mysql -u <i>username</i> -p -h <i>hostname</i> <i>databasename</i> &lt; <i>backupfile.sql</i>
297 </pre>
298
299
300 <h1>新しくweblogを作成する方法 <a name="newblog" href="#top" class="toplink"><img src="icon-up.gif" width="15" height="15" alt="back to top" /></a></h1>
301
302 <h2>1. 新規weblogの作成</h2>
303
304 <p>最高管理者としてログインすると「新規weblog作成」メニューが使用できます。ここで画面の指示に従って作成してください。</p>
305
306 <h2>2. 作成したweblogにアクセスする</h2>
307
308 <p>新しく追加されたweblogにアクセスする方法はいくつかあります。</p>
309
310 <ol>
311         <li>URLにて<strong><code>blogid</code>の値</strong>を指定する:
312                 <pre><code>http://yourhost.com/index.php?blogid=<i>2</i></code></pre>
313                 (作成したweblogのblogidは管理エリアのトップページにあるblog一覧の中の該当blogのリンク先を見ればわかります。)
314         </li>
315         <li>
316                 アクセス専用のphpファイルを作成する:
317                 <pre><code>$CONF['Self'] = '<i>copy.php</i>';
318 include('./config.php');
319 selectBlog('<i>shortblogname</i>');
320 selector();
321
322 ?></code></pre>
323                 上のような内容の「<tt>copy.php</tt>」という名前(この名前は一例です)のファイルをルートディレクトリに作成し、これにアクセスすると新しく追加されたblogが表示されます。
324                 (作成したweblogの短縮名はは管理エリアのトップページにあるblog一覧の中から該当blogの設定画面に入るとわかります。)
325         </li>
326 </ol>
327
328 <h2>アクセス専用phpファイルの中で使用できるコマンド</h2>
329
330 <p>上記のサンプル内で使用している <tt>selectBlog</tt> というコマンドは、アクセス専用phpファイルにて使用できるコマンドの一例です。他にも使用できるコマンドがありますので紹介しておきます:</p>
331
332 <table><tr>
333         <th>コマンド</th>
334         <th>意味</th>
335 </tr><tr>
336         <td><code>selectBlog('shortblogname');</code></td>
337         <td>「shortblogname」という短縮名のblogを表示させる<br />
338         (* URLにて指定するblogidの方が優先されます。URLにて指定がない場合にこの指定が使われます)
339         </td>
340 </tr><tr>
341         <td><code>selectSkin('skinname');</code></td>
342         <td>「skinname」という名前のスキンを適用してページ表示する<br />
343         (* URLにて指定するskinidの方が優先されます。URLにて指定がない場合にこの指定が使われます)
344         </td>
345 </tr><tr>
346         <td><code>selectCategory(1234);</code></td>
347         <td>IDが「1234」のカテゴリを選択した状態でページ表示する<br />
348         (* URLにて指定するcatidの方が優先されます。URLにて指定がない場合にこの指定が使われます)<br />
349         この指定にはカテゴリ名を指定する事もができますが、複数blogが存在している場合は同じカテゴリ名があることが考えられますのでID指定の方が無難でしょう。</td>
350 </tr><tr>
351         <td><code>selectItem(1234);</code></td>
352         <td>IDが「1234」の記事を選択した状態でページ表示する<br />
353         (* URLの指定が優先されます。URLにて指定がない場合にこの指定が使われます)</td>
354 </tr><tr>
355         <td><code>selectLanguage('french');</code></td>
356         <td>言語を「french」にしてページ表示する
357          (PHPエラーが出る可能性がありますので注意してください)</td>
358 </tr></table>
359
360 <p>
361 アクセス専用phpファイルの中にこれらのコマンドを書く時は、コードの順番に留意してください。これらのコマンドは、<code>include('./config.php')</code>よりも<strong>後に</strong>書き、かつ、<code>selector();</code>という行よりも<strong>前に</strong>書かなくては反映されません。
362 </p>
363
364 <h2>サブディレクトリに新しいblogを配置する場合</h2>
365
366 <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>
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382 <h1>XHTML サポートについて <a name="xhtml" href="#top" class="toplink"><img src="icon-up.gif" width="15" height="15" alt="back to top" /></a></h1>
383
384 <p>
385 自分のページのソースコードを見た時、<code>&lt;br /&gt;</code>のようなタグコードにお気付きかと思います。これは、Nucleusが自動生成するコードがW3Cにて策定されているXHTML 1.0 standard(HTML4継承)に則っているからです。webの将来性を鑑みてこのようにしております。知る限りでは、XHTML形式の記述が古いブラウザとの互換性を損なってはいないようです。
386 </p>
387
388 <p>
389 ですから、スキンとテンプレートの記述でミスを犯していなければ完全なXHTML準拠のソースコードが生成されるはずです。1点だけ付け加えておきますと、標準添付のスキンでは、敢えてdoctypeを「HTML 4 Loose」と宣言しております。これは、XHTML準拠でないコードをスキンやテンプレートや記事内に登録してしまい、正常にページ表示ができなくなる可能性を回避する為です。
390 </p>
391
392
393
394 </body>
395 </html>