Skip to content

RPGウィザードG コミュニティ掲示板 ​

本サイト rpgwizardg.jis.click 上に設置する PHP + SQLite 製の掲示板。

構成 ​

  • 素の PHP 8.x (フレームワークなし、依存ライブラリゼロ)
  • SQLite (ファイル 1 個、data/bbs.sqlite)
  • hCaptcha (新規スレッド作成時のみ)

ディレクトリ ​

bbs/
├── index.php              スレッド一覧
├── thread.php             スレッド表示 + レス投稿フォーム
├── new.php                新規スレッド作成フォーム
├── post.php               投稿処理 (POST 受け)
├── search.php             検索
├── lib/
│   ├── bootstrap.php      共通初期化
│   ├── config.php         設定 (Git 管理)
│   ├── config_local.php   設定上書き (Git 管理外、本番サーバーに手動配置)
│   ├── db.php             SQLite DB
│   ├── util.php           ユーティリティ
│   ├── spam.php           スパム対策
│   └── template.php       テンプレート
├── admin/
│   ├── index.php          管理画面
│   └── .htaccess          BASIC 認証
├── assets/
│   └── style.css          CSS
├── data/                  (書込可、Git 管理外)
│   ├── bbs.sqlite         DB
│   ├── ng_words.txt
│   ├── banned_ips.txt
│   └── backups/           日次バックアップ
├── .htaccess              data/ と lib/ への直アクセス禁止
└── README.md              本ファイル

本番配置手順 (初回) ​

1. ファイルをサーバーへアップロード ​

SFTP で bbs/ ディレクトリを ~/rpgwizardg.jis.click/ 直下に転送。

2. 権限設定 ​

bash
chmod 755 ~/rpgwizardg.jis.click/bbs/
chmod 755 ~/rpgwizardg.jis.click/bbs/data/
chmod 755 ~/rpgwizardg.jis.click/bbs/data/backups/
chmod 644 ~/rpgwizardg.jis.click/bbs/data/ng_words.txt
chmod 644 ~/rpgwizardg.jis.click/bbs/data/banned_ips.txt

3. ローカル設定ファイルを作成 ​

bbs/lib/config_local.php:

php
<?php
return [
    'hcaptcha_site_key' => 'YOUR_SITE_KEY',
    'hcaptcha_secret'   => 'YOUR_SECRET',
    'admin_ip_salt'     => 'RANDOM_32_CHAR_STRING',
    'debug'             => false,
];

4. 管理画面 BASIC 認証 ​

bash
# プライベートフォルダに htpasswd 作成
mkdir -p ~/private
htpasswd -c ~/private/bbs_htpasswd admin

bbs/admin/.htaccess の AuthUserFile のパスを実環境に合わせて修正。

5. 日次バックアップ cron (DreamHost パネルから設定) ​

bash
# 毎日 03:00 に SQLite バックアップ (14 日分保持)
0 3 * * * cd ~/rpgwizardg.jis.click/bbs/data && cp bbs.sqlite backups/bbs-$(date +\%Y\%m\%d).sqlite && find backups/ -name "bbs-*.sqlite" -mtime +14 -delete

6. 動作確認 ​

ブラウザで https://rpgwizardg.jis.click/bbs/ にアクセス。 初回アクセス時に data/bbs.sqlite が自動作成され、ガイダンススレッドが 1 本立つ。

移設手順 ​

bash
# 旧サーバーから
tar czf bbs.tar.gz bbs/

# 新サーバーに展開してパス・権限を初回設置と同様に設定

移設の対象: bbs/ ディレクトリ全体 (data/ 含めると DB も移行)。

ローカル開発 ​

bash
# BBS ディレクトリで PHP 内蔵サーバー
cd site/public/bbs
php -S localhost:8000

# ブラウザで http://localhost:8000/

セキュリティメモ ​

  • DB は data/ 配下、.htaccess で直接アクセスを禁止
  • IP はハッシュ化して保存 (個人情報保護)
  • hCaptcha を新規スレッドに必須
  • 投稿頻度制限 + NG ワードフィルタ + IP BAN
  • 管理画面は BASIC 認証