LAMP 개요
LAMP는 동적 웹 사이트 또는 웹 애플리케이션을 구축하기 위한 오픈소스 소프트웨어 스택의 약자입니다. 다음은 주요 구성 요소입니다:
- Linux - 운영 체제로서, 보통 CentOS나 Ubuntu와 같은 리눅스 배포판을 사용합니다.
- Apache - HTTP 요청을 처리하고 응답하는 웹 서버 역할을 합니다.
- MySQL/MariaDB - 데이터를 저장하고 관리하는 릴레이션형 데이터베이스 관리 시스템입니다.
- PHP/Python/Perl - 웹 애플리케이션에서 동적 콘텐츠를 생성하는 데 사용되는 프로그래밍 언어입니다.
각 구성 요소의 역할
- Linux: 모든 다른 구성 요소들을 지원하며 하드웨어 자원을 관리합니다.
- Apache: 정적 및 동적 콘텐츠를 제공하며 다양한 인증과 보안 설정을 지원합니다.
- MySQL/MariaDB: SQL을 통해 데이터베이스에 접근하여 데이터를 추가, 수정, 삭제, 조회할 수 있습니다.
- PHP/Python/Perl: 사용자의 요청을 처리하고 동적 콘텐츠를 생성합니다.
구성 순서
- 리눅스 설치: 서버에 적합한 리눅스 배포판을 설치합니다.
- 웹 서버 설치: Apache를 설치하고 기본 설정을 완료합니다.
- 데이터베이스 설치: MySQL 또는 MariaDB를 설치하고 사용자와 권한을 설정합니다.
- 스크립트 언어 설치: PHP 등의 서버 측 언어를 선택하고 필요한 모듈들을 설치합니다.
- 최적화: 성능 향상을 위해 아파치와 데이터베이스를 최적화합니다.
- 애플리케이션 배포: 웹 애플리케이션을 개발하거나 기존 애플리케이션을 서버에 배포합니다.
Discuz 포럼 시스템 배포
환경 준비
- 네트워크 설정 네트워크가 외부와 연결되어 있어야 하며, 가능하다면 정적인 IP 주소를 사용하세요.
systemctl stop NetworkManager
systemctl disable NetworkManager
ping www.google.com
- 호스트명 설정
hostnamectl set-hostname lamp
- 방화벽 비활성화
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/selinux/config
# SELINUX=disabled로 변경
- YUM 소스 구성
yum install -y epel-release
Apache 설치
- 아파치 설치 확인
rpm -qa | grep httpd
- 아파치 설치
yum install -y httpd
- 설정 파일 수정
vim /etc/httpd/conf/httpd.conf
# ServerName localhost:80 추가 또는 수정
systemctl start httpd
systemctl enable httpd
- 포트 확인
netstat -ntlp | grep httpd
MySQL 설치
- MySQL 설치 확인
rpm -q mysql
- MySQL YUM 다운로드
wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
- 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
- MySQL 시작
systemctl start mysqld
systemctl enable mysqld
- 포트 확인
netstat -tulpn | grep mysql
- 데이터베이스 초기화
sudo mysqld --initialize
cat /var/log/mysqld.log | grep 'temporary password'
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '새_비밀번호';
PHP 설치
- PHP 설치 확인
rpm -q php
php -v
- PHP 설치
yum install -y php php-cli php-common php-mysql php-fpm
- httpd 재시작
systemctl restart httpd
- 환경 테스트
<?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 블로그 시스템 배포
환경 준비
- 네트워크 설정
systemctl stop NetworkManager
hostnamectl set-hostname wordpress
systemctl disable firewalld --now
- 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
- 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
- PHP 설정
yum install -y php php-mysqlnd php-gd php-xml php-mbstring php-json
systemctl restart httpd
- 테스트
브라우저에서 http://your_server_ip 접속하여 정상 작동 여부 확인.