라즈베리파이 팩스서버에서 Avantfax 웹애플리케이션 운용하기

 

 

   지난 포스팅에서 리눅스 운영체계가 설치된 라즈베이파이(혹은 유사 파이)에 USB 팩스모뎀을 연결하고, hylafax 서버를 설치하여 팩스머신으로 운용하는 방법에 대하여 기술한 바 있습니다. 이번에는 이 라즈베리파이 팩스머신을 보다 편리하게 운용하기 위하여 Avantfax라고 하는 웹애플리케이션을 설치하고 초기 설정을 진행해 보겠습니다.

   Avantfax를 설치하는 이유는, hylafax가 리눅스 커맨드기반 인터페이스(CLI) 환경에서 동작하기 때문에 운용이 쉽지 않고 직관적이지 않는데 기인합니다. 물론 hylafx의 서드파티 클라이언트를 통해서 일부 GUI로 관리할 수도 있습니다만, 통합적이고 직관적인 관리는 어렵지요. Avantfax의 더 큰 장점은, Avantfax를 통해 웹에서 관리하게 되면, 사무실 등 설치 장소 외에서도 인터넷이 되는 곳이라면 어디에서나 사무실 팩스서버 웹인터페이스에 접속하여 원격관리 및 팩스 수발신이 가능하다는 데에 있습니다.

   Avantfax는 리눅스 운영체제가 설치되고 웹서버와 MySQL 데이터베이스, 그리고 PHP에 의한 동적 웹서비스 환경하에 동작하는 웹애플리케이션입니다. 따라서 소위 LAMP(Linux + Apache/Nginx + MySQL/MariaDB + PHP) 환경이 설치되어 있는 장치라면, 일반 PC환경에서도 당연히 적용할 수 있는 것이지요. 그래도 24시간 수신대기를 위한 팩스머신이라면 저전력을 소모하고 소음이 없는 라즈베리파이 등의 파이류가 제격입니다.

   저는 그동안 위의 환경을 구축하기 위한 일련의 포스팅들을 진행해 왔습니다. 다만, 라즈베리파이나 다른 파이들에 리눅스 운영체제를 설치하는 과정에 대하여는 국내외 인터넷에 많은 자료들이 있으므로 그 자료들을 참조하면 되구요. 저는 Raspbian 등 데비안 계열 운영체제가 설치되어 있다는 것을 전제로 이 포스팅을 진행합니다. 운영체제 설치 이후 필요한 사항들에 대하여는 아래 링크를 참조하시어 반드시 각 단계를 거쳐야 합니다.

 

 

   우선 우리의 라즈베리파이에 ssh 접속하거나 데스크톱으로 사용하신다면 터미널을 열어서 아래와 같이 Avantfax 웹애플리케이션을 다운받습니다. 현재 작성일 기준 최신 3.3.5버젼을 다운로드 받을 경우 아래와 같습니다.

1
$ cd /usr/src
cs
1
$ sudo wget http://jaist.dl.sourceforge.net/project/avantfax/avantfax-3.3.5.tgz 
cs

 

   Avantfax의 최신 버젼을 확인하기 위해서는 웹브라우져에서 아래의 URL을 열어 확인하시면 됩니다.

   아래와 같이 tgz 압축을 풀어 줍니다.

1
$ sudo tar zvxf avantfax-3.3.5.tgz
cs

   압축을 풀어준 디렉토리에 있는 데비안용 설치 스크립트를 에디터로 열어 봅니다.

