Extra Form
PHP PHP 7.4
CMS Rhymix 2.1

안녕하세요? 최근 질문이 많아서 죄송합니다.

홈페이지 셋팅을 다하고 나서 보니 짧은 주소가 안되더라구요.

 

제 시놀로지 서버에 홈페이지가 2개 있는데, 하나는 짧은 주소를 잘 지원하고 있고 잘 사용하고 있습니다.

둘다 같은 서버에 있는데 왜 하나는 안될까 하는 생각에 검색을 해서 확인해보니.

Nginx와 Apache의 차이가 있더군요.

 

기존에 짧은 주소가 잘 적용되어 있는 사이트는 라이믹스에서 서버환경을 보니 Nginx로 되어 있고

현재 새로 만든 사이트는 Apache로 되어있습니다.

 

그래서 시놀로지 웹스테이션에서 HTTP 백엔드 서버를 Apache로 변경할려구 했지만 비활성화 되어 있어 변경이 안됩니다.(제가 변경하는 방법을 모를수도 있습니다.)
 

다시 검색해서 보니 Nginx로 짧은 주소 설정을 하는게 복잡하더군요.

서버에 보니 .htaccess 파일이 있던데요. 

열어서 내용을 보니 

RewriteEngine On

# block direct access to templates, XML schema files, config files, dotfiles, environment, etc.
RewriteCond %{REQUEST_URI} !/modules/editor/(skins|styles)/
RewriteRule ^(addons|common/tpl|files/ruleset|(m\.)?layouts|modules|plugins|themes|widgets|widgetstyles)/.+\.(html|xml)$ - [L,F]
RewriteRule ^files/(attach|config|cache/store)/.+\.(ph(p|t|ar)?[0-9]?|p?html?|cgi|pl|exe|[aj]spx?|inc|bak)$ - [L,F]
RewriteRule ^files/(env|member_extra_info/(new_message_flags|point))/ - [L,F]
RewriteRule ^(\.git|\.ht|\.travis|codeception\.|composer\.|Gruntfile\.js|package\.json|CONTRIBUTING|COPYRIGHT|LICENSE|README) - [L,F]

# static files
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.+)/(addons|files|layouts|m\.layouts|modules|widgets|widgetstyles)/(.*) ./$2/$3 [L]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.+)\.min\.(css|js)$ ./$1.$2 [L]

# all other short URLs
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule . index.php [L]

 

이렇게 되어 있네요.

 

위 .htaccess 내용을 수정하면 짧은 주소를 사용할 수 있을까요? 

https://github.com/rhymix/rhymix-docs/blob/master/ko/introduction/nginx.md

설정방법을 보니 도무지 이해가 안됩니다;;;;

 

다시 검색을 해보니 이런 애드온이 있더군요.

https://xetown.com/download/776283

 

이거 설치하면 Nginx에서 셋팅이 안되어 있더라도 짧은 주소 가능할까요?

