다음은 다윈스트리밍서버(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