[카테고리:] 라즈베리파이

라즈베리파이를 활용한 다양한 팁과 테크에 대한 카테고리입니다.

  • 라즈베리 파이2B에 설치한 Ubuntu MATE 간단한 최적화 하기

    라즈베리 파이2B에 설치한 Ubuntu MATE 간단한 최적화 하기

    ▶ 들어가며

    안녕하세요. 곰곰입니다.

    저번 블로그 글(워드프레스 Nginx 라즈베리파이로 서버 설치 또는 이전)에서 라즈베리파이2에 Nginx + PHP5 + MariaDB를 설치하기 위하여 라즈베리파이용 Ubuntu MATE를 설치하였습니다. Ubuntu MATE는 마테 UI가 적용되어 있는 우분투 리눅스 배포판으로써, 저사양 컴퓨터에 최적화 되어있는 UX를 가지고 있는 리눅스 배포판이기는 합니다.

    [ Ubuntu MATE 공식 홈페이지에서 제공하는 라즈베리 파이 2B용 Ubuntu MATE 스크린샷. 출처 : 공식 홈페이지 ]
    하지만 라즈베리 파이 2 모델 B가 그렇게 좋은 스팩의 CPU를 가지고 있지 않은 측면, 그리고 서버로 운영되고 있을 때는 몇 가지 최적화 되어야 할 점이 있기 때문에, 이 글에서는 간단하게 Ubuntu MATE 라즈베리 파이 에디션을 최적화하는 방법에 대해 설명하고자 합니다.

     

     

     

    ▶ 1. Ubuntu MATE를 GUI(그래픽 모드)에서 CUI 모드로 부팅하기

    Ubuntu MATE는 리눅스를 콘솔로 즐기고 싶은 분들을 위해 콘솔이 기본으로 부팅되게 설정할 수 있습니다. 특히 라즈베리 파이 2B의 경우에는 기존 라즈베리 파이에 비해 성능이 비약적으로 상승한 것은 맞지만, 저전력 설계와 그에 걸맞는 성능을 보유하고 있기 때문에, GUI로 라즈베리 파이를 사용하는 것은 상당히 느립니다.

    따라서 서버로 사용하시려고 하시는 분들, 또는 기본적인 리눅스 지식을 보유하고 계시는 분들은 콘솔 모드로 Ubuntu MATE를 사용하실 수 있습니다.

    Ubuntu MATE에서 터미널에 접속하여, 콘솔로 접속합니다. (CUI로 부팅하신 분들은 상관 없음, PuTTY 등 SSH 접속 또한 상관 없음)

    [ Applications(어플리케이션) - System Tools(시스템 도구) - MATE Terminal을 통해 터미널에 접속합니다. ]
    [ Applications(어플리케이션) – System Tools(시스템 도구) – MATE Terminal을 통해 터미널에 접속합니다. ]
    01_02_terminalentered
    [ 터미널 접속 화면(예시). ]
     

    아래 명령어를 관리자 권한으로(sudo) 입력해 줍니다.

    $  sudo graphical disable

     

    입력 후, 아래 명령어를 이용해 재부팅을 해 주면, 콘솔로 부팅된 Ubuntu MATE를 확인하실 수 있습니다.

    $  sudo shutdown -r now
    [ 이와 같이 다음 부팅때는 콘솔로 부팅이 이루어집니다. ]
    [ 이와 같이 다음 부팅때는 콘솔로 부팅이 이루어집니다. ]

    다시 그래픽 모드를 이용하고 싶으실 때는 아래 명령어를 입력해주고, 재부팅을 실시합니다.

    $  sudo graphical enable
    $  sudo shutdown -r now

     

     

     

    ▶ 2. Ubuntu MATE를 설치하고 Micro SD 파티션의 용량을 조절하자

    Ubuntu MATE를 설치하기 위해 우분투 마테를 Win32 Disk Imager로 microSD카드에 썼을 때, 기본적으로 4~8GB 정도의 용량을 기준으로 파티셔닝이 이루어집니다. 따라서 8GB 이상의 microSD 카드를 사용하는 경우에는 새로 리파티셔닝 과정을 통해 남은 공간이 리눅스 공간으로 사용될 수 있도록 해야 합니다.

    먼저 Ubuntu MATE를 설치하고 터미널을 실행해 봅니다. (SSH 등 상관 없음) 저는 편의상 PuTTY를 사용해 작업하고자 합니다.

    아래 명령어를 이용해 현재 파티션(/)의 상황을 확인하면, 다음과 비슷한 결과를 얻으실 수 있습니다.

    #  sudo df -h
    [ 확인해 보면, 16GB의 micro SD를 꼈음에도 4GB 정도의 파티션만 인식되어 있음을 볼 수 있다. ]
    [ 확인해 보면, 16GB의 micro SD를 꼈음에도 4GB 정도의 파티션만 인식되어 있음을 볼 수 있다. ]

    fdisk -l 명령어를 사용해 구체적인 상황을 확인해 봅시다. 아래처럼 여러분들 microSD 용량에 비해 Linux 파티션 용량이 한 없이 작다는 것을 볼 수 있습니다.

    $  sudo fdisk -l
    [ fdisk -l을 통해 앞으로 작업해야 할 파티션의 정보를 확인할 수 있다. ]

    microSD 카드의 디스크를 편집합시다. 아래 명령어를 통해 fdisk를 준비합니다.

    $  sudo fdisk /dev/mmcblk0

     

    FAT32 파티션은 부팅을 위해 라즈베리파이가 필요로 하는 파티션이므로 삭제하시면 안됩니다. 따라서 2번째 리눅스 파티션을 일단 지워줍니다.

    d 입력 후 엔터, 이후 숫자 2 입력
    [ d 누르고 2를 눌러, 지금 리눅스 파티션을 제거해 줍니다. ]
    [ d 누르고 2를 눌러, 지금 리눅스 파티션을 제거해 줍니다. ]

    그 다음, 지워진 두 번째 파티션(리눅스 주 파티션)을 microSD 최대 용량으로 다시 만들어 줍니다.

    n 엔터, p 엔터, 2 엔터, 엔터, 엔터 순으로 입력합니다.
    [ n, p, 2, 엔터, 엔터 순으로 눌러 새로운 파티션을 최대 용량으로 만들어 줍니다. ]
    [ n, p, 2, 엔터, 엔터 순으로 눌러 새로운 파티션을 최대 용량으로 만들어 줍니다. ]

    이후 w를 눌러서 fdisk를 종료해 주시면, 다음과 같은 경고와 함께 다음 부팅시 파티셔닝이 이루어질 것임을 알려줍니다. 재부팅을 해 줍니다.

     Command (m for help): w
     The partition table has been altered.
     Calling ioctl() to re-read partition table.
     Re-reading the partition table failed.: Device or resource busy
    
     The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
    
    
    
    $  sudo shutdown -r now
    

     

    재부팅이 되면, 다음과 같은 명령어를 입력해 주어 파티션 용량을 다시 인식시킵니다.

    $  sudo resize2fs /dev/mmcblk0p2

     

    이후 fdisk를 통해 파티션 용량을 확인해 보시면, 16GB 온전히 파티셔닝이 되어있는 것을 확인하실 수 있습니다.

    [ 16GB 온전히 파티셔닝이 되어있음을 확인할 수 있습니다. ]
    [ 16GB 온전히 파티셔닝이 되어있음을 확인할 수 있습니다. ]

     

     

    ▶ 3. 간단 팁: Ubuntu MATE for Raspberry pi 2는 도대체 어떤 CPU 아키텍쳐를 사용중인 것일까?

    추후 라즈베리 파이 2B용 Ubuntu MATE를 사용하시다 보면 기존의 리눅스에서 사용하시던 팁들이 적용되지 않으실 때가 있으실 겁니다. (저의 경우는 두 가지가 있었는데, 하나는 nginx용 Pagespeed 모듈이 설치가 되지 않았던 점, 또 하나는 ppa를 통해 PHP7을 설치하던 도중, 갑자기 PHP7의 설치가 이루어지지 않았을 때)

    예를 들어, Ubuntu용 PHP를 설치하기 위하여 PPA(사설 저장소)에서 apt-get을 해야 할 필요가 있다고 해 봅시다. 그 때, 분명 ppa 목록에 패키지는 포함되어 있는데, 아무리 sudo apt-get update, apt-get install 과정을 거쳐도 패키지가 설치가 되지 않으실 수도 있는데요. 일단 그 ppa가 보관되어 있는 launchpad에 접속하여 하나의 패키지를 살펴보시면 다음과 같이 되어 있으실 겁니다.

    [ ppa 관리소인 launchpad에서 특정 ppa를 들어가서 확인해보면, Build Status를 보면 체크표시가 없고 뭔가 수상쩍다. ]
    [ ppa 관리소인 launchpad에서 특정 ppa를 들어가서 확인해보면, Build Status를 보면 체크표시가 없고 뭔가 수상쩍다. ]

    자세히 보기 위해, 그 패키지를 클릭해 보시면 다음과 같은 정보를 보실 수가 있습니다.

    [ Builds 상태에 플랫폼별 지원 현황이 나타나 있다. ]
    [ Builds 상태에 플랫폼별 지원 현황이 나타나 있다. ]

    여기에서 Builds라고 적혀 있는 부분은, 패키지로 배포하기 위해 패키지가 만들어지는 과정(컴파일 및 메이크 등)에 대하여 설명하고 있는 부분입니다.

    체크([FULLYBUILT]) 표시가 되어있는 플랫폼은 빌드가 완료되어 배포중이고, 시계모양([BUILDING])으로 되어있는 부분은 빌드가 진행중인 곳입니다. 엑스 표시(There were build failures.)가 되어있는 곳은 빌드에 실패하여 새로 빌드되는 것을 기다리고 있는 플랫폼입니다.

    또한 Builds에 세 가지 플랫폼이 적혀 있는데, 이 플랫폼은 Ubuntu가 지원하는 대표적인 플랫폼 3가지를 뜻합니다.

    • amd64 : 64비트 플랫폼을 뜻합니다. 우리가 Windows 7 64비트를 말할 때의 그 64비트를 뜻하며, 64비트를 상용화시키는데 가장 먼저 성공했던 회사가 AMD이므로, amd64라고 기재됩니다. 다른 곳에서의 x64(인텔 64비트 플랫폼)과 의미가 일치합니다.
    • i386 : 기존 32비트 플랫폼을 뜻합니다. 최근 들어서는 메모리가 4GB 이상인 컴퓨터가 많아지고 있는데, 32비트 컴퓨터로는 4GB 이상의 메모리를 처리할 수 없으므로, 최근 들어서 비중이 감소세에 이르고 있습니다. x86(인텔 32비트 플랫폼)과 의미가 일치합니다.
    • armhf : ARM 플랫폼의 v7 버전, 즉 ARMv7 계열 CPU를 뜻하는(ARM에 대한 자세한 정보는 위키피디아 참조) 표현입니다. Raspberry pi 2 Model B가 속해있는 플랫폼입니다.
    • armel, armeb : (기타) ARM 플랫폼의 다른 버전입니다. 개인 사용자가 접해보기 어려운 플랫폼입니다.

     

    즉, ARMv7 이라고 쓰여 있는 부분은, armhf 와 호환이 된다고 생각하시면 편하겠지요. 다양한 곳에서 지식 글을 참고하실 때 유용하신 정보라고 생각합니다.

     

     

     

    ▶ 마치며

    지금까지 Raspberry Pi 2B에 Ubuntu MATE를 설치하여 사용할 때의 몇 가지 팁에 대해 살펴보았습니다. Raspberry Pi는 낮은 가격에 초소형 PC(* 일부 플랫폼적 제약이 있지만)를 구매하실 수 있는 좋은 방법입니다. 여러분들도 Raspberry Pi를 구매하실 기회가 있으시다면, 이 팁이 도움이 되기를 바랍니다.

    두서없는 팁 읽어주셔서 감사합니다.

  • nginx/Apache 우분투 서버에 PHP7(PHP7-fpm) 설치(또는 업데이트) 하기

    nginx/Apache 우분투 서버에 PHP7(PHP7-fpm) 설치(또는 업데이트) 하기

    ※ 본 팁은 기본적으로는 nginx + PHP7-fpm + PHP7-mysql 조합으로 설치 또는 업데이트 하는 방법을 기준으로 하고 있습니다.
    ※ 하지만 Apache + PHP7 + PHP7-mysql 조합으로 설치하는 분들에게도 적용이 가능합니다. (nginx 설정 부분 제외하여 적용)
    (2016/02/25 기준) PHP 7.0을 배포하는 ppa(개인 레파지토리)가 기존의 ppa:ondrej/php-7.0 에서 ppa:ondrej/php 로 통합되었습니다. 기존에 php-7.0 ppa를 이용하시던 분들은 반드시 sudo add-apt-repository –remove ppa:ondrej/php-7.0 명령어를 실행한 이후 sudo add-apt-repository ppa:ondrej/php로 ppa를 변경하여 사용하시기 바랍니다.

    ▶ 들어가며

    [ 우분투 시스템에서 PHP 7과 nginx 설치하기 ]
    [ 우분투 시스템에서 PHP 7과 nginx 설치하기 ]
    nginx는 기본적으로 Apache 등에 비해서 퍼포먼스가 괜찮은 웹 서버입니다. 현재 이 곰곰 잡동사니 블로그를 운영하고 있는 필자의 서버 또한 라즈베리 파이 2B라는 좋지 않은 스팩의 미니 컴퓨터인데도, nginx로 워드프레스를 운영하고 있는 중입니다.

    워드프레스를 운영하기 위해서는 nginx 외에도 같이 작동해야 할 어플리케이션이 있는데, 그 중에 대표적인 어플리케이션을 뽑으라고 하면 PHP가 있습니다. PHP는 과거부터 HTTP 어플리케이션이 좀 더 동적이고 다양한 방식으로 운영될 수 있도록 해 주었는데요. 최근까지는 PHP5 버전이 비교적 많이 쓰이고 있었고, 제품 지원또한 잘 이루어지고 있었습니다.

    하지만 2015년 12월, PHP7 버전이 정식으로 릴리즈 되었고, PHP5.5는 2016년 7월 10일, PHP 5.6은 2017년 8월 28일에 보안 업데이트 지원이 중단된다(관련 공식 홈페이지 페이지)는 이야기가 있는 만큼, PHP7 으로 업그레이드 해서 지속적인 보안 지원을 받고, 한편으로는 PHP 처리 속도 등에서도 유리하지 않을까 하는 생각에 업데이트를 결심하게 되었습니다.

    또한 다행히도 PHP7 에서도 워드프레스는 정상 작동(링크)한다는 이야기를 들었기에, 안심하고 업데이트를 수행하였습니다.

     

     

    ▶ PHP 7.0 설치 준비하기

    현재 우분투 공식 apt-get 배포지에서는 PHP7 등이 공식적으로 지원되지 않고 있습니다. 따라서 현재 PHP7 등을 설치하기 위해서는 개인 패키지 어카이브(영어로 Personal Package Archive; 이하 PPA)를 등록하여 apt-get를 이용해야 합니다. Ondřej Surý는 우분투 개발자중에 한 명인데, 그의 PPA에는 우분투에서 바로 사용 가능한 PHP 7.0이 올라와 있습니다. 따라서 우리 리눅스 시스템에서 이 PPA를 활용하기 위해 아래와 같은 명령어를 사용하여 저장소를 등록해 줍니다.

    $  sudo add-apt-repository ppa:ondrej/php

     

    참고로 외국 홈페이지에 따르면, 이 저장소를 활용할 때는 시스템이 UTF-8을 지원하는 시스템으로 설정되어 있어야 한다고 합니다.

    어쨌든 PPA에서 php-7.0 관련 저장소를 인스톨했다면, apt-get update를 활용해 개인 리눅스 시스템 저장소를 업데이트 해 줍니다.

    $  sudo apt-get update
    [ apt-get update를 구동하면 이와 같이 저장소의 캐시를 새로고칩니다. ]
    [ apt-get update를 구동하면 이와 같이 저장소의 캐시를 새로고칩니다. ]

    이제, PHP 7.0을 설치할 준비는 모두 끝났습니다.

     

     

    ▶ 선택지 1) nginx 유저를 위한 PHP 7.0 fpm 설치

    nginx를 사용해신 분들이라면 아시겠지만, nginx는 PHP를 기본적으로 지원하고 있지 않아, nginx 상에서 PHP를 구동하기 위해 PHP-fpm 이라는 패키지를 필요로 하게 됩니다. 따라서 보통 Apache 서버에서 설치하는 것처럼 apt-get install php7.0 이라는 명령어로는 PHP를 구동하실 수 없습니다.

    따라서 php7.0-fpm 을 설치해주도록 합니다.

    $  sudo apt-get install php7.0-fpm

     

    기존에 php5-fpm 이 설치되어 있으셨던 분들은, 자동으로 php5-fpm이 php7.0-fpm으로 업데이트 되는 것을 확인하실 수 있으실 겁니다.

    php7.0-fpm의 설치 이후, MySQL/MariaDB을 같이 이용하시는 분들은 php5-mysql의 업데이트 버전인 php7.0-mysql 또한 설치해 주셔야 합니다.

    $  sudo apt-get install php7.0-mysql

     

    설치가 끝나면, 이어서 nginx 상에서 PHP 7.0을 구동하실 수 있게 nginx 설정 파일을 바꾸어 주셔야 합니다. nginx를 apt-get을 통해 설치해 주신 분들은, 기본 사이트의 설정 파일이 /etc/nginx/sites-available/default 에 존재함을 아실겁니다. 여러분들이 편한 텍스트 에디터로 이 파일을 열어줍니다. (저는 편의상 nano를 활용합니다.)

    $  sudo nano /etc/nginx/sites-available/default

     

    설정 파일을 열어, 먼저 기존 php5-fpm을 위해 구동되고 있던 부분을 주석처리 한 후, php7.0-fpm을 위해 설정 파일에 다음과 같은 부분이 들어가도록 합니다.

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    # (For PHP 7.0)
    #
            location ~ \.php$ {
                    # With php7-fpm:
                    try_files $uri =404;
                    fastcgi_split_path_info ^(.+\.php)(/.+)$;
                    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
                    fastcgi_index index.php;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    include fastcgi_params;
            }

     

    저의 경우는 아래 이미지와 같이 설정해 두었으므로, 설정 파일 입력에 참고하시기 바랍니다.

    [ 이와 같이 기존의 php5 구동을 위한 부분을 주석처리 후, 새로이 설정 파일을 씁니다. ]
    [ 이와 같이 기존의 php5 구동을 위한 부분을 주석처리 후, 새로이 설정 파일을 씁니다. ]

    다음과 같이 설정하고, 설정 파일을 저장한 이후, nginx를 재시작해 줍니다.

    $  sudo service nginx restart

     

     

    ▶ 선택지 2) Apache 유저를 위한 PHP 7.0 설치

    Apache 유저는 설정 파일의 수정 없이 PHP 7.0과 관련 패키지만 설치되면 됩니다. 다음과 같이 PHP 7.0/PHP7-mysql을 설치 후, 아파치 서버를 새로 시작해 줍니다.

    $  sudo apt-get install php7.0
    $  sudo apt-get install php7.0-mysql
    $  sudo service apache2 restart

     

     

    ▶ PHP 테스트하기 & 끝마치며

    여러분들의 웹서버가 돌아가고 있는 디렉토리 루트에, PHP 정보 확인을 위한 파일을 하나 만듭니다. (예: phpinfo.php)

    <?php
     phpinfo();
    ?>

     

    이 파일을 만들어 실행해 보면, PHP가 7.0으로 실행되고 있는 것으로 확인하실 수 있습니다.
    ( 확인을 위해 만든 phpinfo.php 는 확인하시고 지워주시는 것이 보안상 좋습니다. )

    [ phpinfo();를 통해 PHP 7.0가 정상적으로 작동하는 것을 확인할 수 있었습니다. ]
    [ phpinfo();를 통해 PHP 7.0가 정상적으로 작동하는 것을 확인할 수 있었습니다. ]
    위와 같이 PHP가 7.0으로 구동되고 있다는 것을 확인하실 수 있습니다.

     

    저는 개인적으로 PHP 7.0 업데이트 후 어느 정도 워드프레스가 가벼워진 느낌을 받았는데, 여러분들은 어떨지 모르겠습니다.

    어찌되었든 성공적인 업데이트를 기원합니다. 두서 없는 글 읽어주셔서 감사합니다.

     

    ※ 참고 : How To Upgrade to PHP 7 on Ubuntu 14.04 (https://www.digitalocean.com/community/tutorials/how-to-upgrade-to-php-7-on-ubuntu-14-04)
  • 워드프레스 Nginx 라즈베리파이로 서버 설치 또는 이전

    워드프레스 Nginx 라즈베리파이로 서버 설치 또는 이전

    ▶ 들어가며

    본 블로그(곰곰 잡동사니 블로그)는 Tistory에서 테더툴즈로 돌아가던 시절로부터 시작해서, 노트북 내에 민트 리눅스를 사용하여 집에서 서버로 운영되고 있었습니다. 하지만 본 블로그는 인기가 한 푼 어치도 없는 블로그(…)이기 때문에, i3-3217u가 붙어있는 4GB 메모리의 노트북으로 서버를 운영하기에는 전력량이나 서버 자원량이 너무나도 사치(…)로웠기 때문에, 마침내 전기 사용을 적게 유지할 수 있는 라즈베리파이 2 모델 B를 사용하여 리눅스 서버를 운영하기로 결심을 하였습니다.

    (하지만, 2016년 1월부터 Amazon Web Service EC2 서버를 빌려 호스팅하고 있습니다. (…))

    [ 부담스럽지 않은 웹 서버 사용에는 라즈베리파이2 모델B도 좋은 선택이 될 수 있습니다. ]
    [ 부담스럽지 않은 웹 서버 사용에는 라즈베리파이2 모델B도 좋은 선택이 될 수 있습니다. ]

     

     

    ▶ 웹 서버에 알맞는 라즈베리 파이 운영체제와 웹 서버 데몬은?

    현재 원래 노트북에 Apache + PHP5 + MySQL (속칭 APM)이라고 부르는 그것들을 활용하여 블로그 서버를 운영하고 있었습니다. 트래픽 부담이 적은 제 컴퓨터에서 이 정도면 넘치는 사양이었지요.

    [ 현재 운영되고 있는 서버의 대략적인 개요입니다. ]
    [ 현재 운영되고 있는 서버의 대략적인 개요입니다. ]

     

    라즈베리파이 2 모델 BARMv7 설계 CPU를 사용하기 때문에 ARM용으로 설계된 리눅스 배포판(예: Ubuntu Server, Ubuntu MATE 등)을 라즈베리 파이에 설치할 수 있었습니다. 다만, 라즈베리 파이가 성능이 좋은 모바일 PC는 아니기 때문에, Apache보다 동시 접속자 처리 등에서 훨씬 가볍다고 여겨지는 NginX를 사용하여 웹 서버를 운영하기로 결정하였습니다.

    또한 지극히 개인적인 이유로 MySQL 대신 MariaDB를 사용하여 서버를 구축하고자 합니다.

    라즈베리 파이에 설치할 운영체제 또한 어떤 것을 골라야 할지 고민됐는데, Raspbian이나 기타 운영체제 대신 저는 Ubuntu MATE 라즈베리 파이 버전을 설치하기로 했습니다. 제가 지금까지 써 오던 우분투 계열의 리눅스이기도 하고, 다양한 팁을 적용하기도 쉬워 보였기 때문입니다. 따라서 서버는 아래와 같이 전환될 예정입니다.

    [ 이사가 진행되면 다음과 같이 라즈베리파이가 서버로 운영됩니다. ]
    [ 이사가 진행되면 다음과 같이 라즈베리파이가 서버로 운영됩니다. ]

     

     

    ▶ 1. 라즈베리 파이에 운영체제를 설치한다.

    00_rasp1

    라즈베리 파이를 구매하여 마우스와 키보드를 연결하고, 모니터를 연결해 두어 부팅할 수 있는 상태로 준비해 두고, 운영체제를 설치해야 합니다.

     

    라즈베리 파이용 Ubuntu MATE는 여기에서 다운로드 하실 수 있습니다. 사이트에 들어가 토렌트를 이용하여 운영체제를 다운로드 받습니다.

    [ 홈페이지에 들어가 BitTorrent 파일을 받아 토렌트로 다운로드를 마칩니다. ]
    [ 홈페이지에 들어가 BitTorrent 파일을 받아 토렌트로 다운로드를 마칩니다. ]

    다운로드 받은 img.xz 파일의 압축을 해제합니다. img 파일을 라즈베리 파이용으로 실행할 수 있기 위해 Win32 Disk Imager(여기에서 다운로드 가능)를 실행합니다.

    Win32 Disk Imager를 실행하여 ‘Image File’에 다운로드 하여 압축 해제한 img 파일을, ‘Device’에는 micro SD카드를 선택하여 Write를 눌러 이미지를 완성시킵니다.

    [ Win32 Disk Imager를 실행하여 다음과 같이 설정되게 합니다. ]
    [ Win32 Disk Imager를 실행하여 다음과 같이 설정되게 합니다. ]

    완성된 micro SD카드를 라즈베리 파이에 넣고 부팅을 시키면, Ubuntu Mate 설치 화면이 나옵니다. 순서대로 설치를 마칩니다.

    설치된 Ubuntu Mate를 여러분들 micro SD와 서버 운영에 맞게 설정을 해 줄 필요가 있습니다. 이에 대해서는 다른 팁에서 다루도록 하겠습니다.

    라즈베리 파이2B에 설치한 Ubuntu MATE 간단한 최적화 하기 (클릭)

     

     

     

    ▶ 2. nginx 설치

    이제부터 터미널을 활용하여 nginx를 설치하고자 합니다. 터미널에 apt-get 명령어를 입력하여 nginx를 설치합니다.

    sudo apt-get install nginx

    nginx가 설치가 완료되면, 웹 서버에 접속이 잘 되는지 웹 서버 IP로 접속을 하여 메인페이지를 확인합니다.

     

    설치가 완료된 경우, 저의 경우는 웹서버용 사용자 계정을 하나 만들어, 그 계정 안에 웹페이지 서버를 운영하고자 합니다. (※ 이렇게 하는 이유는 vsftpd를 활용할 때, 사용자 계정 이상으로 넘나들 수 있는 권한을 주지 않기 위해서입니다. 저는 리눅스 초보인지라 더 좋은 방법이 떠오르지 않아, 이 방법으로 앞으로 안내하고자 합니다.)

    nginx 메인 폴더를 변경하기 위해서는 nginx 설정 파일을 바꾸어 주어야 합니다. nginx 설정 파일이 들어있는 디렉토리 중 sites-available 안의 default 설정 파일을 변경해 주면 됩니다.
    저는 nano 편집기가 편하므로 nano를 사용하여 설정 파일을 수정하고자 합니다.

    sudo nano /etc/nginx/sites-available/default

     

    다음과 같은 세 가지가 수정되어야 합니다. (권장 변경 사항 1개, 필수 변경 사항 2개)

    ※ 1) 권장: 루트 폴더를 /home/web/www/ 로 변경하여 줍니다.

    [ root 디렉토리를 다음과 같이 수정합니다. 여기에 설정되는 폴더는 mkdir로 미리 만들어져 있어야 합니다. ]
    [ root 디렉토리를 다음과 같이 수정합니다. 여기에 설정되는 폴더는 mkdir로 미리 만들어져 있어야 합니다. ]

    ※ 2) 필수 1: index 부분에 index.php가 들어갈 수 있도록 합니다.

    [ index에 index.php를 넣어 주어 php로 만들어진 웹페이지가 정상 작동하도록 합니다. ]
    [ index에 index.php를 넣어 주어 php로 만들어진 웹페이지가 정상 작동하도록 합니다. ]

    ※ 3) 필수 2: nginx를 위한 php5-fpm을 설치하여 실행하기 위해 다음 사진과 같이 주석이 해제되어 있어야 합니다.

    [ nginx에서 PHP를 사용할 수 있게 다음과 같이 주석을 몇 줄 해제해야합니다. (주의해서 해제할 것) ]
    [ nginx에서 PHP를 사용할 수 있게 다음과 같이 주석을 몇 줄 해제해야합니다. (주의해서 해제할 것) ]

    이와 같은 과정이 끝나면 nginx의 설정은 일단(…) 마무리 됩니다.

    아래 명령어를 활용해 엔진엑스 데몬을 재시작 해 줍니다.

    sudo service nginx restart

     

     

     

    ▶ 3. php5 & php5-fpm & php5-mysql 설치

    apt-get을 이용하여 php5와 php5를 nginx 및 MariaDB에서 사용하기 위한 데몬을 설치하도록 합니다. 아래 명령어를 사용합니다.

    sudo apt-get install php5 php5-fpm php5-mysql

    설치가 끝나면, phpinfo 파일을 만들어 서버에서 실행시켜 봅니다.

    <?php
    phpinfo();
    ?>

     

    다음과 같이 실행이 된다면, MariaDB를 설치해 주시면 됩니다.

    [ phpinfo(); 가 정상적으로 이해되어 오픈되고 있음을 확인할 수 있습니다. ]
    [ phpinfo(); 가 정상적으로 이해되어 오픈되고 있음을 확인할 수 있습니다. ]

     

     

    ▶ 4. MariaDB 설치 & 간단한 설정하기

    역시 apt-get을 이용하여 MariaDB를 설치해 줍니다. MariaDB는 MySQL의 fork이기 때문에 실제 사용방법은 MySQL과 거의 동일합니다.

    sudo apt-get install mariadb-server

    MariaDB가 설치되었으면, mysql 로 접속하여 MariaDB가 사용가능한 상태인지 확인합니다. (아래 명령어 이용, 기본 root 비밀번호는 관리자 비밀번호와 동일)

    sudo mysql -uroot -p
    [ mysql 명령어를 사용하여, MariaDB에 접속해 봅니다. ]
    [ mysql 명령어를 사용하여, MariaDB에 접속해 봅니다. ]

    이와 같이 MariaDB에 접속이 가능한 상태면, 워드프레스 사용을 위해 MariaDB 서버 입출력을 utf-8로 바꾸어 주는 작업을 해야 합니다.

    아래와 같이 MariaDB 설정 파일을 변경해 줍니다. 아래 명령어를 활용해 다음 스크린샷과 같이 설정 파일을 수정해 줍니다.
    스크린샷에서 보이는 것처럼 아래 내용이 추가되어야 합니다.

    sudo nano /etc/mysql/mariadb.cnf
    
    
    #
    ## nano에 진입한 후, 아래 내용이 가장 마지막에 추가되도록 합니다.
    #
    
    [client]
    default-character-set=utf8mb4
    
    [mysql]
    default-character-set=utf8mb4
    
    [mysqld]
    collation-server = utf8mb4_unicode_ci
    character-set-server = utf8mb4
    [ 이와 같은 형식으로 mariadb.cnf 파일 제일 아래에 내용을 입력해주면 됩니다. ]
    [ 이와 같은 형식으로 mariadb.cnf 파일 제일 아래에 내용을 입력해주면 됩니다. ]

    이와 같이 설정을 모두 마쳤다면, 아래 명령어들을 이용해 전체적으로 서비스를 재시작 해 줍니다.

    sudo service mysql restart
    sudo service nginx restart

    이제, 통상적인 방법으로 워드프레스를 설치해 주시면 됩니다. 아래 추가 정보는 wordpress 서버를 이사하실 때 도움이 될만한 명령어를 모아두었습니다.

     

     

     

    ▶ 웹서버에서 다른 웹서버로 워드프레스 통째로 백업 & 복구하기

    1) 워드프레스 폴더를 통째로 압축하고 해제할 때 사용할 수 있는 명령어 (예: wordpress라는 폴더에 워드프레스가 있을 때)

    sudo tar -cvf backup.tar wordpress   # 압축을 수행할 때 사용하는 명령어
    sudo tar -xvf backup.tar   # 압축을 해제할 때 사용하는 명령어

     

    2) WordPress를 사용하고 있는 데이터베이스 전체를 백업해야 할 때 사용하는 명령어

    sudo mysqldump -uroot -p -A > backup_db.sql
    
    # 데이터베이스 전체를 백업하는 명령어
    

     

    3) WordPress database만 백업하고 싶을 때 (DB 이름이 wordpress인 경우)

    sudo mysqldump -uroot -p wordpress > backup_db_wordpress.sql
    
    # wordpress 데이터를 백업하는 명령어
    

     

    4) 데이터베이스를 복구할 때 사용하는 명령어

    sudo mysql -uroot -p < backup_db.sql   # 전체 데이터베이스를 복원할 때
    sudo mysql -uroot -p wordpress < backup_db_wordpress.sql
     # wordpress 데이터베이스만 복원할 때 (단, create database wordpress; 명령어로 wordpress DB가 미리 만들어져 있어야 함)
    
    # 데이터베이스 백업을 복원할 때 사용하는 방법

     

     

    궁금한 점 있으시면 틈틈히 답변 드립니다. 댓글 부탁드립니다.

    무사히 워드프레스를 라즈베리파이에 설치 또는 이사 마치시기를 바랍니다. 감사합니다.