1
$ cd avantfax-3.3.5/
cs
1
$ sudo nano -w debian-install.sh 
cs

   이 스크립트의 내용을 보면 맨 처음에 필요한 패키지들을 설치하고, PHP의 pear모듈을 설치한 후 Avantfax를 타겟 폴더에 설치하고, smarty 설치, DB 생성 및 설정, hylafax 설정 등을 스크립트로 한방에 처리할 수 있도록 짜여진 프로그램임을 알 수 있습니다. 이 스크립트가 현재 우리의 환경과 정확히 일치한다면 별다른 고생없이 이 스크립트를 실행만 해 주면 되겠습니다만, 불행히도 그렇지 않지요. 그 이유는 다음과 같습니다.

  • 사전 설치 대상 필수패키지들이 현재 버전의 데비안과 맞지 않습니다. 따라서 기본 저장소에 없는 패키지의 설치를 요구하는 등 현실과 맞지 않습니다.

  • 이 스크립트는 Apache, Mysql을 자동으로 설치하도록 되어 있지만, 우리는 이미 설치한 Nginx와 MariaDB를 활용할 것입니다.

  • 피어 사이트에서 pear 모듈을 다운 받아 설치하는 과정에서는 에러가 나지 않지만, 동적 웹사이트가 작동하지 않고 error가 납니다. 이는 pear 모듈 저장소의 버전 불일치에 기인하는 것으로써 특정 pear 모듈들을 베타버젼으로 업데이트해 주어야 해결되는 문제입니다.

   위 세가지 사항이 반영되도록 스크립트를 수정한 후 스크립트를 실행해도 무방하지만, 혹시 발생할 수도 있는 에러를 방지하기 위하여 위 문제와 관련된 사항은 스크립트 실행 전에 미리 별도로 실행해 주는 것을 권장합니다. 아예 스크립트를 실행하지 않고, 참고만 하면서 터미널 배시쉘에서 모두 실행 및 설정해 주는 것도 가능합니다. 공부는 되겠지만 시간과 편의를 위해 우리는 적정한 선에서 스크립트를 사용할 것입니다. 일단, nano에디터에서 편집 없이 ctrl+X로 나옵니다.

   우선, 아래와 같이 필수패키지 먼저 설치하겠습니다.

1
sudo apt-get install imagemagick libtiff5-dev netpbm libnetpbm10-dev giflib-tools php-mail php-mail-mime php-file php-db psutils wdiff rsync 
cs

   다음으로, pear 모듈을 설치합니다.

1
2
3
$ sudo pear channel-update pear.php.net
$ sudo pear upgrade-all
$ sudo pear install --alldeps Mail Net_SMTP Mail_mime MDB2_driver_mysql
cs

 

   여기까지가 스크립트에 포함된 pear 설치 내용입니다만, 현재 pear의 버전으로는 에러가 납니다. MDB2의 Mysql드라이버가 버전이 낮아서 호환이 안되는 문제입니다. 아래와 같이 베타버전으로 업그레이드 해 주어야만 정상적으로 작동합니다.

1
$ sudo pear upgrade mdb2-beta mdb2_driver_mysqli-beta
cs

  이제 Apache와 Mysql 관련 부분이 남았습니다만, Apache는 설치하지 않을 것이므로 Nginx에서 웹페이지를 구성하는 것만 추후에 진행해 주면 되고, Mysql은 MariaDB가 100% 대체 (Drop-in Replacement)하므로 스크립트를 그대로 이용하면 됩니다. 이제 스크립트의 환경설정(Preference)인 debian-prefs.txt 파일을 편집해 봅시다.

1
$ sudo nano -w debian-prefs.txt 
cs

   아래와 같은 부분을 각자의 상황에 맞게 수정해 줍니다.

FAXDOMAIN=fax.mydomain.com

  예를 들어, 외부에서 접속할 수 있는 도메인 주소가 fax.example.org라면 위 내용을 아래와 같이 바꾸어 줍니다.

FAXDOMAIN=fax.example.org

   새로이 생성되는 avantfax를 위한 데이터베이스의 이름과 그 사용자명은 그대로 avantfax를 쓰는 것이 관리목적상 바람직하지만 그 비밀번호는 보안을 위해 주어진 값(3.3.5버전에서는 d58fe49)에서 반드시 변경하기 바랍니다.

PASS=새로이_변경된_비밀번호

   Mysql(MariaDB)의 루트 비밀번호는 저처럼 MariaDB 혹은 Mysql을 사전에 설치했다면, 설치시 설정한 비밀번호를 아래 자리에 입력하여야 에러가 나지 않습니다.

