안녕하세요,
백업 내보내기/가져오기를 사용하여 Discourse 인스턴스를 한 호스트에서 다른 호스트로, 멀티사이트 구성에서 단일 컨테이너를 사용하는 단일 호스트 구성으로 이전했습니다. 그런데 일부 링크가 올바른 호스트 대신 www.example.com을 사용하고 있습니다.
이 문제를 어떻게 해결할 수 있을까요?
DISCOURSE_HOST를 호스트명으로 설정했지만, 문제가 해결되지 않는 것 같습니다. www.example.com의 발생 위치를 찾기 위해 사용할 수 있는 SQL 쿼리가 있을까요?
pfaffman
(Jay Pfaffman)
2
도메인 이름 변경 또는 Discourse 이름 변경에 설명된 대로 리맵을 해보는 것은 어떨까요?
제 추측으로는 어딘가에서 해당 호스트네임으로 설정된 부분이 있을 것입니다. 다만, 어떻게 그렇게 되었는지는 추측하기 어렵습니다.
neounix
(Dark Matter)
3
@hellekin 님 안녕하세요
Rails 콘솔에서 다음과 같이 “example” 문자열로 모든 사이트 설정을 빠르게 검색할 수 있습니다:
SiteSetting.where('value LIKE ?', "%example%")
예를 들어, 우리의 Discourse 인스턴스에서:
[1] pry(main)> SiteSetting.where('value LIKE ?', "%unix\.com%").count
=> 10
REDIS를 확인하려면 (데이터 컨테이너가 app에 있다고 가정하고) 필요에 따라 변경하여 다음을 시도해 보세요:
docker exec -it app redis-cli
그런 다음, 다음과 같은 명령을 시도해 보세요:
127.0.0.1:6379> KEYS *example*
(empty list or set)
또 다른 예시:
127.0.0.1:6379> KEYS *unix*
1) "default:_CACHE:onebox__https://www.unix.com/man-page/linux/1/df/"
2) "ANON_CACHE_text/html,application/xhtml+xml,application/signed-exchange;v=b3,application/xml;q=0.9,*/*;q=0.8_https_community.unix.com/t/passing-variables-to-awk/150198|m=true|c=true|b=true|t=|ca=|l=_count"
3) "default:_CACHE:onebox__https://www.unix.com/aix/56317-timestamp-sh_history-using-ksh-shell.html"
모든 전역 설정을 빠르게 확인하려면 Rails 콘솔에서 다음을 실행할 수 있으며, 그러면 모든 전역 설정이 표시됩니다(더 나은 방법이 있을 것이라고 확신하지만, 이 방법은 빠르고 잘 작동합니다):
[1] pry(main)> GlobalSetting.as_json
도움이 되기를 바랍니다.
@pfaffman 님이 공유하신 링크를 확인해 보니, DISCOURSE_HOSTNAME 대신 DISCOURSE_HOST를 사용했던 것을 알게 되었습니다.
@neounix 님의 유용한 조사 팁에도 불구하고 결과를 얻지 못했기 때문에, 첫 번째 문제가 현재 상황의 원인이 될 것으로 추정됩니다. 컨테이너를 다시 빌드해 보겠습니다…
컨테이너를 다시 빌드했고, 이전에 깨져 있던 이미지들이 이제 정상적으로 표시됩니다. 따라서 문제가 해결된 것으로 보입니다. 두 분 모두 감사합니다!
neounix
(Dark Matter)
6
네, 코드를 살펴본 지금은 그 말이 완벽하게 이해됩니다. Discourse 설정은 설정 파일에서 기본 호스트명을 "www.example.com"으로 설정하므로, 빌드 파일에 실수가 있었다면(예를 들어 @hellekin 님이 설명하신 것처럼) 기본값이 사용될 것입니다 
어느 날 누군가가 이 기본 설정값을 다음과 같이 변경할 수도 있겠네요:
hostname = "www.hostname-missing-check-yml-file.com"

pfaffman
(Jay Pfaffman)
7
여기에는 관리자 권한이 없습니다. 다른 사이트에서 사이트의 임베드가 정상적으로 작동하는지 확인하려면 try.discourse.org에서 테스트해 볼 수 있습니다.
hostname = "please.set.DISCOURSE_HOSTNAME.env.example"가 더 명확하고 RFC에 부합할 것 같습니다.
감사합니다. 이미 다른 곳에서 테스트를 해 보았지만, 이 게시물이 업데이트되기를 원했을 뿐입니다 
riking
(Kane York)
9
버튼을 눌렀습니다. 이미지가 표시되는 것 같습니다!