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.txt3. ローカル設定ファイルを作成
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 adminbbs/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 -delete6. 動作確認
ブラウザで 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 認証