ROOTMYSQLPWD=Mysql_혹은_MariaDB_처음_설치시_설정한_root_비밀번호

   주의할 점은, 리눅스시스템의 root비밀번호가 아닌 MariaDB 혹은 Mysql의 root 비밀번호를 입력해야 한다는 점입니다.

   아래 그림을 참조하여 모든 변경이 완료 되었다면, Ctrl+X키를 누르고 y키로 저장을 해 주시면서 nano 에디터에서 나옵니다.

1
$ sudo chmod 600 debian-prefs.txt
cs

   debian-prefs.txt 파일은 민감한 비밀번호가 저장된 파일이므로 보안을 위하여 위와 같이 권한을 변경해 줍니다.

   다음은, 한번 내용만 들여다 보았던 debian-install.sh 파일을 편집합니다.

1
$ sudo nano -w debian-install.sh
cs

   우리가 이미 진행했던 사항들에는 줄 맨 앞에 #표시를 붙여 주석으로 만들어 주어 스크립트 실행 시 제외되도록 해 줍니다. 사전 필수 패키지 설치와 pear 모듈 설치 부분입니다. 아래 그림을 참조하시기 바랍니다.

   우리는 Apache 웹서버를 설치하지 않고 Nginx 웹서버를 설치하여 진행하고 있습니다. 아래 그림은 Apache 웹서버를 위한 가상호스트 설정과 웹서버 재시작 부분입니다. 역시 마찬가지로 그림처럼 모두 주석처리해 줍니다. 나중에 Nginx의 웹페이지 설정과 재시작을 수동으로 해 줄 것입니다.

   자, 이제 모든 편집이 끝났습니다. Ctrl+X를 누른 후 y를 눌러 저장 후 에디터에서 나옵니다. 스크립트를 실행할 차례입니다. 아래와 같이 실행해 줍니다.

1
$ sudo ./debian-install.sh
cs

   그러면, 아래 그림과 같이 실행이 될 것입니다. ln 명령 2건이 실패한 것을 제외하고는 특별한 문제는 없습니다. 소프트링크가 실패한 것은, 확인해 보니 그역방향으로 소프트링크가 이미 걸려 있어서 실패했네요. 현재로 봐서는 크게 문제될 것이 없어 보입니다.

   배시쉘에서 명령을 하나하나 입력해 가며 했으면, 꽤 오래 걸렸을 작업을 순식간에 해내는군요. 쉘스크립트의 힘입니다.

   다만, debian-prefs.txt 파일에서 설정해 준 avantfax의 비밀번호가 debian-install.sh 스크립트의 실행 과정에서 적용이 누락된 부분이 있습니다. 그 부분을 추가로 설정해 주어야 avantfax 웹사이트가 정상적으로 작동합니다. 아래와 같이 nano에디터를 실행해 줍니다.

1
$ sudo nano -/var/www/avantfax/includes/local_config.php
cs

   여기서 아래의 내용을 찾습니다.

define('AFDB_PASS',             'd58fe49');           // password

   바로 debian-prefs.txt에 있는 avantfax 데이터베이스 사용자의 초기 비밀번호가 그대로 있는 것을 확인할 수 있는데요. 이를 우리가 앞에서 변경해 준 것으로 바꾸어 줍니다.

define('AFDB_PASS',           '새로이_변경된_비밀번호');           // password

   이제 미뤄왔던 Nginx 웹사이트 설정에 들어가야 합니다.

1
2
3
$ cd /etc/nginx/sites-available/
$ sudo cp default avantfax
$ sudo nano -w avantfax
cs

   아래 내용을 찾습니다.

        listen 80 default_server;
        listen [::]:80 default_server;

   이것을 아래와 같이 바꿔 줍니다.

        listen 80 ;
        listen [::]:80 ;

   아래 내용을 찾습니다.

root /var/www/html;

   이것을 아래와 같이 바꿔 줍니다.

root /var/www/avantfax;

   또, 아래 내용을 찾습니다.

server_name _;

   이것을 아래와 같이 바꿔 줍니다. 단, fax.example.org는 여러분이 실제로 외부에서 접속할 수 있는 도메인명으로 바꾸어 입력하여야 합니다.

server_name fax.example.org;

   아래 그림을 참조하시면서 확인 후 Ctrl+x 키와 y키를 눌러 저장 후 nano에디터를 종료합니다.

   배시쉘로 돌아오면 아래 명령을 입력하여 Nginx를 재시작해 줍니다.

