시놀로지 Nginx 짧은 주소 안되는데요 ㅜㅜ
CMS/프레임워크 | Rhymix 2.1 |
---|---|
개발 언어 | PHP 7.4 |
안녕하세요? 최근 질문이 많아서 죄송합니다.
홈페이지 셋팅을 다하고 나서 보니 짧은 주소가 안되더라구요.
제 시놀로지 서버에 홈페이지가 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에서 셋팅이 안되어 있더라도 짧은 주소 가능할까요?
다시 검색해보니 애드온만으로는 안되는군요;;
댓글 21
nginx설정을 위해서라면 서버내에서 세팅해야지 라이믹스에서 세팅되는게 아닙니다.
버전에 따라 rx-rewrite.conf 파일 가져오는 항목이 다르니.. 잘 보시길 바랍니다.
그리고 아파치를 사용하는 경우 짧은 주소는 별도의 설정이 필요없습니다 htaccess는 아파치에서만 사용하는 설정 파일인데 이건 그냥 폴더에 파일이 있기만 하면 아파치가 자동으로 읽어서 적용합니다. 파일 내용도 따로 건드려줄 필요도 없구요
오직 nginx를 사용하는 경우에만 짧은 주소를 쓰기 위해서 nginx 관련 설정을 바꿔주는 과정이 필요하지요... 링크하신 문서처럼 말입니다
시놀로지 DSM 7.2 기준으로 Web Station 패키지 > 웹서비스 > 기본 스크립트 웹사이트(PHP) > 이용중인 도메인 편집 > HTTP 백엔드 서버 를 아파치 2.4 로 설정하신 후 Web Station 패키지 재시작해주시면 됩니다.
이 부분 말씀하시는거죠? 이걸 바꿔도 현재 구축해둔 사이트의 및 다른 사이트의 mariaDB 파일은 문제 없는거죠? DB를 한번 날리고 나니 뭘 수정할려구 해도 겁이 나네요;;; ㅜㅜ
네. 바꾸셔도 DB 는 아무 문제없습니다.
그런데 기본 서비스는 nginx 로 두시고,
각 사이트별 스크립트를 새로 생성하신 후에 > 웹포털 > 사용자 정의된 포털 > 이용중인 사이트 편집하신 후 서비스(스크립트)를 새로 적용해 주시면 됩니다.
사이트별 스크립트 생성시 PHP 프로필은 기존에 사용중인 Default Profile PHP 7.4 를 선택
백엔드는 Apache 2.4 를 선택
이후 앞서 댓글 단 것처럼 새로 생성한 스크립트를 선택해주시면 됩니다.
현재 변경하고자 하는 사이트의 셋팅인데요. 위와 같이 되어 있습니다.
이걸 변경할려니 http 백엔드 서버 부분이 수정이 안되더라구요.
그렇다면 아예 새로 만들어서 적용하고 해당 설정은 삭제하면 된다는 말씀이신가요?
DB에 영향을 주질 않는다면 이 참에 php는 8.2로 같이 변경해도 될까요?
새로 생성하실 때 백엔드를 아파치로 설정해 주시고, php 8.2 로 변경해도 무방하지만 DB 경로가 같아야 DB 를 불러올 수 있습니다. 그리고 PHP8 적용시 문제되는 페이지가 있을 수 있으니 오류가 생기면 다시 PHP7.4 로 선택하시면 됩니다.
아파치 + php8.2로 셋팅하고 변경을 해주니 바로 오류를 뿜어버리네요;;; 포인트 모듈과 관련된거 같은데 한번 검색해봐야겠네요.
이건 7.4 에서 PHP8 로 올려서 나타나는 현상입니다. 일단 아파치+PHP7.4 로 이용하세요~
아래는 PHP8 오류 대응 방법입니다.
https://xetown.com/tips/1489364
[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+
헐.. 아파치로 변경을 해도 짧은 주소가 안되는군요;;;
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]
아래는 제 파일의 내용입니다.
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]
이 부분 때문에 엄청 검색했었습니다. 감사드립니다.