티스토리 뷰

 

LAMP (Linux, Apache, MySQL, PHP) 환경 구축 후 워드프레스를 설치하고

Duplicator 플러그인을 이용한 사이트 이전 방법에 대해 다룹니다. 

 


 

시작

2학년 겨울 방학, 1학기에 HTML, CSS, JS를 배우고 웹에 관심있다고 하니 '연구실 홈페이지를 만들어 보는것은 어떻겠냐'는 제안을 받았습니다. 당시에는 네트워크, 서버 관련 지식이 전혀 없는 상태라 워드프레스만 믿고 '만들어 보겠습니다.' 했던 기억이 납니다.

 

그리고 1년이 지나 서버 컴퓨터를 이전하게 되어 그 과정을 정리해보려고 합니다.

 

서버는 우분투 18.04 버전의 버추얼 머신에 Apache를 이용해 구축하였고, 내부적으로 NAT 네트워크를 열어 고정아이피와 연결해 사용하였습니다. 저처럼 서버 환경 설정부터 시작하는 분들께 이 글이 도움될 것 같습니다. 

 

 

 

버추얼 박스에 리눅스 운영체제 우분투 설치 & 세팅하기

버추얼 박스를 이용해 우분투 가상 머신 환경을 구축합니다. 버추얼 박스가 설치되어 있어야 합니다. 저는 v6.1.18를 사용하였습니다. 우분투 v20.04.3 환경을 구축합니다. 버추얼 박스는 가상 머신

munak.tistory.com

 

 


 

Duplicator 

Duplicator는 wordpress의 백업파일을 만들어주는 플러그인입니다. 관리자 페이지에서 설치해 주면됩니다. 저는 아래글의 2번을 참고해 파일을 만들었습니다.  

 

 

 

 

 

 

워드프레스 사이트 이전하기 - Duplicator 플러그인 사용 - 워드프레스 정보꾸러미

4. 마이그레이션 실행 인터넷 브라우저의 주소창에 http://새로운주소/installer.php를 입력하여 Duplicator 설치 파일을 실행합니다. 그러면 데이터와 DB가 새로운 서버로 복제됩니다. 이때 새로운 사이

www.thewordcracker.com

 

Duplicator를 통해 사이트 데이터의 zip과  installer.php 파일을 다운 받을수 있습니다. 이 파일들을 이전하고자 하는 컴퓨터로 옮겨주시면 됩니다. (zip 생성시 비밀번호를 설정하셨다면 기억해 두셔야 합니다.)

 

 


 

 

이번 글에서는 아직까지 꽤 인기있는 Linux, Apache, MySQL, PHP 구성으로 환경을 구축하고 워드프레스를 설치합니다.

 

LAMP 

LAMP는 웹사이트나 서버 운영에 자주 사용되는 소프트웨어들의 이름들의 약자를 말합니다.  


L : Linux : 리눅스 운영체제
A : Apache : 아파치 웹 서버
M : MySQL / MariaDB : 데이터베이스 관리 시스템(데이터베이스 서버)
P : PHP, Perl, 또는 Python : 프로그래밍 언어

 

 

아래 가이드를 따라  LAMP 환경을 만들겠습니다.

 

 

How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 18.04 | DigitalOcean

 

www.digitalocean.com

 

 

 

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-모듈이름

 

 

 

 

감사합니다.

 


공부한 내용을 복습/기록하기 위해 작성한 글이므로 내용에 오류가 있을 수 있습니다.

댓글
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Total
Today
Yesterday