1
2
$ sudo ln -s ../sites-available/avantfax avantfax
$ sudo systemctl restart nginx.service
cs

   여기까지 특별한 에러가 없다면, 웹브라우져를 열어 주소창에 fax.exampl e.org를 입력하여 아래의 그림과 같은 화면이 나오는지 확인합니다. 물론 fax.example.org는 여러분의 실제 도메인명으로 입력해야 합니다.

   avantfax의 관리자 아이디와 초기 비밀번호는 아래와 같습니다.

 I.D : admin

Password : password 

   이것을 입력하고 최초 로그인을 하면 비밀번호를 바꾸는 페이지로 전환됩니다. 반드시 관리자의 비밀번호를 각자의 것으로 바꾸어 주시기 바랍니다.

   관리자 비밀번호를 바꾼 후에는 아래 사진과 같은 화면이 열립니다.

   설치 후 첫 로그인이기 때문에, 보낸 팩스, 받은 팩스가 없지요. 우측 상단에 분홍색 테두리로 표시한 작은 아이콘을 누르면 관리자모드로 들어갈 수 있습니다. 혹은 주소창에 아래와 같이 입력하여도 동일한 결과가 됩니다.

   아래 그림과 같이 상단 menu 창을 누르고 modems를 선택해 줍니다.

   그럼 모뎀을 설정하는 화면이 나오는데 아래 화면과 같이 각자의 환경에 맞도록 입력해 줍니다. Device 란에는 ls -la /dev/tty*에서 확인되는 팩스모뎀의 장치 이름을 기재해 줍니다. 제 경우는 ttyACM0이었지만, 각각 설치한 기종에 따라 다를 수 있습니다. Alias 란에는 해당 팩스모뎀 기기의 설치 장소 등 특징적인 사항을 구문의 형태로 작성해 줍니다. '~의 집 팩스기기' 같은 형태도 좋겠지요. 여기까지가 필수 입력 사항이고 아래 Contact에는 이메일 주소를 기재해 주면 수신되는 팩스를 입력된 이 주소로 자동으로 메일을 보내 줍니다. 단, postfix 발송 SMTP가 이미 설정되어 있는 경우에 한합니다. 우리의 경우 이미 해 주었기 때문에 가능하다고 보면 됩니다. 그 아래 Printer 항목은 수신 팩스를 지정한 CUPS/lpr 프린터에 인쇄해 줍니다. 저는 이 설정을 하지 않는 것을 권장합니다. 메일로 고지되면 충분합니다. 정 인쇄가 필요하면 메일에 첨부되는 PDF파일을 인쇄하면 됩니다. 광고성 스팸 팩스가 범람하기 때문이지요.

   모두 입력 되었으면 Save 버튼을 눌러 주어 팩스설정을 저장해 줍니다.

   이상과 같이 기나긴 Avantfax의 설치와 설정을 모두 마쳤습니다. 가정용의 경우 지금까지의 설정으로도 충분하지만, 여러 사람이 사용하는 기업의 경우는 admin 계정 말고도, 각 사용자별 계정을 만들어 주어서 각 사용자별 권한을 따로 설정해 주고, 팩스 서비스에 개별 접근할 수 있도록 설정해 주시기 바랍니다. 모두 우리가 조금 전에 접속한 웹 환경에서 가능하므로 큰 어려움은 없으리라 생각합니다.

   Avantfax가 참 좋은 웹애플리케이션이지만, 아직 공식적인 한글 로컬라이제이션 파일이 존재하지 않습니다. 일부 선구적으로 이 앱을 사용하신 분들이 의욕적으로 한글 로컬 파일을 만드신 것으로 알고 있는데 공개도 잘 안하시고, avantfax 측에 제공도 안하셔서, 아직 한글 번역 파일이 배포되고 있지 않는 것이지요. 언젠가 제가 한글화를 하게 되면, avantfax 측에 제출하여 향후 공식 배포본에 포함될 수 있도록 해 볼 생각입니다. 이상으로 마칩니다.

 

 

 


Posted by truerain
l