こいちゃんの趣味全開!!

クリエイターズネットワーク参加サイトのひとつ。趣味を書き綴ります。そこのあなた、お願い、ひかないでーっ。

PHPで動く掲示板プログラム インストール方法

2012.12/21 by こいちゃん

このプログラムのインストール解説です。CentOS 5.8でやってみました。

必要なソフトウェアのインストールが済んでいることが前提です。

インストールステップ

  1. ファイルのダウンロード
  2. ファイルの設置
  3. アクセス権の設定
  4. データベースの設定
  5. 設定ファイルの書き換え

1、ファイルのダウンロード

各解説ページから必要なファイルをダウンロードします。
テキストエディタ(Windowsならメモ帳、TeraPad等)を開き、各解説ページの頭にあるソースコードを丸々コピー&ペーストします。ファイル名はそれぞれの投稿件名を指定してください。
ディレクトリの構造は次のようになります。

/ 最低限必要なファイル
|- /wwwroot
| |- index.php
| |- bbs.php
| |- load.php
| |- write.php
| |- basic.css
| |- bbs.css
| |- load.css
| |- auth.css
| |- readme.html (→説明はindex.phpのページにあります)
|
|- /include
| |- config.php
| |- function.php
| |- login.php
最低限これだけあれば掲示板として機能します。ただし、これしかないと管理者に負担が集中し、管理にある程度のHTML、PHP、MySQLの知識を必要とするうえ、いくつかのリンクが切れてしまうのでスクリプトの編集が必要となります。

/ あると便利なファイル
|- /wwwroot
| |- user-config.php
| |- readonly.php
| |- readonly.css
|
|- /include
| |- <特になし>
これがあればユーザーが各自でパスワードを変更することができるようになります。また過去ログの閲覧ができるようになります。ここまでで一般ユーザーが使うページは全てです。一般ユーザーが使う部分にはリンク切れが発生しないと思います。

/ まだアップロードされていないファイル
|- /wwwroot
| |- admin.php
| |- admin-tools.php
| |- admin.css
|
|- /include
| |- <特になし>
出来るだけ早く用意したいと思います。
管理用のスクリプト群です。一般ユーザーは使いません。管理者にMySQLなどの知識があるなら、これらのスクリプトは不要です。場合によっては直接データベースを操作したほうが簡単に済むかもしれません。
ある程度の知識があるのなら、セキュリティーホールになるこれらのスクリプトをあえて使わない、という選択肢もあるのではないでしょうか。

2、ファイルの設置

必要なファイルをダウンロードしたら、サーバーにファイルを設置します。

/wwwroot下のファイルはWEBサーバーのPHPが使える公開領域(例: /var/www/html、/home/<ユーザー名>/public_htmlなど)にコピーします。

/include下のファイルはphp.iniのinclude_pathに指定されたディレクトリコピーします。
WEBサーバーの公開領域にまとめて保存してもいいのですが、そうするとPHPが実行されない、セキュリティーホールがある、などの場合にデータベースの設定が流出していしまいます。レンタルサーバーなど、制限の厳しいサーバーを使っているのなら/wwwrootと同じディレクトリに保存してください。

3、アクセス権の設定

保存したファイルのアクセス権を設定します。PHPスクリプトは、デフォルトの8進数644(rw-r–r– 自分のみ読み書き可、他の人は読み込み可)では走りません。念のため、HTML・CSSファイルもアクセス権を変更します。

PHPファイル(拡張子: .php)をまとめて実行可能にします。
実際に打ち込む文字列を太字にしています。
[user@server ~]$ #スクリプトを設置したディレクトリに移動します。
[user@server ~]$ cd ~/public_html/bbs/
[user@server bbs]$ chmod 755 ./
[user@server bbs]$ chmod -R 755 `find -name “*.php”`
[user@server bbs]$ chmod -R 644 `find -name “*.css”`
[user@server bbs]$ chmod -R 644 `find -name “*.html”`
[user@server bbs]$ # includeディレクトリ下のファイルもアクセス権を設定します。
[user@server bbs]$ cd ~/include_html/bbs/
[user@server bbs]$ chmod 755 ./
[user@server bbs]$ chmod -R 755 `find -name “*.php”`
[user@server bbs]$ chmod -R 644 `find -name “*.css”`
[user@server bbs]$ chmod -R 644 `find -name “*.html”`
[user@server bbs]$ # SELinuxをお使いの方は、次のコマンドが必要になる場合があります。
[user@server bbs]$ cd
[user@server ~]$ restorecon -R ~/public_html/
[user@server ~]$ restorecon -R ~/include_html/

4、データベースの設定

MySQLに、記事を保存するためのデータベースとテーブル、アクセスするためのアカウントを作成します。

[user@server ~]$ mysql -u root -p
Enter password: <データベース管理者のパスワード>
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13646
Server version: 5.0.95 Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql> CREATE DATABASE bbs;

Query OK, 1 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON bbs.* TO <掲示板保存用ユーザー名>@localhost IDENTIFIED BY ‘<掲示板保存用パスワード>’;

Query OK, 0 rows affected (0.00 sec)

mysql> exit;
Bye.
[user@server ~]$ #一般ユーザーでログインできるか、テーブルの作成・レコードの追加ができるか試します。
[user@server ~]$ mysql -u <掲示板保存用ユーザー名> -p
Enter password: <掲示板保存用パスワード>
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13646
Server version: 5.0.95 Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
# 操作するデータベースを選択します。
mysql> use bbs;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
# mainスレッド(参加者が誰でも書き込みできる特殊なスレッド)を作成します。
mysql> CREATE TABLE main(
id int NOT NULL PRIMARY KEY AUTO_INCREMENT,
user int NOT NULL,
subject varchar(100),
body mediumtext,
date char(25),
ip_addr varchar(39),
browser varchar(200),
monospace int);
Query OK, 0 rows affected (0.05 sec)

# スレッドごとのユーザーのアクセス権を保存するテーブルを作成します。
mysql> CREATE TABLE access(
id int NOT NULL PRIMARY KEY AUTO_INCREMENT,
table_name varchar(32) NOT NULL UNIQUE,
bbs_name varchar(32) UNIQUE);
Query OK, 0 rows affected (0.03 sec)

# 認証情報を保存するテーブルを作成します。
mysql> CREATE TABLE auth(
id int NOT NULL PRIMARY KEY AUTO_INCREMENT,
username varchar(32) NOT NULL UNIQUE,
password varchar(32));
Query OK, 0 rows affected (0.03 sec)

# 管理者アカウント(すべてのスレッドに読み込みのみのアクセス権を持つ)を作成します。
mysql> INSERT INTO auth (username, password) VALUES (admin, <掲示板の管理者パスワード>);
Query OK, 1 rows affected (0.03 sec)

# 一般ユーザーに割り当てるIDを10以降にするため、自動連番補完を開始する数を変更します。
mysql> ALTER TABLE auth AUTO_INCREMENT = 10;
Query OK, 1 rows affected (0.01 sec)

mysql> exit;
Bye.
[user@server ~]$

5、設定ファイルの書き換え

config.phpの解説ページを参考に、環境に合わせて変数に代入する文字列を書き換えます。

6、インストール完了

これでインストールは終了です。ページにアクセスし、管理者ユーザーでログインしてみて下さい。

もしエラーが発生していれば、WEBサーバーのログファイルに記載されているはずです。
config.php以外でエラーが発生している場合はコメント専用ページ、またはIRCでお知らせください。

Tags: , ,

Posted in PHPで動く掲示板プログラム |

Comments are closed.