ここの情報は古いです。ご理解頂いた上でお取り扱いください。

source: OpenPNE/trunk/setup/OpenPNE_Setup_pgsql.html

Last change on this file was 12596, checked in by imamura623, 12 years ago

#4226:アルバム投稿の旧形式アドレスの修正

File size: 19.1 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<html>
3<head>
4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5<meta http-equiv="Content-Style-Type" content="text/css">
6<title>OpenPNE セットアップガイド</title>
7<style type="text/css">
8<!--
9body {
10  background-color: #fff;
11  color: #000;
12  margin: 0px;
13  padding: 1em;
14  padding-right: 2em;
15}
16h2 {
17  margin: 2em 0 1em;
18}
19p.caution {
20  margin: 1em;
21  padding: 0.8em;
22  border: solid 1px #f63;
23}
24pre {
25  margin: 0.5em;
26  padding: 1em 2em;
27  background-color: #eee;
28}
29dl {
30  margin: 1em 2em;
31}
32dt {
33  font-weight: bold;
34}
35dd {
36  margin: 0 0 0.5em 3em;
37}
38table {
39  margin: 1em;
40  border-collapse: collapse;
41}
42th {
43  background-color: #ddd;
44}
45th, td {
46  padding: 5px 10px;
47  border: solid 1px #000;
48}
49var {
50  color: #922;
51}
52em {
53  font-weight: bold;
54  font-style: normal;
55}
56-->
57</style>
58</head>
59
60<body>
61
62<h1>OpenPNE セットアップガイド</h1>
63
64<p>最終更新日: 2009/08/10</p>
65
66<h2>目次</h2>
67<ul>
68<li><a href="#section0">0. はじめに</a></li>
69<li><a href="#section1">1. ファイルの設置</a></li>
70<li><a href="#section2">2. 設定ファイルの変更</a></li>
71<li><a href="#section3">3. データベースの設定</a>
72  <ul>
73  <li><a href="#section3-1">3-1. PostgreSQL 7.4.x (8.0.x, 8.1.x 含む) の場合</a></li>
74  </ul></li>
75<li><a href="#section4">4. サーバ設定</a>
76  <ul>
77  <li><a href="#section4-1">4-1. Apacheの設定</a></li>
78  <li><a href="#section4-2">4-2. メールサーバの設定</a></li>
79  <li><a href="#section4-3">4-3. cronの設定</a></li>
80  </ul></li>
81<li><a href="#section5">5. セットアップモジュールの実行</a></li>
82<li><a href="#section6">6. 管理画面の設定</a>
83  <ul>
84  <li><a href="#section6-1">6-1. 管理画面へのアクセス</a></li>
85  <li><a href="#section6-2">6-2. 管理画面のモジュール名を変更</a></li>
86  <li><a href="#section6-3">6-3. 管理画面を別ドメインで運用</a></li>
87  </ul></li>
88</ul>
89
90<hr>
91
92<h2 id="section0">0. はじめに</h2>
93
94<p>この文書は、OpenPNE バージョン2.14 を基にして書かれています。</p>
95<p>OpenPNE は以下のようなサーバ環境で動作させることを想定しています。</p>
96<dl>
97<dt>Webサーバ</dt>
98<dd>Apache を推奨</dd>
99<dt>PHP</dt>
100<dd>PHP 4.3.3 以降 / 5.0.x / 5.1.x
101        <ul>
102        <li>PHP の mbstring 拡張モジュールを使用可能</li>
103        <li>PHP の XML 拡張モジュールを使用可能</li>
104        <li>PHP の PCRE 拡張モジュールを使用可能 (UTF-8 サポート)</li>
105        <li>PHP から GD ライブラリを使用可能 (JPEG/GIF/PNG サポート)
106                <ul><li>ImageMagick を使う場合でも必要となります</li></ul>
107        </li>
108        <li>PHP の mcrypt 拡張モジュールの使用を推奨</li>
109        </ul></dd>
110<dt>データベースサーバ</dt>
111<dd>PostgreSQL 7.4.x / 8.0.x / 8.1.x  (※8.2.x 以降は未対応です)</dd>
112<dt>メールサーバ (携帯からメール投稿する場合)</dt>
113<dd>Postfix 2.1.x 以降を推奨 (Postfix 以外のメールサーバでも動作報告あり)</dd>
114</dl>
115
116<h2 id="section1">1. ファイルの設置</h2>
117
118<p>OpenPNE に含まれるディレクトリ、ファイルを以下のようにWebサーバ上に設置してください。</p>
119
120<pre>
121- <var>OPENPNE_DIR</var>
122  ├ bin
123  ├ lib          &lt;--- <var>OPENPNE_LIB_DIR</var>
124  ├ var          &lt;--- <var>OPENPNE_VAR_DIR</var>
125  │ ├ function_cache [777]
126  │ ├ img_cache
127  │ │ ├ gif [777]
128  │ │ │ ├ w_h [777]
129  │ │ │ ├ w_h_raw [777]
130  │ │ │ ├ w76_h76 [777]
131  │ │ │ ├ w120_h120 [777]
132  │ │ │ ├ w180_h180 [777]
133  │ │ │ ├ w240_h320 [777]
134  │ │ │ └ w600_h600 [777]
135  │ │ ├ jpg [777]
136  │ │ │ ├ w_h [777] 
137  │ │ │    ... [777]
138  │ │ └ png [777]
139  │ │    ├ w_h [777]
140  │ │       ... [777]
141  │ ├ log [777]
142  │ ├ rss_cache [777]
143  │ ├ templates_c [777]
144  │ └ tmp [777]
145  ├ webapp       &lt;--- <var>OPENPNE_WEBAPP_DIR</var>
146  ├ webapp_biz   &lt;--- <var>OPENPNE_WEBAPP_BIZ_DIR</var>
147  └ webapp_ext   &lt;--- <var>OPENPNE_WEBAPP_EXT_DIR</var>
148
149(ブラウザから閲覧可能)
150- <var>public_html</var> (ディレクトリ名は変更可能)
151  ├ config.inc.php (<var>OPENPNE_DIR</var> ディレクトリを指定)
152  ├ index.php
153     ...
154
155※[777]は例です。環境に合わせて適切な値に読み替えてください。
156</pre>
157
158<p><var>public_html</var> のパスとディレクトリ名は変更することができます。</p>
159<p><var>public_html</var> のパスを <var>OPENPNE_DIR</var> ディレクトリの直下(デフォルト配置)以外に変更した場合は、
160<var>public_html</var> 直下にある config.inc.php の内容を書き換えてください。</p>
161<p><var>public_html</var> のディレクトリ名を変更した場合は、後の「2. 設定ファイルの変更」で、
162<em>OPENPNE_PUBLIC_HTML_DIR</em> の内容を書き換えてください。</p>
163
164<p>また、<var>OPENPNE_DIR</var>/var 以下の<strong>全ディレクトリ</strong>にウェブサーバからの書き込み権限(例えば 777)を与えてください。</p>
165<pre>
166$ chmod -R 0777 var/*
167</pre>
168
169<hr>
170
171<p>OpenPNE 2.2 からは画像のキャッシュディレクトリを <var>public_html</var> 以下に置き、Apache から直接読み込みを行うようにすることもできます。
172(OpenPNE の設定ファイル config.php で、<em>OPENPNE_IMG_CACHE_PUBLIC</em> を true にしてください)</p>
173
174<p>この機能を有効にする場合、Apache の設定で mod_rewrite を有効にし、.htaccess を使用可能にするかもしくは同様の内容を httpd.conf に記述する必要があります。</p>
175
176<pre>
177- <var>OPENPNE_DIR</var>
178  ├ bin
179  ├ lib          &lt;--- <var>OPENPNE_LIB_DIR</var>
180  ├ var          &lt;--- <var>OPENPNE_VAR_DIR</var>
181  │ ├ log [777]
182  │ ├ rss_cache [777]
183  │ ├ templates_c [777]
184  │ └ tmp [777]
185  ├ webapp       &lt;--- <var>OPENPNE_WEBAPP_DIR</var>
186  ├ webapp_biz   &lt;--- <var>OPENPNE_WEBAPP_BIZ_DIR</var>
187  └ webapp_ext   &lt;--- <var>OPENPNE_WEBAPP_EXT_DIR</var>
188
189(ブラウザから閲覧可能)
190- <var>public_html</var> (ディレクトリ名は変更可能)
191  ├ config.inc.php (<var>OPENPNE_DIR</var> ディレクトリを指定)
192  ├ index.php
193  ├ img
194  │ ├ .htaccess
195  │ ├ index.php
196  │ ├ gif [777]
197  │ │ ├ w_h [777]
198  │ │ ├ w_h_raw [777]
199  │ │ ├ w76_h76 [777]
200  │ │ ├ w120_h120 [777]
201  │ │ ├ w180_h180 [777]
202  │ │ ├ w240_h320 [777]
203  │ │ └ w600_h600 [777]
204  │ ├ jpg [777]
205  │ │ ├ w_h [777]
206  │ │    ... [777]
207  │ └ png [777]
208  │    ├ w_h [777]
209  │       ... [777]
210     ...
211
212※[777]は例です。環境に合わせて適切な値に読み替えてください。
213</pre>
214
215
216<h2 id="section2">2. 設定ファイルの変更</h2>
217
218<p>
219<var>OPENPNE_DIR</var>/config.php.sample を
220<var>OPENPNE_DIR</var>/config.php にコピーして config.php の方を環境に合わせて編集します。</p>
221
222<dl>
223<dt>OPENPNE_URL</dt>
224    <dd>ベースURL(絶対パス)</dd>
225<dt>DSN</dt>
226    <dd>(PostgreSQLの)データベースへ接続するための情報です。<br>
227    使用データベース、接続用ユーザー名、パスワード、サーバホスト名、データベース名を設定します。<br>
228    config.php
229<pre>
230// 使用するデータベースにPostgreSQLを指定。
231'phptype'  =&gt; 'pgsql'
232</pre></dd>
233<dt>ENCRYPT_KEY</dt>
234        <dd>メンバーのログイン情報を暗号化する際に使用するキー(56バイト以内のASCII文字)<br>
235        他人に推測されにくい文字列にしてください。</dd>
236<dt>MAIL_SERVER_DOMAIN</dt>
237        <dd>メールサーバのドメイン名(携帯版でメール投稿をする場合に使います)</dd>
238<dt>AMAZON_ACCESS_KEY_ID</dt>
239        <dd>Amazon Web Service 公開アクセスキー(レビューの投稿に使用します)<br>
240        詳細はこちらをご覧下さい。 Amazon Product Advertising API <a href="https://affiliate.amazon.co.jp/gp/advertising/api/detail/main.html" target="_blank">https://affiliate.amazon.co.jp/gp/advertising/api/detail/main.html</a></dd>
241<dt>AMAZON_SECRET_ACCESS_KEY</dt>
242        <dd>Amazon Web Service 秘密キー(レビューの投稿に使用します)<br>
243        詳細はこちらをご覧下さい。 Amazon Product Advertising API <a href="https://affiliate.amazon.co.jp/gp/advertising/api/detail/main.html" target="_blank">https://affiliate.amazon.co.jp/gp/advertising/api/detail/main.html</a></dd>
244</dl>
245
246<p>必要に応じて、その他の設定も書き換えてください。
247デバッグモードの設定(<em>OPENPNE_DEBUGGING</em>)は、本番運用に移行する際には 0 にしておくことをおすすめします。</p>
248
249<p><var>public_html</var> のディレクトリ名を変更した場合は、 <em>OPENPNE_PUBLIC_HTML_DIR</em> を変更したディレクトリ名に書き換えてください。</p>
250
251<p class="caution">PHPの設定でセーフモードが有効な場合は、<em>MAIL_SET_ENVFROM</em> を false に設定してください。</p>
252
253
254<h2 id="section3">3. データベースの設定</h2>
255
256<h3 id="section3-1">3-1. PostgreSQL 7.4.x (8.0.x, 8.1.x 含む) の場合</h3>
257
258<p>新しくデータベースを作成する場合、以下のようなコマンドを実行してデータベースを作成します。
259(※レンタルサーバ等で既にデータベースが用意されている場合は実行する必要はありません)</p>
260
261<pre>
262$ createdb -U username DBNAME -E 'UTF-8'
263</pre>
264
265<p>準備したデータベース(例:DBNAME)上で、以下のSQL文を順番に実行します。</p>
266<ol>
267<li><var>OPENPNE_DIR</var>/setup/sql/postgres74/install/install-2.14-create_tables.sql</li>
268<li><var>OPENPNE_DIR</var>/setup/sql/postgres74/install/install-2.14-insert_data.sql</li>
269</ol>
270
271<p>PNEBIZを使用する場合は上記に加えて、以下のSQL文を実行してください。</p>
272<ul>
273<li><var>OPENPNE_DIR</var>/setup/sql/postgres74/option/pnebiz-header.sql</li>
274</ul>
275
276<div>
277<em>[実行例]</em>
278<pre>
279(1) データベース作成 (省略可)
280    $ createdb -U username DBNAME -E 'UTF-8'
281
282(2) OpenPNEセットアップ用SQL実行
283    $ cd setup/sql/postgres74/install/
284    $ psql DBNAME -U username -f install-2.14-create_tables.sql
285    $ psql DBNAME -U username -f install-2.14-insert_data.sql
286
287(3) PNEBIZ用SQL実行 (オプション)
288    $ cd ../option
289    $ psql DBNAME -U username -f pnebiz-header.sql
290</pre>
291</div>
292
293
294<h2 id="section4">4. サーバ設定</h2>
295
296<p>レンタルサーバ等で設定済みの場合は読み飛ばしてください。</p>
297
298<h3 id="section4-1">4-1. Apacheの設定</h3>
299
300<p>httpd.confを修正し、</p>
301<ul>
302<li>DirectoryIndex に index.php を追加します。</li>
303<li><var>public_html</var> にアクセスできるようにドキュメントパスを通します。</li>
304</ul>
305
306<p><em>[設定例]</em></p>
307<div>
308バーチャルホストを使ったhttpd.confの設定例
309<pre>
310&lt;VirtualHost *:80&gt;
311    ServerName        openpne.example.com
312    DocumentRoot      /home/username/OpenPNE/public_html/
313    DirectoryIndex    index.html index.php
314&lt;/VirtualHost&gt;
315</pre>
316</div>
317
318<p>httpd.confを修正したら、Apacheを再起動してください。</p>
319
320<h3 id="section4-2">4-2. メールサーバの設定</h3>
321
322<p>携帯版を使用しない場合は以下の設定は不要です。</p>
323
324<p>MAIL_SERVER_DOMAIN に届くメールで、以下のメールアドレスはシステムで利用されます。</p>
325
326<table>
327<tr><th>項目</th><th>新形式</th><th>旧形式</th></tr>
328<tr><td>新規登録 / ログインURL取得</td><td>get@MAIL_SERVER_DOMAIN</td><td>get@MAIL_SERVER_DOMAIN</td></tr>
329<tr><td>プロフィール写真変更</td><td>p<var>XXX</var>-<var>YYY</var>@MAIL_SERVER_DOMAIN</td><td>p<var>XXX</var>@MAIL_SERVER_DOMAIN</td></tr>
330<tr><td>コミュニティ掲示板メール投稿</td><td>t<var>XXX</var>-<var>YYY</var>@MAIL_SERVER_DOMAIN</td><td>t<var>XXX</var>@MAIL_SERVER_DOMAIN</td></tr>
331<tr><td>日記メール投稿</td><td>b<var>XXX</var>-<var>YYY</var>@MAIL_SERVER_DOMAIN</td><td>blog@MAIL_SERVER_DOMAIN</td></tr>
332<tr><td>日記写真変更</td><td>bi<var>XXX</var>-<var>YYY</var>@MAIL_SERVER_DOMAIN</td><td>bi<var>XXX</var>@MAIL_SERVER_DOMAIN</td></tr>
333<tr><td>コミュニティ写真変更</td><td>ci<var>XXX</var>-<var>YYY</var>@MAIL_SERVER_DOMAIN</td><td>ci<var>XXX</var>@MAIL_SERVER_DOMAIN</td></tr>
334<tr><td>トピック・イベント写真変更</td><td>ti<var>XXX</var>-<var>YYY</var>@MAIL_SERVER_DOMAIN</td><td>ti<var>XXX</var>@MAIL_SERVER_DOMAIN</td></tr>
335<tr><td>日記コメントメール投稿</td><td>bc<var>XXX</var>-<var>YYY</var>@MAIL_SERVER_DOMAIN</td><td>bc<var>XXX</var>@MAIL_SERVER_DOMAIN</td></tr>
336<tr><td>アルバム投稿</td><td>a<var>XXX</var>-<var>YYY</var>@MAIL_SERVER_DOMAIN</td><td>album@MAIL_SERVER_DOMAIN</td></tr>
337<tr><td>アルバム画像投稿</td><td>ai<var>XXX</var>-<var>YYY</var>@MAIL_SERVER_DOMAIN</td><td>ai<var>XXX</var>@MAIL_SERVER_DOMAIN</td></tr>
338<tr><td>アルバム表紙投稿</td><td>ac<var>XXX</var>-<var>YYY</var>@MAIL_SERVER_DOMAIN</td><td>ac<var>XXX</var>@MAIL_SERVER_DOMAIN</td></tr>
339</table>
340<ul>
341<li><var>XXX</var> には数字。</li>
342<li><var>YYY</var> には12バイトの英数字([0-9a-f]{12})。</li>
343</ul>
344
345<p>新形式、旧形式のどちらのメールアドレスで受け付けるかは config.phpの設定(MAIL_ADDRESS_HASHED)によって切り替えることができます。</p>
346<p>新形式はメール投稿の際のFromメールアドレス偽装へのセキュリティ対策のために導入されたものです。
347From偽装対策を(IP制限等により)メールサーバ側で行っている場合には旧形式での運用も問題ありません。</p>
348
349<p>メールサーバの転送設定を利用して、これらのメールアドレスへのメールが、以下のコマンドにわたるように設定します。</p>
350<pre>
351"|/usr/bin/php <var>OPENPNE_DIR</var>/bin/mail.php"
352</pre>
353
354<h3 id="section4-3">4-3. cronの設定</h3>
355
356<p><em>[設定例]</em></p>
357
358<p>cronファイルに実行権限の付加。</p>
359<pre>
360$ chmod 0755 bin/*.cron
361</pre>
362
363<p>/etc/crontab に以下を記述。</p>
364<div>
365<pre>
366# 6時にメールを送信&20分毎にRSS更新&5時にvacuum処理
36700   6 * * * root sh <var>OPENPNE_DIR</var>/bin/tool_send_daily_news.cron     <var>OPENPNE_DIR</var>/bin/ [bin_path]/php
36800   6 * * * root sh <var>OPENPNE_DIR</var>/bin/tool_send_birthday_mail.cron  <var>OPENPNE_DIR</var>/bin/ [bin_path]/php
36900   6 * * * root sh <var>OPENPNE_DIR</var>/bin/tool_send_schedule_mail.cron  <var>OPENPNE_DIR</var>/bin/ [bin_path]/php
370*/20 * * * * root sh <var>OPENPNE_DIR</var>/bin/tool_rss_cache.cron           <var>OPENPNE_DIR</var>/bin/ [bin_path]/php
37100   5 * * * root sh <var>OPENPNE_DIR</var>/bin/tool_vacuum_exec.cron         <var>OPENPNE_DIR</var>/bin/ [bin_path]/php
372</pre>
373[bin_path]は、PHP の実行ファイルがインストールされているディレクトリ(例えば、/usr/bin)です。
374</div>
375
376<p>また、デイリーニュース送信用スクリプトは、デイリーニュース送信結果通知ログを出力します。/etc/crontabを以下のように記述し、メールで受け取れるようにすると便利です。</p>
377<div>
378<pre>
37900   6 * * * root sh <var>OPENPNE_DIR</var>/bin/tool_send_daily_news.cron  <var>OPENPNE_DIR</var>/bin/ [bin_path]/php | mail -s "daily news log" example@example.com
380</pre>
381</div>
382
383<h2 id="section5">5. セットアップモジュールの実行</h2>
384
385<p>ブラウザから以下のURLへアクセスしてください。(セットアップ完了後はアクセスすることができません)</p>
386
387<pre>
388<var>OPENPNE_URL</var>?m=setup
389(例) http://openpne.example.com/?m=setup
390</pre>
391
392<p>ここでSNS名、初期メンバー、管理用アカウントを設定します。</p>
393
394
395<h2 id="section6">6. 管理画面へのアクセス</h2>
396
397<h3 id="section6-1">6-1. 管理画面へのアクセス</h3>
398
399<p>以下のURLへアクセスし、セットアップモジュールで設定した管理用アカウント名、パスワードを入力してログインしてください。ログイン後、管理メニューの「SNS設定」からSNSの基本情報の設定をすることができます。</p>
400
401<pre>
402<var>OPENPNE_URL</var>?m=admin
403(例) http://openpne.example.com/?m=admin
404</pre>
405
406<p>また、管理メニューの「管理画面設定 > ページ名ランダム生成」でランダム生成を実行すると管理画面内のページ名を変更することができるので、セキュリティ向上のためセットアップ後に必ず実行しておくことをおすすめします。</p>
407
408<h3 id="section6-2">6-2. 管理画面のモジュール名を変更する (オプション)</h3>
409
410<p>管理画面のURLを変更する場合は、設定ファイル config.php 内にある <em>ADMIN_MODULE_NAME</em> の値を変更してください。</p>
411<div>例えば、abcde に変更した場合、
412<pre>
413<var>OPENPNE_URL</var>?m=abcde
414(例) http://openpne.example.com/?m=abcde
415</pre>
416というURLから管理画面へアクセスすることができます。</div>
417
418<h3 id="section6-3">6-3. 管理画面を別ドメインで運用する (オプション)</h3>
419
420<p>管理画面を通常とは別のドメインで運用したい場合やBasic認証を使用してアクセス制限したい場合など、
421Webサーバから読み込まれる公開ディレクトリを分けて運用したい場合があります。</p>
422
423<p>OpenPNEでは、public_html 以下のファイルを管理画面用の公開ディレクトリにコピーし、config.inc.php の内容を書き換えることによりこれを実現することができます。</p>
424
425<div>
426ディレクトリ構成
427<pre>
428- <var>OPENPNE_DIR</var>
429  ├ bin
430  ├ lib
431  ├ var
432  ├ webapp
433  ├ webapp_ext
434  ├ webapp_biz
435  └ config.php
436
437[http://sns.example.com/]
438- <var>public_html </var>(ディレクトリ名は変更可能)
439  ├ config.inc.php
440  ├ index.php
441     ...
442    <em>↓コピー</em>
443
444[http://admin.example.com/]
445- <var>admin_public_html</var> (ディレクトリ名は変更可能)
446  ├ <em>config.inc.php (←このファイルを書き換える)</em>
447  ├ index.php
448     ...
449</pre>
450</div>
451
452<div>
453config.inc.php (<em>強調部分</em>の2項目を追加します)
454<pre>
455&lt;?php
456/**
457 * @copyright 2005-2008 OpenPNE Project
458 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
459 */
460
461define('OPENPNE_DIR', realpath('../'));
462require_once OPENPNE_DIR . '/config.php';
463
464// 管理画面のベースURL設定
465<em>define('OPENPNE_ADMIN_URL', 'http://admin.example.com/');</em>
466
467// 無効にするモジュール
468<em>$GLOBALS['_OPENPNE_DISABLE_MODULES'] = array('pc', 'ktai');</em>
469?&gt;
470</pre>
471</div>
472
473<p>以上で、管理画面用のURL(例:http://admin.example.com/) でアクセスするための設定は完了です。</p>
474
475<p>一方、通常のURL(例:http://sns.example.com/?m=admin) では管理画面へのアクセスができないようにするために、
476config.php で以下の設定をしておきます。</p>
477
478<div>
479config.php
480<pre>
481// 無効にするモジュール
482$GLOBALS['_OPENPNE_DISABLE_MODULES'] = array('admin', 'setup');
483</pre>
484</div>
485
486<hr>
487
488<p>これでセットアップは完了です。友達を招待してみたり、日記を書いたり、あなただけのSNSを作り上げてください!</p>
489
490</body>
491</html>
Note: See TracBrowser for help on using the repository browser.