Skip to content

dong279/web_php_project

Repository files navigation

Community Board Project

커뮤니티 게시판 프로젝트입니다.

기술 스택

  • Backend: PHP (PDO)
  • Frontend: React + Vite
  • Database: MySQL
  • UI: Ant Design

설치 및 실행 방법

1. 저장소 클론

git clone <repository-url>
cd htdocs

1.1 자동 설치 (권장)

Windows:

install.bat

Linux/Mac:

chmod +x install.sh
./install.sh

설치 스크립트가 다음을 자동으로 수행합니다:

  • 데이터베이스 설정 파일 생성 (db.php.exampledb.php)
  • 업로드 디렉토리 생성
  • Frontend 의존성 설치 (npm install)

주의: 설치 후 backend/config/db.php 파일을 열어서 데이터베이스 정보를 입력해야 합니다!

2. 데이터베이스 설정

⚠️ 중요: backend/config/db.php 파일은 Git에 포함되지 않습니다 (보안상의 이유). 클론 후 반드시 설정 파일을 생성하고 데이터베이스 정보를 입력해야 합니다!

2.1 데이터베이스 생성

MySQL에 접속하여 데이터베이스를 생성하고 스키마를 실행하세요:

mysql -u root -p < db/schema.sql

또는 phpMyAdmin을 사용하여 db/schema.sql 파일을 import하세요.

2.2 데이터베이스 설정 파일 생성

# 설정 예제 파일을 복사
cp backend/config/db.php.example backend/config/db.php

2.3 데이터베이스 정보 입력

backend/config/db.php 파일을 열어서 자신의 데이터베이스 정보를 입력하세요:

private string $host = '127.0.0.1';  // 데이터베이스 호스트
private string $db   = 'community';  // 데이터베이스 이름
private string $user = 'root';       // 데이터베이스 사용자명
private string $pass = '';           // 데이터베이스 비밀번호

3. 업로드 디렉토리 설정

업로드 디렉토리가 존재하는지 확인하세요 (.gitkeep 파일이 있으면 자동으로 생성됨):

# 디렉토리가 없으면 생성
mkdir -p backend/uploads/posts

업로드 디렉토리에 쓰기 권한이 있는지 확인하세요.

4. Frontend 설정

4.1 의존성 설치

cd frontend
npm install

4.2 API URL 설정 (필요시)

프로덕션 환경이나 다른 서버를 사용하는 경우, frontend/src/api/client.js 파일에서 API URL을 수정하세요:

const BASE_URL = 'http://localhost/backend/api'  // 여기를 수정

4.3 개발 서버 실행

npm run dev

5. Backend 설정

5.1 Apache 설정 (XAMPP 사용 시)

XAMPP를 사용하는 경우:

  1. 프로젝트가 htdocs 디렉토리에 있는지 확인
  2. Apache가 실행 중인지 확인
  3. 브라우저에서 http://localhost/backend/api/boards.php 접속하여 API가 동작하는지 확인

5.2 PHP 버전

PHP 7.4 이상이 필요합니다.

프로젝트 구조

htdocs/
├── backend/           # PHP Backend
│   ├── api/          # API 엔드포인트
│   ├── config/       # 설정 파일
│   └── uploads/      # 업로드된 파일
├── frontend/         # React Frontend
│   └── src/
│       ├── api/      # API 클라이언트
│       ├── components/  # React 컴포넌트
│       └── pages/    # 페이지 컴포넌트
├── db/               # 데이터베이스 스키마
│   ├── schema.sql    # 데이터베이스 스키마
│   └── seed.sql      # 초기 데이터 (선택사항)
└── README.md         # 이 파일

주요 기능

  • 사용자 인증 (회원가입, 로그인)
  • 게시판 관리
  • 게시글 작성/수정/삭제
  • 댓글 작성 (대댓글 지원)
  • 파일 업로드 (이미지, 첨부파일)
  • 좋아요/싫어요 기능

API 엔드포인트

  • POST /backend/api/auth_signup.php - 회원가입
  • POST /backend/api/auth_login.php - 로그인
  • GET /backend/api/boards.php - 게시판 목록
  • GET /backend/api/posts.php - 게시글 목록
  • POST /backend/api/posts.php - 게시글 작성
  • GET /backend/api/post_detail.php - 게시글 상세
  • GET /backend/api/comments.php - 댓글 목록
  • POST /backend/api/comments.php - 댓글 작성

문제 해결

데이터베이스 연결 오류

  • backend/config/db.php 파일이 올바르게 생성되었는지 확인
  • 데이터베이스 정보가 올바른지 확인
  • MySQL 서버가 실행 중인지 확인

업로드 오류

  • backend/uploads/ 디렉토리에 쓰기 권한이 있는지 확인
  • PHP upload_max_filesize 설정 확인

API 호출 오류

  • frontend/src/api/client.jsBASE_URL이 올바른지 확인
  • CORS 설정 확인 (필요시)
  • Apache/PHP 서버가 실행 중인지 확인

라이선스

이 프로젝트는 개인 프로젝트입니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published