오늘은 라즈베리 파이에서 메일서비스 세팅을 Gmail 의 메일 서비스를 대신 사용하는 방법을 알아봤습니다.


저처럼 구지 라즈베리파이에서 메일 서버를 세팅 및 운영할 필요도 없지만, 사용하면서 메일 서비스를 통한 이메일을 보내고 싶을 때 사용하기 딱 좋네요.

(출처 : http://www.sbprojects.com/projects/raspberrypi/exim4.php)


1) 방법은 간단한 Message Transfer Agent 인 SSMTP 설치로 시작됩니다. 아래 맨 윗줄 블록 된 명령어를 쳐서 SSMTP 를 설치합니다.


pi@raspberrypi ~ $ sudo apt-get install ssmtp mailutils mpack


Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following extra packages will be installed:
  guile-1.8-libs libgnutls-openssl27 libgsasl7 libmailutils4 libntlm0
  mailutils-common
Suggested packages:
  mailutils-mh mailutils-doc mail-transport-agent inews
The following NEW packages will be installed:
  guile-1.8-libs libgnutls-openssl27 libgsasl7 libmailutils4 libntlm0
  mailutils mailutils-common mpack ssmtp
0 upgraded, 9 newly installed, 0 to remove and 24 not upgraded.
Need to get 3,705 kB of archives.
After this operation, 8,760 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libgnutls-openssl27 armhf 2.12.20-8+deb7u3 [218 kB]
Get:2 http://mirrordirector.raspbian.org/raspbian/ wheezy/main guile-1.8-libs armhf 1.8.8+1-8 [722 kB]
Get:3 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libntlm0 armhf 1.2-1 [19.3 kB]
Get:4 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libgsasl7 armhf 1.8.0-2 [220 kB]
Get:5 http://mirrordirector.raspbian.org/raspbian/ wheezy/main mailutils-common all 1:2.99.97-3 [795 kB]
Get:6 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libmailutils4 armhf 1:2.99.97-3 [841 kB]
Get:7 http://mirrordirector.raspbian.org/raspbian/ wheezy/main ssmtp armhf 2.64-7 [55.1 kB]
Get:8 http://mirrordirector.raspbian.org/raspbian/ wheezy/main mailutils armhf 1:2.99.97-3 [796 kB]
Get:9 http://mirrordirector.raspbian.org/raspbian/ wheezy/main mpack armhf 1.6-8 [38.4 kB]
Fetched 3,705 kB in 5s (685 kB/s)
Preconfiguring packages ...
Selecting previously unselected package libgnutls-openssl27:armhf.
(Reading database ... 81693 files and directories currently installed.)
Unpacking libgnutls-openssl27:armhf (from .../libgnutls-openssl27_2.12.20-8+deb7u3_armhf.deb) ...
Selecting previously unselected package guile-1.8-libs.
Unpacking guile-1.8-libs (from .../guile-1.8-libs_1.8.8+1-8_armhf.deb) ...
Selecting previously unselected package libntlm0.
Unpacking libntlm0 (from .../libntlm0_1.2-1_armhf.deb) ...
Selecting previously unselected package libgsasl7.
Unpacking libgsasl7 (from .../libgsasl7_1.8.0-2_armhf.deb) ...
Selecting previously unselected package mailutils-common.
Unpacking mailutils-common (from .../mailutils-common_1%3a2.99.97-3_all.deb) ...
Selecting previously unselected package libmailutils4.
Unpacking libmailutils4 (from .../libmailutils4_1%3a2.99.97-3_armhf.deb) ...
Selecting previously unselected package ssmtp.
Unpacking ssmtp (from .../ssmtp_2.64-7_armhf.deb) ...
Selecting previously unselected package mailutils.
Unpacking mailutils (from .../mailutils_1%3a2.99.97-3_armhf.deb) ...
Selecting previously unselected package mpack.
Unpacking mpack (from .../archives/mpack_1.6-8_armhf.deb) ...
Processing triggers for man-db ...
Setting up libgnutls-openssl27:armhf (2.12.20-8+deb7u3) ...
Setting up guile-1.8-libs (1.8.8+1-8) ...
Setting up libntlm0 (1.2-1) ...
Setting up libgsasl7 (1.8.0-2) ...
Setting up mailutils-common (1:2.99.97-3) ...
Setting up libmailutils4 (1:2.99.97-3) ...
Setting up ssmtp (2.64-7) ...
Setting up mailutils (1:2.99.97-3) ...
update-alternatives: using /usr/bin/frm.mailutils to provide /usr/bin/frm (frm) in auto mode
update-alternatives: using /usr/bin/from.mailutils to provide /usr/bin/from (from) in auto mode
update-alternatives: using /usr/bin/messages.mailutils to provide /usr/bin/messages (messages) in auto mode
update-alternatives: using /usr/bin/movemail.mailutils to provide /usr/bin/movemail (movemail) in auto mode
update-alternatives: using /usr/bin/readmsg.mailutils to provide /usr/bin/readmsg (readmsg) in auto mode
update-alternatives: using /usr/bin/dotlock.mailutils to provide /usr/bin/dotlock (dotlock) in auto mode
Setting up mpack (1.6-8) ...


