LAMP 환경 설정 및 웹 애플리케이션 배포

LAMP 개요

LAMP는 동적 웹 사이트 또는 웹 애플리케이션을 구축하기 위한 오픈소스 소프트웨어 스택의 약자입니다. 다음은 주요 구성 요소입니다:

  1. Linux - 운영 체제로서, 보통 CentOS나 Ubuntu와 같은 리눅스 배포판을 사용합니다.
  2. Apache - HTTP 요청을 처리하고 응답하는 웹 서버 역할을 합니다.
  3. MySQL/MariaDB - 데이터를 저장하고 관리하는 릴레이션형 데이터베이스 관리 시스템입니다.
  4. PHP/Python/Perl - 웹 애플리케이션에서 동적 콘텐츠를 생성하는 데 사용되는 프로그래밍 언어입니다.

각 구성 요소의 역할

  • Linux: 모든 다른 구성 요소들을 지원하며 하드웨어 자원을 관리합니다.
  • Apache: 정적 및 동적 콘텐츠를 제공하며 다양한 인증과 보안 설정을 지원합니다.
  • MySQL/MariaDB: SQL을 통해 데이터베이스에 접근하여 데이터를 추가, 수정, 삭제, 조회할 수 있습니다.
  • PHP/Python/Perl: 사용자의 요청을 처리하고 동적 콘텐츠를 생성합니다.

구성 순서

  1. 리눅스 설치: 서버에 적합한 리눅스 배포판을 설치합니다.
  2. 웹 서버 설치: Apache를 설치하고 기본 설정을 완료합니다.
  3. 데이터베이스 설치: MySQL 또는 MariaDB를 설치하고 사용자와 권한을 설정합니다.
  4. 스크립트 언어 설치: PHP 등의 서버 측 언어를 선택하고 필요한 모듈들을 설치합니다.
  5. 최적화: 성능 향상을 위해 아파치와 데이터베이스를 최적화합니다.
  6. 애플리케이션 배포: 웹 애플리케이션을 개발하거나 기존 애플리케이션을 서버에 배포합니다.

Discuz 포럼 시스템 배포

환경 준비

  1. 네트워크 설정 네트워크가 외부와 연결되어 있어야 하며, 가능하다면 정적인 IP 주소를 사용하세요.
systemctl stop NetworkManager
systemctl disable NetworkManager
ping www.google.com
  1. 호스트명 설정
hostnamectl set-hostname lamp
  1. 방화벽 비활성화
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/selinux/config
# SELINUX=disabled로 변경
  1. YUM 소스 구성
yum install -y epel-release

Apache 설치

  1. 아파치 설치 확인
rpm -qa | grep httpd
  1. 아파치 설치
yum install -y httpd
  1. 설정 파일 수정
vim /etc/httpd/conf/httpd.conf
# ServerName localhost:80 추가 또는 수정
systemctl start httpd
systemctl enable httpd
  1. 포트 확인
netstat -ntlp | grep httpd

MySQL 설치

  1. MySQL 설치 확인
rpm -q mysql
  1. MySQL YUM 다운로드
wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
  1. MySQL 확장 소스 및 서비스 설치
rpm -ivh mysql80-community-release-el7-5.noarch.rpm
yum install mysql-community-server -y
sed -i 's/check=1/check=0/g' *.repo
  1. MySQL 시작
systemctl start mysqld
systemctl enable mysqld
  1. 포트 확인
netstat -tulpn | grep mysql
  1. 데이터베이스 초기화
sudo mysqld --initialize
cat /var/log/mysqld.log | grep 'temporary password'
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '새_비밀번호';

PHP 설치

  1. PHP 설치 확인
rpm -q php
php -v
  1. PHP 설치
yum install -y php php-cli php-common php-mysql php-fpm
  1. httpd 재시작
systemctl restart httpd
  1. 환경 테스트
<?php phpinfo(); ?>

위 코드를 /var/www/html/info.php에 저장 후 브라우저에서 http://your_server_ip/info.php 접속.

Discuz 포럼 배포

wget https://gitee.com/Discuz/DiscuzX/repository/archive/master.zip
unzip master.zip
cp -r DiscuzX/upload/* /var/www/html
chmod -R a+w /var/www/html

그 후 웹 브라우저에서 그래픽 설치 진행.


WordPress 블로그 시스템 배포

환경 준비

  1. 네트워크 설정
systemctl stop NetworkManager
hostnamectl set-hostname wordpress
systemctl disable firewalld --now
  1. MySQL 컴파일 설치
yum groupinstall "Development Tools" -y
yum install -y cmake ncurses-devel bison gcc-c++ libaio-devel openssl-devel
cd /opt
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.27.tar.gz
tar -zxvf mysql-8.0.27.tar.gz
groupadd mysql
useradd -r -g mysql mysql
mkdir /usr/local/mysql
mkdir /var/lib/mysql
mkdir /var/log/mysql
chown -R root:root /usr/local/mysql
chown -R mysql:mysql /var/lib/mysql
chown -R mysql:mysql /var/log/mysql

cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/var/lib/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci
make && make install
  1. Apache 컴파일 설치
yum groupinstall "Development Tools" -y
yum install -y apr apr-devel apr-util apr-util-devel pcre pcre-devel expat expat-devel
wget https://dlcdn.apache.org/httpd/httpd-2.4.62.tar.bz2
tar -xjf httpd-2.4.62.tar.bz2
cd httpd-2.4.62
./configure --prefix=/usr/local/apache --enable-so --enable-ssl --with-mpm=prefork
make && make install
  1. PHP 설정
yum install -y php php-mysqlnd php-gd php-xml php-mbstring php-json
systemctl restart httpd
  1. 테스트

브라우저에서 http://your_server_ip 접속하여 정상 작동 여부 확인.

태그: LAMP Apache MySQL PHP discuz

7월 9일 21:34에 게시됨