PHP로 간단한 게시판 서버를 구축하기 위해서는 PHP와 Apache 웹 서버를 설치하고, PHP 파일을 작성하여 기본적인 게시판 기능을 구현할 수 있습니다. 이 게시판은 게시글을 메모리 대신 간단한 텍스트 파일에 저장하는 방식으로 구현하겠습니다.
Ubuntu에서 PHP와 Apache 웹 서버를 설치합니다.
sudo apt update
sudo apt install apache2 php libapache2-mod-php
설치가 완료되면 Apache가 실행 중인지 확인합니다.
sudo systemctl status apache2
Apache가 실행 중이지 않다면 다음 명령어로 시작할 수 있습니다.
sudo systemctl start apache2
PHP가 설치되었는지 확인하려면 다음 명령어를 사용합니다.
php -v
이 게시판 애플리케이션은 PHP로 작성되며, 게시글을 텍스트 파일에 저장합니다.
Apache의 기본 웹 루트 디렉토리인 /var/www/html에 게시판 프로젝트 디렉토리를 만듭니다.
sudo mkdir /var/www/html/php-board
cd /var/www/html/php-board
다음 PHP 파일을 작성하여 게시판 기능을 구현합니다.
sudo nano /var/www/html/php-board/index.php
<?php
// 게시글이 저장될 파일
$filename = 'posts.txt';
// 게시글 저장
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$title = htmlspecialchars($_POST['title']);
$content = htmlspecialchars($_POST['content']);
// 게시글 데이터를 파일에 저장 (각 게시글은 줄로 구분)
file_put_contents($filename, "$title\n$content\n===\n", FILE_APPEND);
}
// 게시글 목록 불러오기
$posts = file_exists($filename) ? file_get_contents($filename) : '';
?>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>PHP 게시판</title>
</head>
<body>
<h1>PHP 게시판</h1>
<!-- 게시글 작성 폼 -->
<form method="POST" action="index.php">
<label for="title">제목:</label><br>
<input type="text" id="title" name="title" required><br><br>
<label for="content">내용:</label><br>
<textarea id="content" name="content" required></textarea><br><br>
<input type="submit" value="게시글 등록">
</form>
<h2>게시글 목록</h2>
<?php if ($posts): ?>
<div>
<?php
// 파일에서 게시글을 읽고 각 게시글을 구분해서 출력
$postArray = explode("===\n", $posts);
foreach ($postArray as $post) {
if (trim($post)) {
$postDetails = explode("\n", $post);
echo "<h3>" . $postDetails[0] . "</h3>";
echo "<p>" . $postDetails[1] . "</p><hr>";
}
}
?>
</div>
<?php else: ?>
<p>게시글이 없습니다.</p>
<?php endif; ?>
</body>
</html>
posts.txt 파일에 저장되며, 파일이 없으면 새로 생성됩니다.===로 게시글 사이를 구분합니다.Apache가 파일을 읽고 쓸 수 있도록 디렉토리 권한을 설정합니다.
sudo chown -R www-data:www-data /var/www/html/php-board
sudo chmod -R 755 /var/www/html/php-board
PHP 파일이 잘 동작하지 않으면 Apache가 PHP 모듈을 로드하고 있는지 확인해야 합니다. PHP 모듈이 로드되어 있지 않다면, 다음 명령어로 Apache에 PHP를 사용하도록 설정합니다.
sudo a2enmod php
sudo systemctl restart apache2
브라우저에서 http://localhost/php-board/ 또는 http://<서버_IP>/php-board/로 접속하여 게시판을 테스트할 수 있습니다.
sudo apt install apache2 php로 설치.index.php 파일로 작성.http://localhost/php-board/로 게시판 애플리케이션 실행.이 예제는 간단한 파일 기반 게시판이며, 추후 데이터베이스 연동 및 보안 강화로 더 발전된 시스템을 만들 수 있습니다.