Ubuntu로 나만의 블로그 만들기 (WordPress 설치형)
안녕하세요 이번 시간에는 워드프레스 블로그 만들기를 해볼건데요. 😀

먼저 아래 워드프레스 블로그 설치 과정을 확인해보겠습니다.
- WordPress 소스 받기
- PHP 설치 – WordPress는 PHP 기반의 시스템입니다
- Mysql 설치 – 데이터베이스
- Nginx 설치 – WEB 서버
첫번째! WordPress 소스 받기
워드프레스 압축 파일을 받아(wget) 압축을 풀고(tar) 압축이 풀린 소스를 /var/www/wordpress 경로에 옮겨줍니다(mv).
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xvzf latest.tar.gz
sudo mv wordpress /var/www/wordpress
/var/www/wordpress/ 에 옮긴 해당 디렉터리에 대한 소유권( chown )을 주고 권한( chmod )을 부여합니다.
sudo chown -R www-data:www-data /var/www/wordpress/
sudo chmod -R 755 /var/www/wordpre
두번째! PHP 설치하기
- WordPress는 PHP 기반의 시스템으로 PHP7.4 관련 모듈 패키지와 unzip, zip 패키지를 받도록 합니다.
sudo apt install php7.4-fpm php7.4-common php7.4-mysql php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip zip unzip
- 재부팅시 자동시작되도록 설정합니다.
sudo systemctl enable php7.4-fpm
설치가 끝났다면 기본적으로 php 설정파일은 /etc/php 경로에 저장됩니다.
세번째! MySQL 설치하기
- WordPress의 구성을 저장할 수 있는 데이터베이스 중 MySQL 시스템 설치합니다.
sudo apt-get update# apt-get install mysql-server mysql-client
- MySQL 서비스 콘솔에 접근합니다.
mysql -u root -p
- 데이터베이스를 생성, 데이터베이스 유저 생성 후 생성된 데이터베이스에 유저의 권한을 부여합니다.
CREATE DATABASE 데이터베이스명 CHARACTER SET UTF8 COLLATE utf8_general_ci;
CREATE USER '데이터베이스 유저명 '@'%' IDENTIFIED BY '유저 패스워드';
GRANT ALL PRIVILEGES ON 데이터베이스명 .* TO '데이터베이스 유저명'@'%';
FLUSH PRIVILEGES;
네번째! nginx 설치하기
WordPress를 통한 Web 사이트를 동작시키려면 Web 사이트의 구동을 위한 Web Server가 필요하며
nginx가 그 역할을 수행할 수 있습니다.
- nginx 설치
sudo apt install nginx
- 재부팅시 자동시작되도록 설정합니다.
sudo systemctl enable nginx
- Nginx 서버 설정파일 만들기
sudo vi /etc/nginx/sites-available/wordpress
- 만든 설정파일에 아래 내용을 입력합니다
server {
listen 80;
listen [::]:80;
server_name www.example.com example.com; # 자신의 도메인으로 수정
root /var/www/wordpress; # wordpress 소스가 저장된 디렉터리 경로
index index.php ;
location ~ \.(gif|jpg|png)$ {
add_header Vary "Accept-Encoding";
add_header Cache-Control "public, no-transform, max-age=31536000";
}
location ~* \.(css|js)$ {
add_header Cache-Control "public, max-age=604800";
log_not_found off;
access_log off;
}
location ~*.(mp4|ogg|ogv|svg|svgz|eot|otf|woff|woff2|ttf|rss|atom|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf|cur)$ {
add_header Cache-Control "max-age=31536000";
access_log off;
}
charset utf-8;
server_tokens off;
client_max_body_size 100M;
location / {
try_files $uri $uri/ =404;
}
location ~ /\.ht {
deny all;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
- /etc/nginx/sites-enabled/ 경로에 설정파일에 대한 심볼릭 링크를 생성합니다.
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
- 초기설치시 기존에 기본으로 저장된 심볼릭 링크는 제거해줍니다.
sudo rm -f /etc/nginx/sites-enabled/default
- 웹 서버 가동 전 테스트해줍니다.
sudo nginx -t
- 아래 메시지가 나온다면 문제가 없다는 의미입니다.
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
- 설정 내용 적용을 위해 재가동합니다.
sudo systemctl restart nginx
이제 웹사이트를 확인해봅니다.

정상적으로 동작하는걸 확인할 수 있네요!😂😂
추가로 참고할 내용
- 무료 SSL 설정
- PHP 환경설정 정리
- Nginx 환경설정 정리