2) /etc/ssmtp/ssmtp.conf 파일을 열어서 아래 세팅을 맞춰줍니다. YOU 를 사용자 이메일 로그인 이름으로 해줍니다.

mailhub=smtp.gmail.com:587 hostname=RPI'S HOST NAME AuthUser=YOU@gmail.com AuthPass=PASSWORD useSTARTTLS=YES

아래는 제 라즈베리파이에 설치된 SSMTP 컨픽 파일 입니다. 붉은색 화살표가 수정된 곳을 보여줍니다. 제 Gmail 의 로그인 이름과 암호는 지웠습니다.




3) 파일 내 세팅이 완료 되면, 저장한 뒤 메일 보내기를 테스트 합니다.

<PHP 메일 테스트>

<?php

$message = $_SERVER['HTTP_USER_AGENT'];
mail('yobine@tistory.com', 'You have got mail', $message, 'RaspberryPI@house');

?>


4) 도착 메일입니다.


이렇게 하여 간단하게 이메일을 라즈베리파이 의 웹서비스에서 보낼 수 있게 되었습니다.  :)

저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim


라즈베리파이를 Linux, Apache, MySQL, PHP 를 설치하여 웹서버로 응용사용해 봅니다.


1. 라즈비안 이미지를 다운받습니다. Raspbian https://www.raspberrypi.org/downloads/

2. 이미지를 만들고 SD 카드를 준비합니다. Win32 Disk Imager 프로그램을 이용 합니다.

3. 준비된 SD 카드를 라즈베리파이에 끼운 후, 모니터, 키보드 그리고 인터넷 케이블을 연결 한 뒤 전원을 켭니다.

4. 제일 먼저 초기 설정이나오는데, 초기설정에서 

- 1. Expand Filesystem 을 설정하고

- 3. Enable Boot To Desktop 을 Disable 합니다.

- 4. 필요에 따라 Internationalisation Options 를 설정해줍니다.

- 7. Overclock 을 Modest 로 해줍니다.

- 8. Advanced Options 에 들어가서 SSH Server 설정을 Enable 해줍니다.

- 8. Advanced Options 에서 update Raspberry Pi 를 해줍니다.


5. 설정이 끝난 후 라즈베리파이를 리부팅 해줍니다.

sudo reboot


6. 리부팅이 끝난 후 라즈베리파이의 ip 주소를 확인합니다.

ifconfig


7. OS 업데이트를 해줍니다. 시간이 꽤 걸립니다.

sudo apt-get update

sudo apt-get upgrade


8. Apache 설치를 합니다.

sudo apt-get install apache2 php5 libapache2-mod-php5


질문이 나오면 y 를 눌러 진행을 계속합니다. 시간이 꽤 걸리는 작업입니다.

혹시 오류가 난다면, 아래 명령어 2개를 시도해봅니다. 오류가 나지 않고 설치가 끝나면 아파치 서버를 재시작 합니다.

sudo groupadd www-data

sudo usermod -g www-data www-data


아파치 서버를 재시작 합니다.

sudo service apache2 restart


이제 다른 컴퓨터에서 웹브라우저를 열고 라즈베리파이의 IP 주소를 적어봅니다. "It works!" 라는 화면이 보이면 성공.


9, MySQL 을 설치합니다.

sudo apt-get install mysql-server mysql-client php5-mysql


질문이 나오면 y 를 눌러 진행을 계속합니다. 설치중에 MySQL 의 root 계정 암호를 설정하라고 나오는데, 원하는 암호로 설정한뒤 설치를 완료합니다.


10. FTP 설치

파일을 전송하기 위한 FTP 설치를 합니다. 먼저 web root 의 권한을 설정합니다.

sudo chown -R pi /var/www


vsftpd 를 설치합니다.

sudo apt-get install vsftpd


설치가 끝난 후 vsftpd 의 설정을 해줍니다.

sudo nano /etc/vsftpd.conf


- 1. anonymous_enable=YES 를 찾아 anonymous_enable=NO 로 설정

- 2. local_enable=YES 앞에 # 지워주기

- 3. write_enable=YES 앞에 # 지워주기

- 4. 맨아래에 내려가 force_dot_files=YES 적어주기

- 5. ctrl+X 를 누른 후 y 를 눌러 저장하며 나옵니다.


설정이 끝난 후 FTP 서비스를 재시작 해줍니다.

sudo service vsftpd restart


