macOS High Sierra에서 PHP script for ComicGlass MediaServer 사용하기

집에 미디어 서버를 macOS를 운영하는 입장에서 ComicGlass Server를 운영하기 위해서 선택할 수 있는 선택은 딱 두 가지다.
macOS 용 어플리케이션을 실행하는것이 첫 번째고, 맥에 기본으로 설치 되어있는 웹 서버에 php를 활성화 해서 이용하는 것이다.

우선 어플리케이션을 이용하는 방식은 어플리케이션을 다운로드해서 설치하고 공유폴더와 계정, 포트를 설정하면 쉽게 서버를 세팅하게 된다.
코믹글래스의 애플리케이션 화면
이 방식은 사용하기 쉽다는 장점이 있다. 다만 앱이 항상 실행되고 있어야 하기 때문에 실제 사용하는 mac에는 사용하기 아무래도 불편함이 있다.

두 번째는 맥에서 기본지원하는 Apache+php를 이용해서 웹서버로서의 구동을 진행하는 방법인데, apache 서버가 뒷단에서 돌고있기 때문에 mac을 사용하는입장에서는 잘 인지가 안된다.
하지만 약간의 웹 서버의 개념과 터미널 운용지식이 필요하다. 맥에서 아파치와 php를 구동하는 방법은 나는 요 페이지를 참고했다.

세팅을 다하고 돌려보면, 다음과 같은 에러 메시지가 뜬다.

Fatal error: Uncaught Error: Call to undefined function eregi() in /Users/deute.css/Sites/galaxymobile/index.php:107 Stack trace: #0 {main} thrown in /Users/계정루트/index.php on line 107

음 뭐지 하고 알아보니 eregi라는 입력 문자열 필터링 함수가 있는데 이게 보안취약점이 있어 php 5.3+ 는 사용되지않고 6.0부터는 아예 삭제 되었다는글을 찾았다. comicglass 에서는 eregi함수를 여러번 사용하고 있었고, 새로 업데이트된 macOS High sierra 에서는 php의 버전이 7.1.7로 되어있으므로 오류가 나는것이 당연했다.

그래서 삽질을 해서 수정해야 할 부분을 찾았다.

index.php 의 107line에 보면

eregi('/$',$scriptdir)

을 다음과 같이

preg_match('/$/',$scriptdir)

126,7,8 line의

eregi(
'\.gif$|\.png$|\.jpg$|\.jpeg$|\.tif$|\.tiff$|\.zip$|\.rar$|\.cbz$|\.cbr$|\.bmp$|\.pdf$|\.cgt$'
,$entry)

을 다음과 같이 변경해주니 잘 작동하게 되었다.

preg_match(
'/\.gif$|\.png$|\.jpg$|\.jpeg$|\.tif$|\.tiff$|\.zip$|\.rar$|\.cbz$|\.cbr$|\.bmp$|\.pdf$|\.cgt$/'
,$entry)

코드가 맞게 쓰여진 것 인지는 모르겠다. 되긴한다 ㅋㅋㅋ
개발을 1도 모르는 분들에게 참고가 되길 바란다.