라이믹스를 활용하여 플랫폼을 하나 구현하려고 하는데요, 도메인 디렉터리 관련해서 구현이 가능할지 의문이 들어서 질문 남겨봅니다!

 

되도록 코어를 수정하지 않는 방향으로 진행하기 위해 고민해보았는데, 불가능하거나 다른 방향으로 구현이 가능하다면 제안해주시면 고맙겠습니다 :D

 

 

1.

하나의 mid를 사용하여 파라메터에 따라서 다른 페이지를 보여주고 싶습니다

예를들어 test라는 mid를 활용한다고 가정하겠습니다.

 

/test/board 로 접속하면 test_board 게시판을 출력하며, 그 뒤의 파라메터들도 /test/board 뒤에 붙어야 합니다.

ex1) 게시글을 보려면 /test/board/1234 와 같이 접속

ex2) 게시판 2 페이지 이동시 /test/board/page/2 와 같이 구성됨

 

또한 /test/hotopay 로 접속하면 test_hotopay 모듈 페이지를 출력하며, 그 뒤의 파라메터들도 /test/hotopay에 붙어야 합니다.

(예시 이하 생략)

 

 

위 방식을 구현하기 위해 board 모듈의 module.xml에 있는 route를 수정할까 생각했지만, 코어 수정시에 리스크가 너무 커서 nginx의 rewrite 기능을 사용해볼까 합니다.

 

nginx단에서/{$mid}/board/ 요청을 /{$mid}_board/ 로 rewrite해서 라이믹스에서 인식하도록 하고

게시판 스킨을 수정하여 모든 링크를 /{$mid}/{blabla} 에서 /{$mid}/board/{blabla} 로 수정합니다

 

또한 /{$mid}/hotopay 요청을 위와 동일하게 rewrite하여 처리합니다.

 

다만 이 부분도 예상치 못한 에러나 코어에 박혀있는 url 때문에 문제가 발생할거같아 조금 고민입니다.

 

좋은 대처 방법이 있다면 알려주시면 감사하겠습니다!

 

 

 

2.

서브 도메인을 활용하고자 합니다.

 

우선 와일드카드 DNS를 활용하여 모든 서브도메인 요청을 라이믹스 서버로 보냅니다.

 

각 서브도메인은 유저의 아이디이며, 해당 아이디를 특정 모듈(example_module)에 파라메터로 넣은 페이지를 보여주고 싶습니다.

 

ex) test.example.com -> example.com/?module=example_module&id=test 페이지 출력 (도메인은 변경하지 않음.)

 

이 요청을 처리하기 위해 라이믹스에 "도메인 추가" 기능을 활용해볼까 생각하였지만, 해당 기능은 별도의 모듈을 생성하여야 하여 성능상 별로 좋은 선택이 아닐것 같아 패스하였습니다.

 

아마 이 요청도 nginx의 rewrite 기능을 사용하면 구현이 가능할거 같습니다만, 도메인이 다르면 라이믹스에서 문제가 발생할거 같아 고민이 됩니다.

 

차라리 외부 php 파일에서 라이믹스를 불러와 출력해주는 형식으로 처리를 해야할까요?

 

메인 페이지만 test.example.com에 나오면 되며, 그 페이지에 있는 모든 하이퍼링크는 example.com을 가르킬 예정입니다.

+) 어려운 설정 없이 가능하다면 페이지에 있는 일부 하이퍼 링크들도 test.example.com 아래에 있을 수 있습니다.

 

 

 

계속 고민해보았는데 답이 안보여서 관련 기능을 구현해보셨거나 처리의 방향성이 보이시는 분 계시다면 댓글 달아주세요!

 

감사합니다 :D

 

 

 

추가 질문) 게시판 모듈을 개조하여 쇼핑몰 모듈을 제작할 예정인데, board 모듈을 복제하여 이름들만 변경해준다면 정상작동할까요?

  • profile

    우선 example.com/test/mid인지 test.example.com/mid인지 둘 중 하나로 마음을 정하시고요... (서브도메인이냐 서브폴더냐는 아주 오래 묵은 논쟁이지만, 결국 취향으로 귀결됩니다. 참고로 트위터, 인스타그램 등 대부분의 SNS 플랫폼들은 서브도메인보다는 서브폴더로 방향을 굳힌 것 같더군요.)

     

    board 모듈을 복제하여 라우터 설정을 적당히 변경하여 쓰시는 것이 가장 무난할 것 같습니다. 어차피 대부분의 무거운 기능은 document, comment, file 모듈이 담당하고 있어서, board 모듈이 처리하는 부분을 커스터마이징하거나 유지보수하는 것은 리버스님 수준에서 크게 어려울 것 같지 않습니다.

     

    라이믹스 2.0에서 라우터가 생기고 커스텀 쿼리를 지원하고 모듈을 네임스페이스로 쪼개어 구성할 수 있도록 만든 것은 단지 커뮤니티 사이트에서 짧은주소 좀더 예쁘게 만들어 쓰라는 뜻이 아닙니다. 라이믹스를 프레임워크로 사용해서 흔한 한국식 게시판과 위젯 페이지 구조에 얽매이지 않는 새로운 어플리케이션, 새로운 플랫폼을 만드는 것을 적극 지원하겠다는 뜻입니다. XE, 그누보드, 워드프레스, 드루팔 등의 전통적인 CMS를 넘어서서 라라벨, 코드이그나이터 등이 버티고 있는 프레임워크 시장에서도 경쟁해 보겠다는 뜻입니다. 그러니까 그렇게 써주세요. 모듈 생성기도 있으니까 모듈 팍팍 만들어 주세요.^^

  • profile profile
    답변 감사합니다!

    고민해본 결과 게시판 모듈을 수정해가면서 계속 관리하는것 보다는, 라우터 구조 계획을 수정하는게 좋겠다고 판단하여 코어 수정 없이 개발 하려고 합니다.

    또한 서브도메인도 일단 직접 개발을 해보고 나서 문제 발생시 질문 올리는게 더 좋아보여, 나중에 기술적 문제 발생시 다시 질문 해보도록 하겠습니다.

    감사합니다!

    +) 프로젝트 진행하면서 몇가지의 모듈들을 만들었는데, 관리자 페이지는 버리고 만든게 많아서.. ㅋㅋ
    시간 나는대로 차근차근 풀어보겠습니다 :D