이 Odroid XU4는 한국기업 Hardkernel사가 제조하는 임베디드 보드로써, 사양은 아래와 같습니다.
엑시노스 5422(Cortex-A15 x4, Cortex-A7 x4 big.LITTLE 옥타코어 프로세서 with HMP)
2GB 램
eMMC 5.0과 MicroSD카드 지원
1Gbps Ethernet Port
HDMI
USB 3.0 2개, USB 2.0 1개
....
운영체제는 Ubuntu Mate 16.04가 올라가져 있는 보드이라죠.
그래서 웹서버 설치는 우분투 PC에서 설치하는거와 동일합니다.
전 APM이라고 불리는 Apache2 + PHP + Mysql 조합으로 설치했습니다
----------------------------------------------------------------------------------
1. Apache2 설치
sudo apt-get update && sudo apt-get install apache2 -y
를 통해 apache2를 설치합니다.
설치가 금방 됩니다.
설치후에는 apache2 설정을 하는것이 좋습니다
초기설정으로는 웹폴더 디렉토리로
'/var/www/'
로 되어 있을겁니다. 이를 수정하고 싶으면 아래처럼 하면 됩니다.
먼저 mkdir 명령어를 통해 원하는 디렉토리를 생성합니다.
그다음
sudo nano /etc/apache2/apache2.conf
를 해서 설정을 보면
'/var/www/'
가 기본 디렉토리로 되어 있을겁니다.
그걸 생성한 디렉토리로 바꿔주고 저장을 합니다
하나 더 수정을 해야 합니다.
sudo nano /etc/apache2/sites-available/000-default.conf
이며
여기서는
html이라는 폴더까지 만들어서 지정해주면 됩니다.
완료하고 난뒤
sudo service apache2 restart
를 통해 apache2 서비스를 다시 실행하면 됩니다.
여기서 끝이면 좋겠지만 아쉽게도 아닙니다.
디렉토리에 index.html을 만들어도
Permission 에러가 나올겁니다.
그 이유는 apache2는 "www-data"라는 그룹에서 실행되는데 사용자와는 다른 그룹이라 그렇게 된것입니다.
이를 해결하기 위해서는 다음과 같이 입력해주면 됩니다.
sudo chgrp -R 'www-data' {폴더})
sudo adduser {사용자명} 'www-data')
sudo chmod -R g+r {폴더}
sudo chmod -R g+w {폴더}
find {폴더} -type d -exec chmod g+x {} \;
(출처 : https://mytory.net/archives/3143 )
여기서 폴더는 위에서 만든 디렉토리이며, 사용자명은 현재 로그인한 사용자명입니다.
이걸 완료하면 이제 문제없이 apache2는 설치가 되었습니다.
----------------------------------------------------------------------------------
2. mysql 설치
mysql설치는 간단합니다
sudo apt-get install mysql-server mysql-client
를 하면 되거든요
알아서 화면에 나오는대로 설치해주면 됩니다.
----------------------------------------------------------------------------------
3. php 설치
php설치도 간단합니다.
apt-get install php libapache2-mod-php php-xml php-gd php-mysql
를 통해 설치를 합니다.
설치를 하고 나면
기본값으로
POST 용량제한이 8MB, 업로드 용량제한이 2MB로 되어있는데
이는 아래 명령어를 통해 설정문서를 변경할수 있습니다.
sudo nano /etc/php/7.0/apache2/php.ini
여기서
post_max_size 와 upload_max_filesize
를 변경해주면 됩니다.
마지막으로
sudo service apache2 restart
로 재시작해주면 되고요.
----------------------------------------------------------------------------------
위와 같이 설치가 다 되었습니다.
그런데,
여기서 MicroSD카드를 사용하여 부팅해서 웹서버를 설치하면,
매우 DB접근이 매우 느리더군요.
외장하드와 같은 외장장치를 USB3.0으로 연결해서 DB저장위치를 옮겨주면 됩니다.
----------------------------------------------------------------------------------
먼저 외장장치를 ext4로 포맷을 한 뒤,
USB3.0 포트에 연결을 합니다
연결하고 나면
/dev/sda1 이라고 시스템 파일이 생길것인데, 이것이 정상적으로 연결되었다는 것입니다.
이제 Odroid xu4에서 사용할수 있도록 설정을 합니다.
먼저 마운트 할 디렉토리를 생성하고,
sudo nano /etc/fstab
를 입력합니다.
가장 아래 줄에,
아래와 같이 입력을 합니다
/dev/sda1 (생성한 디렉토리) ext4 defaults 0 0
그리고 저장합니다
이제 장치를 재시작하면
생성한 디렉토리에 외장장치가 연결되어 있습니다.
----------------------------------------------------------------------------------
이제 DB를 이동합니다
먼저 실행중인 mysql를 종료합니다
sudo service mysql stop
그다음 연결한 외장장치 디렉토리에 새로운 폴더를 생성합니다 그 폴더를 (DB디렉토리) 라고 부르겠습니다.
다음 기존 db정보를 새로운 경로에 복사합니다.
sudo cp -R /var/lib/mysql (DB디렉토리)/mysql
이제 데이터 저장소를 연결합니다.
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
여기서
datadir부분을 (DB디렉토리)/mysql
로 변경해줍니다.
그리고 새롭게 저장할 폴더의 소유권도 mysql:mysql 로 변경해줍니다
sudo chown -R mysql:mysql (DB디렉토리)/mysql
기존의 mysql 폴더를 백업한뒤 생성한 mysql 폴더를 기존의 mysql로 링크 해줍니다
sudo mv /var/lib/mysql /var/lib/mysql-old
sudo ln -s /media/hdd/mysql /var/lib/mysql
sudo echo "alias /var/lib/mysql/ -> /your/new/datadir/," >> /etc/apparmor.d/tunables/alias
sudo /etc/init.d/apparmor reload
(출처: http://ourcstory.tistory.com/134 [쌍쌍바나나의 블로그])
마지막으로 mysql 서버를 재시작해주면 끝입니다
sudo service mysql restart
=============================
현재 워드프레스를 설치해서 사용중인데.
의외로 진짜 빠릿하더군요.
자체 서버이니 트래픽문제도 없고..
VPS로 소모되었던 월 10달러가 절감되어 매우 만족합니다.
이제
https와 hsts.. http/2 등 최신기술 연습해봐야 겠습니다.
ㅎㅎㅎ
혹시 조용하게 운용하는 팁이 있을까요?
xu4라면 c1에 비하면 날라다니겠습니다. ^^
날라다니더군요 ㅋ
제 경우 odroid wiki에 있는 MariaDB를 설치했었는데 말씀해주신대로 하니 잘 되었어요.
다만, MariaDB의 경우 datadir 를 설정할 cnf 파일이름이 조금 다른 것 같았습니다. 그래서
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
대신에
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
파일에서 datadir을 설정해주었습니다.