Raspberry Pi 3B+를 이용한 Home Server 만들기

2020. 6. 7. 03:42Linux/Raspberry Pi

Raspberry Pi 3B+를 이용한 Home Server 만들기

 

Raspberry Pi 3B+를 이용하여 Ubuntu Server를 만들려고 합니다.

 

준비물:

1. raspberry Pi 3B+

2. SD Card

3. USB 키보드.

3. HDMI 모니터.

 

ubuntu Server를 설치하는 방법은 2가지가 있습니다.

1. 직접 다운로드 받아서 설치하는 방법.

2. Imager를 통해서 자동으로 다운로드 받으면서 설치하는 방법.

 

일단 SD Card에 설치를 위한 Imager를 설치합니다.

downloads.raspberrypi.org/imager/imager.exe

 

직접 다운로드 받을 경우 아래 링크를 통해서 ubuntu server를 다운로드 받습니다. 

Raspberry pi를 위한 ubuntu server 사이트

ubuntu.com/download/raspberry-pi/thank-you?version=20.04&architecture=arm64+raspi

 

Thank you for downloading Ubuntu Server for Raspberry Pi | Ubuntu

Ubuntu is an open-source operating system for cross platform development, there’s no better place to get started than with Ubuntu on a Raspberry Pi.

ubuntu.com

Imager를 통해서 ubuntu server를 다운로드 받을 경우

Operating System에서 Choose OS를 선택
4번째 Ubuntu를 선택
두번째 Ubuntu 20.04 LTS 64bit를 선택
SD Card를 선택하고 Write를 클릭

상당히 오래걸립니다.

 

Write가 완료되고 나면, 다시 SD 카드를 컴퓨터에 연결합나다.

System-boot이라는 이름의 drive가 잡히고, 아래 파일을 열고 아래와 같이 수정하여 Wi-fi가 될수 있도록 수정합니다.

wifis:

  wlan0:

     dhcp4: true

     optional: true

     access-points:

           <wifi network name>:

                     password: "<wifi password>"

 

그런데, 이상하게 Wifi가 안됩니다. 그래서 일단 Ethernet을 통해서 사용합니다.

완료되고 나면 키보드와 HDMI 모니터를 연결하고 전원을 연결합나다.

 

처음 로그인시 Id/password는 ubuntu/ubuntu 입니다.

 

그리고 아래와 같이 ubuntu를 upgrade를 해줍니다.

 

$sudo apt update

$sudo apt upgrade

 

그리고 wifi가 될 수 있도록 아래 파일을 열어서 위 network.config와 같이 추가를 해 줍니다.

$sudo vi /etc/netplan/50-cloud-init.yaml

 

여기까지 ubuntu server 설치 및 network 설정이 완료되었습니다.

 

이제부터 Server를 위한 Application들을 설치합니다.

 

잠깐 설치될 프로그램들에 대해서 간략하게 설명합니다.

Apache : http server를 위한 프로그램.

PHP : php script language를 위한 프로그램.

MariaDB: SQL을 위한 프로그램.

 

 

1. Apache 설치.

$sudo apt install apache2 -y

Apache2를 설치완료하고 webbrowser에 raspberry pi IP를 입력하면 아래와 같이 나타납니다.

제가 사용하는 raspberry pi의 가상 IP주소는 192.xxx.xxx.xxx 입니다.

해당 Page는 다음 경로에 위치해 있습니다.

/var/www/html/index.html

이제 http서버 설치가 완료되었습니다.

이제 server에서 php를 지원하기 위해서 php를 설치합니다.

 

2. PHP 설치.

$sudo apt install php php-mbstring -y

그리고 php test를 위해서 index.html 파일을 삭제하고 index.php파일을 생성합니다.

$sudo rm /var/www/html/index.html

$sudo vi /var/www/html/index.php

아래 내용을 삽입합니다.

<?php echo "hello world"; ?>
<?php echo date('Y-md H:i:s'); ?>
<?php phpinfo(); ?>

 

그리고 저장후 Web browser로 다시 IP를 입력하면 다음과 같이 표시가 됩니다.

3. SQL 설치.

$sudo apt install mariadb-server php-mysql -y

$sudo mysql_secure_installation

Enter

Y root 패스워드설정

Y anonymous user 삭제

Y 원격 root login 미허용

Y or N test Database 삭제

Y 설정 저장.

 

$sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf

 

bind-address = 127.0.0.1을 아래와 같이 주석처리

# bind-address = 127.0.0.1

 

$sudo systemctl enable mariadb

$sudo systemctl start mariadb

$sudo systemctl status mariadb

 

- 방화벽확인 -

$netstat -tnlp | grep 3306

 

방화벽이 열려있지 않다면, 다음과 같이 수행합니다.

$sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

$sudo iptables -A OUTPUT -p tcp --dport 3306 -j ACCEPT

 

aaa user 생성.

$sudo mysql -uroot -p

 

MariaDB[(none)]> create user 'aaa'@'%' identified by 'password';

MariaDB[(none)]> grant all privileges on *.* to 'aaa'@'%'  with grant option;

MariaDB[(none)]> flush privileges;

MariaDB[(none)]> exit

 

user password 변경

MariaDB[(none)]> use mysql

MariaDB[(mysql)]> select user, password from user;

MariaDB[(mysql)]> update user set password=password('12341234') where user='pi';

MariaDB[(mysql)]> flush privileges;

 

원격 접속

$mysql -h<ip address> -uaaa -p<password>

'Linux > Raspberry Pi' 카테고리의 다른 글

raspberry pi wlan power  (0) 2022.01.07
raspberry pi zero w wifi 공유기 호환문제  (0) 2021.12.02
GPIO 제어  (0) 2019.08.18
Raspberry Pi TensorFlow  (0) 2019.01.10
라즈베리 파이 VNC 이용하기  (0) 2018.12.31