가상 서버 호스팅 Vultr에 PHP 7.2와 워드프레스 설치하기

워드프레스 정보를 제공하는 블로그 Avada 2018. 7. 22. 13:59 • 댓글:

지난 5월에 워드프레스 사이트를 일본 웹호스팅으로 이전한 분이 최근 티스토리 블로그의 네이버 유입이 급감하여 티스토리 블로그의 글을 워드프레스로 옮기기를 원했습니다. 그 분은 Happist 사이트의 속도와 테마(Newspaper테마)가 마음에 들어서 Vultr에 서버를 Happist 사이트와 동일하게 세팅해주기를 원했습니다.

사이트 운영을 위한 안내 – 웹서버 세팅에서 워드프레스 설치까지(우분투 17.10, NGINX 1.13.6, Marian DB 10.2, PHP7.2) 글을 참고로 그대로 Vultr에 서버를 세팅하여 워드프레스를 설치하는 작업을 의뢰했왔습니다. 그러나 Vultr는 아무래도 어려워서 안 되겠다면서 블루호스트(Bluehost)로 직접 해보겠다고 엊그제 다시 연락이 왔습니다.ㅠㅠ

참고로 Vultr 가상 서버 호스팅 상품에는 월 15달러짜리는 없고 월 2.5달러, 5달러, 10달러, 20달러, 40달러, 80달러, 160달러, 320달러 플랜이 있네요.

작업은 취소가 되었지만, 오늘 잠시 시간을 내어 Happist 사이트의 글을 보고 그대로 서버 세팅을 시도해보았습니다.

Ubuntu 버전은 16.04 대신 18.04를 선택했습니다.

Ubuntu 18.04에서는 보안 등이 향상되었다고 하네요. 표준 우분부 릴리스는 9개월 동안 지원되지만 Ubuntu LTS 릴리스는 5년 동안 지원이 되기 때문에 Ubuntu 18.04를 선택하는 것이 장기적으로 이익이 될 것 같습니다.

Ubuntu 릴리스 수명Ubuntu 릴리스 수명. 사진 출처: www.ubuntu.com

하지만 Happist 사이트의 글을 따라서 진행하다가 PHP 설치 부분에서 문제가 발생했습니다. 혹시 Ubuntu 버전이 최신 버전이라서 그런가 싶어서 Ubuntu 16.04로 시도해보았습니다. 하지만 마찬가지로 중도에 오류가 발생하네요. 문제를 해결하려면 이와 관련하여 구글을 검색해서 시도해보면 좋을 것 같습니다.

서버를 선택하여 만들었다가 생각처럼 작동하지 않아서 삭제하기를 여러 차례 하는 사이에 시간이 금방 지나가네요.ㅠㅠ

다음에 기회가 될 때 구글을 검색하여 Ubuntu 18.04에 최신 PHP 버전을 설치하는 방법을 시도해보아야겠습니다.

오늘도 너무 덥네요. 무더위에 건강 주의하시기 바랍니다.


