개발자/라즈베리파이4

라즈베리파이 4 개발 환경 빠르고 쉽게 설정하기

지구빵집 2021. 7. 28. 10:24
반응형

 

 

라즈베리파이 개발 환경 빠르고 쉽게 설정하기 

 

이번 포스팅 문서는 라즈베리파이를 제대로 사용하는 절차와 방법을 설명합니다. 라즈베리파이는 작은 보드 한장으로 만들어진 온보드 컴퓨터 시스템이기 때문에 어떤 일이든 다 할 수 있어서 설정부터 아주 복잡한데 저는 늘 하는 절차가 있습니다. 가능하면 가장 사용하기 편한 방식으로 모든 필요한 기능을 설치하고 그 내용을 이미지로 구워서 다른 라즈베리파이를 사용할 때 항상 구워서 같은 환경으로 사용합니다. 시작을 동일하게 한다는 말입니다. 물론 개발할 때도 마찬가지입니다. 쉽게 사용하고 바로 개발작업을 하기 위한 기본 설정부터 삼바 서버 설치, 웹 서버로 사용하기 위한 LAMP 설치, 화면 보호기 설치 후 자동 꺼짐 방지 등 여러 환경을 설치합니다. 

 

포스팅을 위해 사용한 라즈베리파이는 Raspberry Pi 4 Model B+에서 설치하고 세팅 과정을 설명합니다. 문의 사항은 댓글에 남겨주세요. ^^

 

아래 과정을 따라할 때 필요한 툴은 Putty, Win32DiskImager, SD Card Formatter 세 가지 툴이 필요합니다. 다른 것들은 패키지로 직접 설치가 되거나 윈도우에서 연결하여 작업하면 불편함이 없습니다. Putty는 원격접속 프로그램으로 파이의 IP 주소로 접속할 수 있습니다. Win32DiskImager는 Raspberry Pi 이미지를 SD 카드에 굽는 프로그램입니다. SC Card Formatter는 말 그대로 SD 카드를 초기상태로 포맷하는 프로그램인데 사용하지 않으셔도 됩니다.  

 

● Putty 설치 - 다운로드 받는 곳 연결

 

아래 이미지는 Putty 다운로드 받는 사이트 화면입니다. 화살표 보이지죠? 자기 컴퓨터 사양(여기서는 윈도우)에 맞는 버전을 다운 받아 적당한 폴더에 넣으세요. 바탕화면에 바로가기 아이콘을 만들어서 직접 실행하시면 됩니다.

Putty 설치

 

● Win32DiskImager 다운 받는 곳

맨 아래 부분에 다운로드 버튼 있습니다.

 

● SD Card Formatter

중간 부분에 윈도우 버전 다운 받아 설치하세요.

 

SD Card Formatter 다운로드

 

 

1. 라즈베리파이 이미지 파일 다운 받아 굽기

 

운전자가 없는 자동차는 그냥 쇠덩어리이듯 SD 카드에 이미지(운영체제)를 설치해서 라즈베리파이에 끼우지 않는 한 파이는 단순한 회로보드입니다. 가장 먼저 할일은 라즈베리파이 홈 페이지에서 최신 이미지 파일을 다운 받아 굽는 일입니다. 다운 받아 압축을 풀면 확장자가 .img 인 파일이 나오는데 바로 라즈베리파이 리눅스 운영체제 이미지입니다. 이 이미지를 SD 카드에 굽고 라즈베리파이에 끼워 실행하면 리눅스 OS가 실행됩니다. 아래 이미지를 참고하세요.

 

라즈베리파이 이미지 파일 다운 받아 굽기

 

2. 기본적인 설정 - 한글, 지역, 타임존, 부팅 설정

 

 

3. SSH passwod 설정 경고 뜨지 않게 하기

 

위 설정에서 SSH Enable 설정을 화면 패스워드 변경을 하라는 메시지가 뜨는 데 이 경고가 뜨지 않게 하는 방법입니다. 아래 메시지가 윈도우로 뜨는 것을 막아줍니다.

 

GUI 화면에서 경고메시지

 

SSH is enabled and the default password for the 'pi' user has not been changed. 
This is a security risk - please login as the 'pi' user and run Raspberry Pi Configuration to set a new password.

SSH가 활성화되어 있고 'pi' 사용자의 기본 암호가 변경되지 않았습니다. 
이것은 보안상의 위험입니다. 
'pi' 사용자로 로그인하고 'passwd'를 입력하여 새 비밀번호를 설정하십시오.

 

- 가장 좋은 방법은 pi 사용자의 SSH 암호를 변경하는 것이다. $passwd 명령을 사용합니다.

- VNC를 통해 부팅하거나 로그인할 때마다 대화 상자와 "확인"을 클릭해야 하는 필요성을 없애려면 /etc/xdg/lxsession/LXDE-pi 디렉토리 에서 sshpwd.sh 파일을 삭제하면 됩니다 . 

 

$sudo rm /etc/xdg/lxsession/LXDE-pi/sshpwd.sh

* 또는 언젠가 다시 가져오고 싶은 경우에 대비하여 파일의 이름을 바꿀 수 있습니다. 또는 어떤 이유로 오류 메시지를 변경하여 재미를 느끼고 싶다면 파일을 편집하고 대화 상자의 내용을 변경할 수 있습니다. 

 

터미널에서  ssh 경고 메시지

 

- 터미널에서 SSH 암호 경고 비활성화: 터미널에 로그인할 때 표시되는 Raspberry Pi SSH 비밀번호 경고는 훨씬 덜 눈에 띕니다. 사라지게 하기 위해 아무 것도 클릭할 필요가 없습니다. 그러나 제거 하려면 /etc/profile.d 폴더 에서 sshpwd.sh 파일을 삭제하면 됩니다 .

 

$sudo rm /etc/profile.d/sshpwd.sh

 

3. 삼바 서버로 만들기: 삼바 서버를 설치하면 윈도우에서 마음 껏 파이를 접속할 수 있습니다. 파일을 카피하고 폴더를 들여다보거나 수정하고 개발하기가 쉽습니다. 자세한 삼바 서버 설명과 설치 방법을 참고하세요. 

 

 

4. GUI 에서 화면 보호기 설치 후 화면 자동 꺼짐 방지 방법 참고

 

 

5. 서버로 만들기 위해 LAMP 스택을 설치한다. LAMP 스택이란 리눅스, 아파치, 마리아 DB, PHP 를 말한다. 서버 기능을 모두 사용할 수 있도록 관련 패키지를 설치한다. 아래 명령어 대로 설치하면서 각 패키지를 설치한 후 확인한다.

 

● apache2 설치

$sudo apt-get install apache2 

설치한 버전을 확인하려면 apache2 -v 동작 확인은 웹에서 해당 ip로 접속하면된다.

 

pi@raspberrypi:~ $ apache2 -v
Server version: Apache/2.4.38 (Raspbian)
Server built:   2021-06-10T10:13:06

 

● MariaDB 설치하기 

$sudo apt-get install mariadb-server 

버전 확인은 mysql -V 

 

pi@raspberrypi:~ $ mysql -V
mysql  Ver 15.1 Distrib 10.3.29-MariaDB, for debian-linux-gnueabihf (armv7l) using readline 5.2
pi@raspberrypi:~ $

 

DB를 설치하고 나서 사용자 설정을 위해 해주어야 할 게 많습니다.

 

설치가 다 되었다면

$sudo mysql -u root

DB 설치하실 때 패스워드를 입력하면 MariaDB에 들어가지고

>show databases;

을 실행하면 databases을 확인 가능합니다.

설치 중간에 root 비밀번호 설정하는 것이 나오지 않는다면 root 비밀번호를 따로 설정 가능합니다. 

먼저

>use mysql;

을 입력하여 mysql로 접속합니다.

>select user, host, password from user;

root 계정의 비밀번호가 비어있는 것을 확인할 수 있습니다. 아래 명령어로 비밀번호 설정합니다.

여기서 중요한 점은 명령이 안 먹을 경우 ' '와 - 문자를 새로 입력합니다.
>update user set password=password(‘1234’) where user = ‘root’;
 
그후 다시 아래 명령어로 확인해보면 설정된 것을 볼 수 있습니다.

>select user, host, password from user;
 
DB를 종료하는 법은

>quit;

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

이 명령어를 입력해 bind-adress 부분을 주석처리하여 줍니다(#으로 주석처리)

다음으로 아래 명령어를 입력하여 방확벽을 설정해 줍니다.

$sudo iptables –A INPUT –p tcp —dport 3306 –j ACCEPT
$sudo iptables –A OUTPUT –p tcp —dport 3306 –j ACCEPT

$sudo iptables-save

다시 MariaDB에 접숙하여 Mysql에서 권한을 설정해 줍니다.

$sudo mysql –u root
>use mysql;

>grant all privileges on *.* to ‘root’@identified by ‘1234’;


>flush privileges;

마지막으로 

$sudo servie mysql restart
 
을 입력하여 재시작 해줍니다.

 

이렇게 해도 웹에서 192.168.168.107/phpmyadmin 에서 root 로 들어가려고 해도 접근이 거부되어 안 들어갑니다.  사용자 phpmyadmin 과 비밀번호로 잘 접속됩니다.

 

MySQL 5.7, MariaDB 10.1 이후 버전은 보안상 root 계정은 터미널에서만 접속할 수 있으며 root를 제외한 사용자 계정으로 phpMyAdmin에 접속할 수 있기 때문에 MySQL에서 새로 사용자를 만들고, 권한을 부여해서 root 계정처럼 사용할 수 있습니다. 

 

아래를 참고하세요.

 

MySQL 사용자 계정 생성

터미널에 접속한 다음 ①sudo su 명령어로 슈퍼유저 권한을 획득합니다.
그리고 ②mysql -u root -p를 입력해 root 계정으로 로그인 한 후 다음 명령어를 입력해 
새로운 MySQL 계정을 만들고 모든 권한을 부여해 root와 같은 계정을 만들어 줍니다.

>create user '아이디'@'%' identified by '비밀번호';
>grant all privileges on *.* to '아이디'@'%';

이제 웹 브라우저에서 phpMyAdmin로 이동한 다음 생성한 아이디와 비밀번호를 입력해 
로그인할 수 있으며 root 보다는 한단계 낮은 권한으로 사용할 수 있는 것을 
확인할 수 있습니다.

>UPDATE mysql.user SET Grant_priv='Y', Super_Priv='Y' WHERE user='아이디';
>FLUSH PRIVILEGES;

보안을 포기하고 root와 동등한 권한을 사용하고 싶다면 터미널에서 위 명령어를 
추가로 입력하면 되겠습니다.

 

어렵네요. ^^

 

● PHP 설치하기 

 

apt-get install php libapache2-mod-php php-mysql  

설치버전 확인 php -v 

 

pi@raspberrypi:~ $ php -v
PHP 7.3.29-1~deb10u1 (cli) (built: Jul  2 2021 04:04:33) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.29, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.29-1~deb10u1, Copyright (c) 1999-2018, by Zend Technologies
pi@raspberrypi:~ $

 

동작 확인을 위해서는 phpinfo.php 파일을 하나 만들어서 할 수 있는데 웹 루트폴더에 파일하나를 생성해주자.

 

$sudo nano /var/www/html/info.php 

 

<?php
phpinfo() ;
?>

 

크롬 브라우저에서 라즈베리파이 IP 주소와 방금 작성한 info.php 파일을 주소줄에서 호출합니다.

"http://192.168.168.107/info.php" 아래처럼 잘 뜨면 성공입니다.

 

서버의 info.php 파일 호출

 

6. phpmyadmin 설치

 

phpMyadmin 이란 MySQL을 웹 상에서 관리할 목적으로 PHP로 작성한 오픈 소스 도구입니다. 웹 브라우저로 접속하여 데이터베이스, 테이블, 필드, 열의 작성, 수정, 삭제, SQL 상태 확인, 사용자 및 사용권한 관리 등 다양한 작업을 수행할 수 있습니다.

 

1-1. 아래 명령어로 phpmyadmin 패키지를 설치합니다. 

 

$ sudo apt install phpmyadmin

 

1-2. phpMyAdmin을 실행하기 위한 설정을 자동으로 할 웹서버를 선택합니다. 여기서는 스페이스바 또는 엔터를 통해 apache2를 선택하면 설치가 계속 진행합니다.

 

1-3. phpMyAdmin을 위한 설정을 DB에 적용하기 위해 Yes를 선택하고 엔터를 누릅니다.

 

1-4. MySQL에 등록할 Admin 암호를 입력해줍니다. 저는 raspberry 로 입력했습니다. 

 

확인하기 위해서 라즈베리파이 IP 주소/phpmyadmin 으로 접속합니다.

 

여기부터는 위 DB 설치 부분을 참고하세요.

 

 

7. 공유기로 만들기: 라즈베리파이를 SSID와 암호를 가진 공유기로 만들어 언제든 접속할 수 있는 방법을 자세히 작성한 문서를 참고하세요. 이더넷 케이블을 연결하면 아이피 주소를 받아오고, 와이파이 환경에서는 비록 인터넷은 안되지만 공유기로 접속이 가능하면 개발하기 편합니다.

 

여기까지 하셨으면 SD카드 이미지를 백업해서 보관합니다. 가장 잘 동작하고, 필요한 모든 환경이 설정되어 있으니 이미지만 잘 구워 놓으면 다음부터 이 이미지를 구워서 사용하면 됩니다. 굽는 방법은 아래 이미지를 보시면 됩니다.

 

win32DiskImager 툴을 사용해서 라즈베리파이 이미지를 구울 땐 다운 받은 이미지를 선택하고 Write 버튼을 누르면 라즈베리파이 이미지를 SD 카드에 굽습니다. 반대로 SD카드 이미지를 리더기에 넣고 저장될 이미지 파일의 위치를 설정하고 Raed 버튼을 누르면 SD 카드의 크기와 동일한 이미지 파일이 백업(저장)됩니다. 어떻게 보면 길고 복잡한 과정이지만 라즈베리파이 사용할 때 필수적인 과정이니 잘 알아두시면 멋진 라즈베리파이 사용자가 되실 겁니다. 고생하셨습니다. ^^

 

 

 

참고

phpmyadmin root 접속불가 해결방법

mysql 유저권한 설정 - grant 명령

라즈베리파이 4 LAMP 설치 - 2 외 다른 포스트

 

 

Raspberry Pi 4 Model B+

 

 

 

 

반응형