2020. 6. 7. 03:42ㆍLinux/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를 다운로드 받습니다.
ubuntu.com/download/raspberry-pi/thank-you?version=20.04&architecture=arm64+raspi
Imager를 통해서 ubuntu server를 다운로드 받을 경우
상당히 오래걸립니다.
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 |