많은 삽질 끝에 nginx와 php 7.2, MariaDB 및 워드프레스 설치에 성공했습니다. (ngx_pagespeed 부분과 Let's Encrypt 설치만 남겨두었습니다.)

참고한 문서와 다른 부분을 여기에 기록용으로 남겨둡니다.

nginx와 PHP 7.2 설치 방법은 다음 두 문서를 참고했습니다.

관련 명령어:

########## Install NGINX ##############

 

# Install software-properties-common package to give us add-apt-repository package
sudo apt-get install -y software-properties-common

# Install latest nginx version from community maintained ppa
sudo add-apt-repository ppa:nginx/stable

# Update packages after adding ppa
sudo apt-get update

# Install nginx
sudo apt-get install -y nginx

# Check status
sudo service nginx

# Start nginx if it is not already running
sudo service nginx start

# At this point you should have NGINX up and running, open http://localhost on your
# browser and you should see a welcome page from NGINX

sudo add-apt-repository -y ppa:ondrej/php
sudo apt-get update
sudo apt-get install -y php7.2-fpm
sudo apt-get install -y php7.2
sudo apt-get -y install curl php7.2-pgsql php7.2-curl php7.2-json php7.2-mbstring php7.2-gd php7.2-intl php7.2-xml php7.2-imagick php7.2-redis php7.2-zip
# systemctl restart php7.2-fpm.service

버전 확인:

php 7.2 and nginx

MariaDB 10.2는 "How To Install MariaDB 10 on Ubuntu 18.04 / Ubuntu 16.04 / 14.04 & LinuxMint 18/17" 글을 참고로 설치할 수 있습니다.

sudo apt-get -y install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.2/ubuntu xenial main'
sudo apt-get update
sudo apt-get install mariadb-server mariadb-client

설치 과정에서 비밀번호를 묻는 창이 표시됩니다.

ngx_pagespeed 설정

Happist님 글의 ngx_pagespeed 설정 부분에서도 오류가 발생합니다. 앞부분은 다음과 같은 방식으로 다운로드하여 컴파일할 수 있습니다.

ngx_pagespeed 릴리스는 https://github.com/apache/incubator-pagespeed-ngx/releases에서 확인이 가능합니다.

여러 가지 버전으로 테스트해보니 v1.11.33.4-beta 버전이 제대로 다운로드가 가능하네요.

wget https://codeload.github.com/pagespeed/ngx_pagespeed/zip/v1.11.33.4-beta

cd /usr/local/src

wget https://codeload.github.com/pagespeed/ngx_pagespeed/zip/v1.11.33.4-beta

unzip v1.11.33.4-beta

rm -f v1.11.33.4-beta

cd incubator-pagespeed-ngx-1.11.33.4-beta/

psol_url=https://dl.google.com/dl/page-speed/psol/1.11.33.4.tar.gz

[ -e scripts/format_binary_url.sh ] && psol_url=$(scripts/format_binary_url.sh PSOL_BINARY_URL)

wget ${psol_url}

tar -xzvf $(basename ${psol_url})

cd ../

cd /usr/local/src
apt-get -y install build-essential libpcre3 libpcre3-dev zlib1g-dev unzip git

wget -c https://nginx.org/download/nginx-1.13.6.tar.gz

tar zxf nginx-1.13.6.tar.gz

rm -f nginx-1.13.6.tar.gz

cd ~ # 루트로 이동

apt -y install libperl-dev libpcre3 libpcre3-dev libssl-dev openssl libgd2-xpm-dev libgeoip-dev zlib1g-dev libxslt-dev

cd /usr/local/src/nginx-1.13.6

apt -y install libperl-dev libpcre3 libpcre3-dev libssl-dev openssl libgd2-xpm-dev libgeoip-dev zlib1g-dev libxslt-dev
./configure --with-cc-opt='-Wno-deprecated-declarations' --sbin-path=/usr/sbin/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/run/nginx.pid --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module    --with-http_perl_module=dynamic --with-threads --with-stream --with-stream_ssl_module --with-stream_realip_module  --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_v2_module  --add-module=../incubator-pagespeed-ngx-1.11.33.4-beta ${PS_NGX_EXTRA_FLAGS}

make install

실제로 해보면 몇 가지 오류가 발생하네요. 무시할 수 있는지는 잘 모르겠습니다.

서버를 모두 세팅한 후에 워드프레스 설치 파일을 올리고 워드프레스를 설치하려고 시도하면 권한 문제 때문인지 404 에러나 503 에러가 표시되었습니다. 시행 착오 끝에 Ubuntu에 PHP 7.0/PHP 7.1과 워드프레스를 설치하는 방법에 설명된 방법에 따라 문제를 해결할 수 있었습니다.

에필로그

이 문제 때문에 일요일과 월요일 새벽을 소비했네요. 서버를 다루는 작업은 해보면 요령이 생기는 것 같지만, 별로 재미 있는 작업은 아니네요.ㅠㅠ (그냥 블루호스트사이트그라운드 같은 호스팅을 이용하는 것이 훨신 정신 건강에 좋을 것 같습니다.ㅎㅎ)

이제 세팅을 거의 완료하여 스냅샷으로 만들어놓았으니 조금만 보완하면 만족스러운 결과를 얻을 수 있을 것 같습니다.

참고: