IMG-LOGO
공지사항 :

PHP 웹 애플리케이션 설치하기

lmkfox - 2025-08-23 07:44:42 19 Views 0 Comment

1. 기본 개념

PHP 웹 애플리케이션은 보통 다음과 같은 구조를 가집니다.

  • 웹 서버(Apache, Nginx 등) : 클라이언트 요청을 받아 PHP에 전달.

  • PHP 실행 환경 : PHP 코드를 해석하고 결과를 HTML로 반환.

  • 데이터베이스(MySQL, MariaDB, PostgreSQL 등) : 동적 데이터 저장/조회.

  • 소스코드(애플리케이션) : 실제 서비스 로직과 UI를 포함.

따라서 PHP 애플리케이션을 설치하려면 위 환경을 먼저 구축해야 합니다.


2. PHP 실행 환경 준비

(1) LAMP 또는 LEMP 스택 설치

  • LAMP: Linux + Apache + MySQL/MariaDB + PHP

  • LEMP: Linux + Nginx + MySQL/MariaDB + PHP

예: Ubuntu에서 설치

sudo apt update
sudo apt install apache2 php libapache2-mod-php mysql-server php-mysql

(2) 설치 확인

php -v

→ PHP 버전 확인

apache2ctl -v

→ Apache 버전 확인


3. 웹 애플리케이션 소스코드 배치

  1. 다운로드

    • GitHub, 공식 웹사이트, 또는 압축 파일로 소스코드를 다운로드.

git clone https://github.com/example/app.git

  1. 또는

wget https://example.com/app.zip
unzip app.zip

  1. 웹 루트 디렉터리에 배치

    • Ubuntu Apache 기본 루트: /var/www/html/

sudo mv app /var/www/html/app
sudo chown -R www-data:www-data /var/www/html/app


4. 데이터베이스 설정

  1. DB 생성

CREATE DATABASE app_db;
CREATE USER 'app_user'@'localhost' IDENTIFIED BY '비밀번호';
GRANT ALL PRIVILEGES ON app_db.* TO 'app_user'@'localhost';
FLUSH PRIVILEGES;

  1. 초기 스키마 가져오기

mysql -u app_user -p app_db < /var/www/html/app/database/schema.sql


5. 환경 설정 파일 수정

대부분의 PHP 웹 애플리케이션은 config.php 또는 .env 파일을 통해 DB 연결 정보를 설정합니다.

예:

<?php
define('DB_HOST', 'localhost');
define('DB_USER', 'app_user');
define('DB_PASS', '비밀번호');
define('DB_NAME', 'app_db');
?>


6. 웹 서버 설정

Apache 가상호스트 예시

/etc/apache2/sites-available/app.conf

<VirtualHost *:80>
    ServerName myapp.local
    DocumentRoot /var/www/html/app

    <Directory /var/www/html/app>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

적용 후:

sudo a2ensite app.conf
sudo systemctl reload apache2

Nginx 예시

/etc/nginx/sites-available/app

server {
    listen 80;
    server_name myapp.local;

    root /var/www/html/app;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }
}

적용 후:

sudo ln -s /etc/nginx/sites-available/app /etc/nginx/sites-enabled/
sudo systemctl reload nginx


7. 설치 마무리

  1. 브라우저에서 http://서버주소 또는 http://myapp.local 접속.

  2. 설치 마법사(Installer)가 있으면 안내에 따라 DB 및 관리자 계정 설정.

  3. 설치 완료 후 보안 설정 확인:

    • config.php 권한 제한

    • 불필요한 설치 스크립트 제거 (install.php, setup.php 등)

    • .env 파일 접근 차단 (Apache/Nginx 설정 필요)


8. 보안 및 운영 고려사항

  • display_errors는 운영 환경에서 꺼두기 (php.ini에서 display_errors=Off).

  • error_log는 별도 파일로 지정.

  • HTTPS 적용 (Let’s Encrypt 등 무료 SSL 인증서).

  • 정기적인 DB 백업, 소스코드 업데이트.


댓글