다시 검색해보니 애드온만으로는 안되는군요;;

  • Lv24
    메뉴얼이라고 올려드린 부분처럼 구현하시면 됩니다. 그걸 정독으로 읽으시면서 세팅하세요!

    nginx설정을 위해서라면 서버내에서 세팅해야지 라이믹스에서 세팅되는게 아닙니다.

    버전에 따라 rx-rewrite.conf 파일 가져오는 항목이 다르니.. 잘 보시길 바랍니다.
  • Lv24 Lv4
    네.. 서버 셋팅하는 걸 공부좀 해야겠습니다. 도전해보겠습니다. ㅎ
  • ? Lv10
    엥? 하나의 서버 안에 아파치와 nginx가 동시에 작동한다구요..? 불가능한 얘기일텐데요... 똑같이 80/443 포트를 열어야 하는데.. 아마도 nginx만 돌고 있을겁니다. 잘되고 있는 쪽이 nginx라고 하셨으니 말입니다.
    그리고 아파치를 사용하는 경우 짧은 주소는 별도의 설정이 필요없습니다 htaccess는 아파치에서만 사용하는 설정 파일인데 이건 그냥 폴더에 파일이 있기만 하면 아파치가 자동으로 읽어서 적용합니다. 파일 내용도 따로 건드려줄 필요도 없구요
    오직 nginx를 사용하는 경우에만 짧은 주소를 쓰기 위해서 nginx 관련 설정을 바꿔주는 과정이 필요하지요... 링크하신 문서처럼 말입니다
  • ? Lv10 Lv37
    드물지만 둘 다 사용하는 경우가 있긴 하죠. 둘 중 하나를 다른 포트에 걸어두고, 나머지 하나를 리버스 프록시로 사용한다거나... ㅎㅎ
  • ? Lv10 Lv4
    아닙니다. 제 시놀로지 서버에서는 아파치와 nginx를 동시에 사용중입니다. 원래는 아파치 2.4를 사용하여 두개의 사이트를 운영했었지만, 실수로 DB를 날리면서 다시 라이믹스를 설치하는 과정에서 아무생각없이 하나는 아파치 2.4로 하나는 nginx로 설치해버렸습니다. 그래서 지금 nginx를 아파치 2.4로 변경하는 방법이나 짧은주소를 구현하는 방법을 찾고 있는데 저의 지식이 부족해서 아직 해결하지 못하고 있습니다;;;
  • Lv4 Lv2

    시놀로지 DSM 7.2 기준으로 Web Station 패키지 > 웹서비스 > 기본 스크립트 웹사이트(PHP) > 이용중인 도메인 편집 > HTTP 백엔드 서버 를 아파치 2.4  로 설정하신 후  Web Station 패키지  재시작해주시면 됩니다.

  • Lv2 Lv4

    스크린샷 2023-07-06 164103.png

     

    이 부분 말씀하시는거죠? 이걸 바꿔도 현재 구축해둔 사이트의 및 다른 사이트의 mariaDB 파일은 문제 없는거죠? DB를 한번 날리고 나니 뭘 수정할려구 해도 겁이 나네요;;; ㅜㅜ

  • Lv4 Lv2

    네. 바꾸셔도 DB 는 아무 문제없습니다.

    그런데 기본 서비스는 nginx 로 두시고,
    각 사이트별 스크립트를 새로 생성하신 후에 > 웹포털 > 사용자 정의된 포털 > 이용중인 사이트 편집하신 후 서비스(스크립트)를 새로 적용해 주시면 됩니다. 

     

    사이트별 스크립트 생성시  PHP 프로필은  기존에 사용중인 Default Profile PHP 7.4 를 선택

    백엔드는 Apache 2.4 를 선택

     

    이후 앞서 댓글 단 것처럼 새로 생성한 스크립트를 선택해주시면 됩니다.

  • Lv2 Lv4

    스크린샷 2023-07-06 165149.png

     

    스크린샷 2023-07-06 165258.png

     

    현재 변경하고자 하는 사이트의 셋팅인데요.  위와 같이 되어 있습니다.

    이걸 변경할려니 http 백엔드 서버 부분이 수정이 안되더라구요.

    그렇다면 아예 새로 만들어서 적용하고 해당 설정은 삭제하면 된다는 말씀이신가요?

    스크린샷 2023-07-06 165412.png

    DB에 영향을 주질 않는다면 이 참에 php는 8.2로 같이 변경해도 될까요?

  • Lv4 Lv2
    마지막 첨부해주신 사진에서 백엔드 변경이 안되네요. 저도 안되는 것 이제 확인했습니다.

    새로 생성하실 때 백엔드를 아파치로 설정해 주시고, php 8.2 로 변경해도 무방하지만 DB 경로가 같아야 DB 를 불러올 수 있습니다. 그리고 PHP8 적용시 문제되는 페이지가 있을 수 있으니 오류가 생기면 다시 PHP7.4 로 선택하시면 됩니다.
  • Lv2 Lv4

    스크린샷 2023-07-06 170132.png

     

    아파치 + php8.2로 셋팅하고 변경을 해주니 바로 오류를 뿜어버리네요;;; 포인트 모듈과 관련된거 같은데 한번 검색해봐야겠네요.

  • Lv4 Lv2

    이건 7.4 에서 PHP8 로 올려서 나타나는 현상입니다. 일단 아파치+PHP7.4 로 이용하세요~

     

    아래는 PHP8 오류 대응 방법입니다.

     

    https://xetown.com/tips/1489364

  • Lv2 Lv4
    네 알겠습니다. 덕분에 아파치로 변경했습니다. 진심 감사드립니다. ㅜㅜ

    [Basic Information]
    rhymix_version : 2.1.1
    date : 2023-07-06 17:06:08 +0900 (2023-07-06 08:06:08 UTC)
    php : 7.4.33 (64-bit)
    server : Apache/2.4.57 (Unix)
    os : Linux 4.4.302+
  • Lv2 Lv4

     

     

    스크린샷 2023-07-06 170824.png

     

    스크린샷 2023-07-06 170914.png

    헐.. 아파치로 변경을 해도 짧은 주소가 안되는군요;;;

     

     

  • Lv4 Lv2

    web_todayplus 폴더에 .htaccess 파일이 존재하나요?

    .htaccess 설정을 다시 한번 확인해 보세요.

    RewriteEngine On

    # block direct access to templates, XML schema files, config files, dotfiles, environment, etc.
    RewriteCond %{REQUEST_URI} !/modules/editor/(skins|styles)/
    RewriteRule ^(addons|common/tpl|files/ruleset|(m\.)?layouts|modules|plugins|themes|widgets|widgetstyles)/.+\.(html|xml)$ - [L,F]
    RewriteRule ^files/(attach|config|cache/store)/.+\.(ph(p|t|ar)?[0-9]?|p?html?|cgi|pl|exe|[aj]spx?|inc|bak)$ - [L,F]
    RewriteRule ^files/(env|member_extra_info/(new_message_flags|point))/ - [L,F]
    RewriteRule ^(\.git|\.ht|\.travis|codeception\.|composer\.|Gruntfile\.js|package\.json|CONTRIBUTING|COPYRIGHT|LICENSE|README) - [L,F]

    # static files
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteRule ^(.+)/(addons|files|layouts|m\.layouts|modules|widgets|widgetstyles)/(.*) ./$2/$3 [L]
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteRule ^(.+)\.min\.(css|js)$ ./$1.$2 [L]

    # all other short URLs
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule . index.php [L]

  • Lv2 Lv4
    네 해당 파일이 있습니다. 확인해보니 내용은 동일한 거 같아 보입니다.
    아래는 제 파일의 내용입니다.

    RewriteEngine On

    # block direct access to templates, XML schema files, config files, dotfiles, environment, etc.
    RewriteCond %{REQUEST_URI} !/modules/editor/(skins|styles)/
    RewriteRule ^(addons|common/tpl|files/ruleset|(m\.)?layouts|modules|plugins|themes|widgets|widgetstyles)/.+\.(html|xml)$ - [L,F]
    RewriteRule ^files/(attach|config|cache/store)/.+\.(ph(p|t|ar)?[0-9]?|p?html?|cgi|pl|exe|[aj]spx?|inc|bak)$ - [L,F]
    RewriteRule ^files/(env|member_extra_info/(new_message_flags|point))/ - [L,F]
    RewriteRule ^(\.git|\.ht|\.travis|codeception\.|composer\.|Gruntfile\.js|package\.json|CONTRIBUTING|COPYRIGHT|LICENSE|README) - [L,F]

    # static files
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteRule ^(.+)/(addons|files|layouts|m\.layouts|modules|widgets|widgetstyles)/(.*) ./$2/$3 [L]
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteRule ^(.+)\.min\.(css|js)$ ./$1.$2 [L]

    # all other short URLs
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule . index.php [L]
  • Lv4 Lv2
    아파치 패키지도 중지 후 다시 시작해 보세용~
  • Lv2 Lv4
    오오... 드디어 성공했습니다. 아파치 패키지를 재시작하니 됩니다. 덕분에 짧은 주소 드디어 해결했습니다. ㅜㅜ
    이 부분 때문에 엄청 검색했었습니다. 감사드립니다.
  • Lv4 Lv2
    문제가 해결되어 다행입니다~
  • Lv2 Lv4
    네넵 다시한번 감사드립니다. ^^
  • Lv1
    여기 댓글에서 좋은 결과를 얻어 갑니다. 감사합니다.20250124