우분투 서버에 다윈스트리밍서버(DSS) 설치

다음은 다윈스트리밍서버(Darwin Streaming Sever 6.0.3)를 우분투(Ubuntu 16.04.1)에 설치하고 난후, 정리한 내용이다.
1. 계정생성

addgroup --system qtss
adduser --system --no-create-home --ingroup qtss qtss

2. 소스 다운로드 및 패치

cd /usr/local/src
wget https://github.com/macosforge/dss/releases/download/6.0.3/DarwinStreamingSrvr6.0.3-Source.tar
tar xvf DarwinStreamingSrvr6.0.3-Source.tar
wget http://blog.moramcnt.com/wp-content/uploads/2017/06/dss-6.0.3.patch
patch -p0 < dss-6.0.3.patch

wget http://blog.moramcnt.com/wp-content/uploads/2017/06/dss-hh-20080728-1.patch
patch -p0 < dss-hh-20080728-1.patch

3. Makefile 수정

cd DarwinStreamingSrvr6.0.3-Source/
vi Makefile.POSIX

LIBS의 끝에 -ldl 추가

LIBS = $(CORE_LINK_LIBS) -lCommonUtilitiesLib -lQTFileLib -ldl

4. QTFileInfo.tproj 파일의 Makefile 수정

vim ./QTFileTools/QTFileInfo.tproj/Makefile.POSIX

LIBS의 끝에 -lpthread 추가

LIBS = $(CORE_LINK_LIBS) -lCommonUtilitiesLib  -lQTFileExternalLib ../../CommonUtilitiesLib/libCommonUtilitiesLib.a -lpthread

5. QTFileTest.tproj 파일의 Makefile 수정

vim ./QTFileTools/QTFileTest.tproj/Makefile.POSIX

LIBS의 끝에 -lpthread 추가

lQTFileExternalLib ../../CommonUtilitiesLib/libCommonUtilitiesLib.a ../../QTFileLib/libQTFileExternalLib.a -lpthread

6. QTSampleLister.tproj 파일의 Makefile 수정

vim ./QTFileTools/QTSampleLister.tproj/Makefile.POSIX

LIBS의 끝에 -lpthread 추가

lQTFileExternalLib ../../CommonUtilitiesLib/libCommonUtilitiesLib.a ../../QTFileLib/libQTFileExternalLib.a -lpthread

7. QTTrackInfo.tproj 파일의 Makefile 수정

vim ./QTFileTools/QTTrackInfo.tproj/Makefile.POSIX

LIBS의 끝에 -lpthread 추가

lQTFileExternalLib ../../CommonUtilitiesLib/libCommonUtilitiesLib.a ../../QTFileLib/libQTFileExternalLib.a -lpthread

8. 빌드
- 성공하게 되면 DarwinStreamingSrvr-Linux 폴더 생성

./Buildit install 

9. 방화벽 오픈

ufw allow 554/tcp
ufw allow 1220/tcp

10. 설치
- DarwinStreamingSrvr-Linux 폴더로 이동하여 설치

cd DarwinStreamingSrvr-Linux
./Install

11. 웹콘솔 접속
- http://xx.xx.xx.xx:1220/ 으로 접속
그러나, 아래와 같이 텍스트가 출력안되는 경우가 발생하였다.

다행히 구글링 결과 아래 사이트에서 해결책을 찾을 수 있었다.
https://vk.com/wingcatlab?w=wall-99790498_55

11.1 streamingadminserver.pl 파일 수정

cd DarwinStreamingSrvr-Linux
vi streamingadminserver.pl

상단에 아래와 같이 use Data::Dumper; 를 추가한다.

# Require needed libraries
package streamingadminserver;
use Socket;
use POSIX;
use Sys::Hostname;

use Data::Dumper;

1433 라인 정도에 $ENV{"LMSG"} = Dumper($messages{"en"}); 를 아래와 같이 추가

$ENV{"GENREFILE"} = 'genres';
$ENV{"COOKIES"} = $header{'cookie'};
$ENV{"COOKIE_EXPIRE_SECONDS"} = $config{"cookieExpireSeconds"};
$ENV{"LANGDIR"} = $langDir;
$ENV{"LANGUAGE"} = $language;
$ENV{"SSL_AVAIL"} = $ssl_available;
$ENV{"HTTPS"} =  "ON" if ($use_ssl);

$ENV{"LMSG"} = Dumper($messages{"en"});

11.2 parse_xml.cgi 파일 수정
- parse_xml.cgi 파일을 열어 sub foundString 이라는 서브루틴을 찾는다.

vi ./AdminHtml/parse_xml.cgi

마지막 리턴하는 부분인
return "$messages{$name}";
를 아래와 같이 대체한다.

$lmsg = $ENV{"LMSG"};
 my %copied_hash = %{ eval $lmsg };
 return $copied_hash{$name};

그런후 다시 ./Install 명령으로 재 설치

./Install