11. 마무리

암호 설정으로 마무리 해줍니다. ssh 연결이 가능한 상태이기 때문에 라우터에서 dmz 설정이 되어 있거나 하면 바로 라즈베리파이에 ssh 로 연결이 가능하므로, 누구나 다 알고 있는 라즈베리파이의 암호를 바꿔줍니다.


sudo passwd pi


그리고 root 의 암호도 바꿔줍니다. 두번째 명령어는 root 유저의 모드 변경 명령어입니다.


sudo passwd root

sudo usermod -L root


FTP 설정이 끝났습니다. FTP 클라이언트 프로그램으로 라즈베리파이에 연결하여 파일을 주고 받을 수 있게 되었습니다.


라즈베리파이에 LAMP 설정이 끝났습니다.





저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim


Vim 사용하시는 분들은 아마도 여러 세팅을 하여 config 을 저장할 수 있도록 한 뒤 사용중이라고 하네요. 이번에 간단하게 줄 번호 보여주는 세팅 과 인덴트 를 자동으로 해주는 세팅을 만들어봤습니다.


기본적으로 .vimrc 파일이 없어서 저는 만들어야 했습니다. 만들기 전에 확인 필수 입니다.


vim .vimrc



이렇게 만들고 나면 vim 실행하니 제 화면이 아래와 같이 변하였습니다.

그외에 더 많은 세팅을 원하시면 다음 링크가 유명한 Ultimate VIM configuration 입니다.


여하튼 vim 세팅은 이정도로 하고, 쉘 스크립트의 if-else 예문을 소개합니다.

shell script 의 if-else 는 간단합니다. 주의해야 할 점은 비교 변수와 "[" 그리고 시작의 "if" 사이에 모두 공백이 필요합니다.



간단하게 echo 로 이름을 묻고, name 변수에 read 해줍니다. 같은 방법으로 나이를 물은 뒤 age 변수에 read 하지요.


if 문의 기본 문법은 if [ 변수 test 대상 ] then 실행문 else 실행문 fi

이렇게 됩니다. if 로 시작하여 if 의 반대인 fi 로 끝을 내 줍니다. 비교 test 는 -lt (less than 보다 작다) 를 사용했는데요, 그외 다른 어떤 비교 test 들이 있는지는 확인 가능합니다.


여기서는 간단하게 18 세 이상이면 맥주를.. 이하면 안된다.. 라고 간단하게 출력합니다.


man test

혹은

man [


메뉴얼 내에 많은 내용이 있는데요 그중 몇개만 추려봤습니다.


       STRING1 = STRING2
              the strings are equal

       STRING1 != STRING2
              the strings are not equal

       INTEGER1 -eq INTEGER2
              INTEGER1 is equal to INTEGER2

       INTEGER1 -ge INTEGER2
              INTEGER1 is greater than or equal to INTEGER2

       INTEGER1 -gt INTEGER2
              INTEGER1 is greater than INTEGER2

       INTEGER1 -le INTEGER2
              INTEGER1 is less than or equal to INTEGER2

       INTEGER1 -lt INTEGER2
              INTEGER1 is less than INTEGER2

       INTEGER1 -ne INTEGER2
              INTEGER1 is not equal to INTEGER2


자.. 이렇게 만들어진 스크립트 테스트를 하면 결과는 다음과 같습니다.

항상 실행 전에 파일 접근 권한을 700 으로 사용자에게 읽기 쓰기 실행 권한을 부여합니다.




간단한 쉘 스크립트 내 if-else 사용법을 알아봤습니다. 


다음은 if-elif-else 예문입니다. 최간단 계산기.


1) 2개 의 argument 를 받습니다.

2) 계산법을 받습니다.

3) 계산을 출력합니다.


vim calc.sh



받을 argument 들은 $1, $2 로 받습니다.

$(($1+$2)) 로 계산 합니다.



결과입니다. 실행 시, argument 를 2개 넣어줍니다. 예에서는 8 과 9 로 실행하였습니다.

저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim

오늘 ubuntu 11.10 으로 업그레이드 했습니다.
저처럼 새로운 데스크탑 보다는 이전 버전의 classic desktop 을 원하시는 분들을 위한 글입니다.
우분투 11.04 버전에서는 지원하던 classic desktop 보기가 11.10 버전에서는 지원하지 않습니다.
그래서 터미널에서 명령어를 쳐서 이전 버전의 gnome-pannel 을 설치 해 줘야 합니다.

sudo apt-get install gnome-panel





이후 로그인 시 옆에 세팅 아이콘을 눌러 classic 으로 바꿔 로그인 하시면 됩니다.
출처(http://tombuntu.com/index.php/2011/09/11/install-the-classic-desktop-in-ubuntu-11-10/)

 
저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim



티스토리 툴바