티스토리 뷰
LAMP (Linux, Apache, MySQL, PHP) 환경 구축 후 워드프레스를 설치하고
Duplicator 플러그인을 이용한 사이트 이전 방법에 대해 다룹니다.
시작
2학년 겨울 방학, 1학기에 HTML, CSS, JS를 배우고 웹에 관심있다고 하니 '연구실 홈페이지를 만들어 보는것은 어떻겠냐'는 제안을 받았습니다. 당시에는 네트워크, 서버 관련 지식이 전혀 없는 상태라 워드프레스만 믿고 '만들어 보겠습니다.' 했던 기억이 납니다.
그리고 1년이 지나 서버 컴퓨터를 이전하게 되어 그 과정을 정리해보려고 합니다.
서버는 우분투 18.04 버전의 버추얼 머신에 Apache를 이용해 구축하였고, 내부적으로 NAT 네트워크를 열어 고정아이피와 연결해 사용하였습니다. 저처럼 서버 환경 설정부터 시작하는 분들께 이 글이 도움될 것 같습니다.
Duplicator
Duplicator는 wordpress의 백업파일을 만들어주는 플러그인입니다. 관리자 페이지에서 설치해 주면됩니다. 저는 아래글의 2번을 참고해 파일을 만들었습니다.
Duplicator를 통해 사이트 데이터의 zip과 installer.php 파일을 다운 받을수 있습니다. 이 파일들을 이전하고자 하는 컴퓨터로 옮겨주시면 됩니다. (zip 생성시 비밀번호를 설정하셨다면 기억해 두셔야 합니다.)
이번 글에서는 아직까지 꽤 인기있는 Linux, Apache, MySQL, PHP 구성으로 환경을 구축하고 워드프레스를 설치합니다.
LAMP
LAMP는 웹사이트나 서버 운영에 자주 사용되는 소프트웨어들의 이름들의 약자를 말합니다.
L : Linux : 리눅스 운영체제
A : Apache : 아파치 웹 서버
M : MySQL / MariaDB : 데이터베이스 관리 시스템(데이터베이스 서버)
P : PHP, Perl, 또는 Python : 프로그래밍 언어
아래 가이드를 따라 LAMP 환경을 만들겠습니다.
Step 1. 아파치 설치하기
sudo apt update
sudo apt install apache2
sudo ufw allow "Apache Full"
아파치를 설치하고 방화벽 접근을 설정하는 문장입니다. 설치 후 브라우저에 아이피를 입력했을 때, 아래와 같이 아파치의 웹사이트가 나오면 웹서버가 성공적으로 작동하고 있는겁니다. 안보인다면 http://localhost/로 접속해보세요. 여기서도 접속이 안된다면 아파치 설치에서 문제가 생긴겁니다. 하지만 로컬호스트에서는 잘 접속이 되는데 외부에서 안되는 거라면 네트워크 연결 문제이니 아이피설정이나 권한 등을 검토해 보세요.
Step 2. MySQL 설치하기
이어서 MySQL을 설치하고 보안 설정을 진행합니다.
sudo apt install mysql-server
sudo mysql_secure_installation
암호 유효성 검사 설정
VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No: y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
암호 설정
Using existing password for root.
Estimated strength of the password: password
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
나머지 질문에는 y로 답하면 됩니다. 그리고 mysql이 잘 실행되는지 확인해주세요.
sudo mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.34-0ubuntu0.18.04.1 (Ubuntu)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> exit
Step 3. PHP 설치하기
마지막으로 php를 설치해주면 환경세팅은 끝입니다.
sudo apt install php libapache2-mod-php php-mysql
사이트 복원하기
백업 파일 세팅
복원시에 따로 워드프레스를 설치할 필요는 없습니다. 대신 임의의 실행 폴더를 직접 만들어 줍니다.
sudo mkdir -p /srv/www/wordpress
sudo chown www-data: /srv/www/wordpress
그리고 Duplicator 백업 파일들을 실행 폴더에 복사해줍니다.
sudo cp archive.zip /srv/www/wordpress
sudo cp installer.php /srv/www/wordpress
실행을 위해 권한도 부여해줍니다. (777은 모든 사용자의 쓰기, 읽기, 실행을 허용하는 옵션입니다. 보안에 주의해주세요!)
sudo chmod 777 archive.zip
sudo chmod 777 installer.php
그리고 DocumentRoot를 지정하는 wordpress.conf 파일을 다음과 같이 작성합니다.
/etc/apache2/sites-available/wordpress.conf
<VirtualHost *:80>
DocumentRoot /srv/www/wordpress
<Directory /srv/www/wordpress>
Options FollowSymLinks
AllowOverride Limit Options FileInfo
DirectoryIndex installer.php
Require all granted
</Directory>
</VirtualHost>
그리고 바뀐 설정을 활성화 하기 위해 아래 문장들을 실행합니다.
sudo a2ensite wordpress
sudo a2enmod rewrite
sudo a2dissite 000-default
sudo service apache2 reload
데이터베이스 설정
다음으로 wordpress 전용 데이터 베이스 사용자를 생성하고 권한을 부여합니다. 이때 데이터 베이스 명은 wordpress로 해야하며 username과 password는 복원시 필요하기 때문에 잘 기억해 두셔야 합니다.
sudo mysql -u root
> CREATE DATABASE wordpress;
> CREATE USER username@localhost IDENTIFIED BY 'password';
+ 보안경고 뜨면 LOW로 낮추고 진행 !!
> set global validate_password_policy=LOW;
> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON wordpress.* TO username@localhost;
> FLUSH PRIVILEGES;
> quit
데이터 베이스 설정을 활성화 하고 사이트의 도메인으로 접속하면 Duplicator 백업 화면을 볼 수 있습니다.
sudo service mysql start
데이터 베이스 정보를 입력하고 안내에 따라 백업을 진행하면 됩니다.
index.php 세팅하기
DocumentRoot를 백업된 index.php로 갱신, wordpress.conf 파일을 아래와 같이 수정합니다.
<VirtualHost *:80>
DocumentRoot /srv/www/wordpress
<Directory /srv/www/wordpress>
Options FollowSymLinks
AllowOverride Limit Options FileInfo
DirectoryIndex index.php
Require all granted
</Directory>
</VirtualHost>
변경된 내용을 적용하고 서버를 리로드 하면 이전 완료 입니다.
sudo a2ensite wordpress
sudo a2enmod rewrite
sudo service apache2 reload
+ 사이트 건강에서 php파일들이 누락되었다고 뜬다면 아래 명령어로 설치해주시면 됩니다.
sudo apt-get install php-모듈이름
감사합니다.
공부한 내용을 복습/기록하기 위해 작성한 글이므로 내용에 오류가 있을 수 있습니다.
'AWS | Linux' 카테고리의 다른 글
[AWS] IAM (사용자, 그룹, 권한, 역할) (0) | 2024.08.23 |
---|---|
VScode로 우분투 가상머신 SSH 원격 접속하기 (6) | 2023.07.09 |
[Linux] apt란 (feat.리눅스 배포판) (0) | 2022.02.03 |
버추얼 박스 게스트 확장 설치하기 (클립보드 공유 설정하기) (0) | 2022.01.04 |
버추얼 박스에 리눅스 운영체제 우분투 설치 & 세팅하기 (0) | 2022.01.03 |