MYBOARD

스마트폰에서 시작하는 나만의 게시판

MyBoard는 PHP와 SQLite로 동작하는 가벼운 커뮤니티 게시판입니다. 스마트폰과 Termux에서도 직접 설치하고 운영할 수 있습니다.

MyBoard 구성

MyBoard는 별도 외부 서비스 없이 스마트폰의 Termux에서 PHP 내장 서버 또는 Nginx와 PHP-FPM으로 실행할 수 있는 파일 기반 게시판입니다. 웹 요청은 PHP가 처리하고, 게시판 데이터는 SQLite 파일에 저장하며, 업로드 파일은 프로젝트의 data/ 폴더에 저장합니다.

myboard/
├── *.php                 화면, 로그인, 글쓰기, 관리자 기능
├── includes/             공통 헤더, 푸터, 최신글
├── skins/                게시판형, 매거진형, 갤러리형 목록
├── data/board.sqlite     SQLite 데이터베이스
├── data/                 첨부파일과 에디터 이미지
├── schema.sql            테이블과 인덱스 정의
└── styles.css            반응형 화면 스타일

주요 기능

  • 게시판 그룹과 게시판 생성, 메뉴 노출, 정렬 관리
  • 페이지 그룹과 정적 페이지, 상단 메뉴 관리
  • 게시판별 게시판형, 매거진형, 갤러리형 스킨
  • 좌측·우측 사이드바, 반응형 모바일 화면
  • 회원가입, 로그인, 관리자 권한과 게시물 소유권 확인
  • 댓글, 첨부파일, CKEditor 본문 이미지 업로드
  • 메인 최신글, 방문자 통계와 게시물별 이미지 썸네일

데이터베이스

기본 데이터베이스는 data/board.sqlite인 SQLite 파일입니다. 설치 시 다음 영역이 자동으로 준비됩니다.

  • users: 회원, 비밀번호 해시, 관리자 권한
  • board_groups, boards: 게시판 그룹, 게시판, 스킨과 사이드바 설정
  • posts, comments, attachments: 게시물, 댓글, 첨부파일 정보
  • page_groups, pages: 페이지 그룹과 공개 페이지
  • site_stats: 전체 방문자와 오늘 방문자 수

db.php가 실행될 때 schema.sql을 적용하고 필요한 기존 테이블 열을 보완하므로, 업데이트 후에도 데이터베이스 구조를 점진적으로 유지할 수 있습니다.

설치 방법

  1. PHP와 pdo_sqlite, sqlite3 확장을 설치합니다.
  2. MyBoard 파일을 웹 서버의 문서 루트에 배치합니다.
  3. data 폴더를 만들고 PHP 실행 사용자가 읽고 쓸 수 있도록 권한을 설정합니다.
  4. 아래 명령으로 데이터베이스를 초기화합니다.
mkdir -p data uploads
php install.php

uploads/는 기존 파일 호환을 위해 남아 있을 수 있습니다. 현재 새 첨부파일과 에디터 이미지는 날짜·시간·난수 코드가 붙은 이름으로 data/에 저장됩니다.

Termux 실행 예시

pkg install php
cd /data/data/com.termux/files/home/www/myboard
      mkdir -p data
php install.php
php -S 127.0.0.1:8080 -t .

같은 스마트폰에서만 접속할 때는 http://127.0.0.1:8080/을 사용합니다. 같은 Wi-Fi의 다른 기기에서 접속하려면 서버를 다음처럼 실행하고 스마트폰의 내부 IP와 8080 포트를 사용합니다.

php -S 0.0.0.0:8080 -t .
      # 예: http://192.168.0.25:8080/

외부 공개가 필요하면 Nginx를 443 HTTPS 앞단에 두고 내부의 127.0.0.1:8080으로 프록시합니다. 공유기 포트포워딩과 방화벽을 함께 설정해야 하며, 관리자 비밀번호와 HTTPS 인증서 개인키는 외부에 노출하지 않아야 합니다.

처음 시작하기

  1. /install.php로 초기화한 뒤 /login.php에서 로그인합니다.
  2. 관리자 화면에서 게시판 그룹과 게시판을 만들고 스킨을 선택합니다.
  3. 필요하면 페이지 그룹과 페이지를 만들어 상단 메뉴에 공개합니다.
  4. 사용자는 글쓰기 화면에서 파일을 첨부하거나 에디터 안에 이미지를 삽입할 수 있습니다.

기본 관리자 계정은 admin / admin1234입니다. 첫 로그인 직후 관리자 비밀번호를 변경하고, 운영 중에는 설치 페이지를 외부에 공개하지 않는 것을 권장합니다.

스마트폰 운영과 백업

SQLite는 별도 DB 서버 없이 하나의 파일로 동작하므로 스마트폰 운영에 적합합니다. 다만 실행 중인 DB 파일을 단순 복사하기보다 잠시 서비스를 멈추거나 SQLite 백업 명령을 사용해 일관된 백업을 남기는 것이 좋습니다.

cd /data/data/com.termux/files/home/www/myboard
cp data/board.sqlite "data/board.sqlite.bak.$(date +%Y%m%d_%H%M%S)"
tar -czf "myboard-backup-$(date +%Y%m%d).tar.gz" data schema.sql
  • data/board.sqlite에는 회원, 게시물, 댓글, 게시판 설정이 있습니다.
  • data/의 이미지와 첨부파일도 DB 백업과 함께 보관해야 합니다.
  • 백업 파일에는 비밀번호 해시와 회원 정보가 포함되므로 스마트폰 외부 공유를 피하세요.
  • Termux 프로세스가 종료되지 않도록 장시간 운영 시 배터리 최적화 예외와 안정적인 네트워크를 확인하세요.