안녕하세요!
2일 전에 이 지침을 사용하여 새로운 DigitalOcean 머신에 Discourse를 설치했고, 모든 것이 정상적으로 작동했습니다.
어제 새로운 DigitalOcean 머신(Ubuntu 18.03, 1GB)에서 한 번 더 애플리케이션을 설치해 보았습니다. VPS 사양은 동일했지만, 이번에는 작동하지 않았습니다.
./discourse-setup를 실행하고 질문에 답한 후 기다렸습니다. 터미널이 #<Thread:0x00005621595f3360@/var/www/discourse/lib/tasks/assets.rake:215 run> terminated with exception (report_on_exception is true): 줄에서 동결되었습니다. 터미널을 해제할 수 있는 유일한 방법은 SSH 연결을 종료하고 다시 연결하는 것이었습니다.
저는 리눅스에 대한 기초적인 지식만 가지고 있습니다. apt-get으로 시스템을 업데이트했지만, 아무런 차이가 없었습니다.
설치 프로그램이 assets:precompile 작업에서 멈추는 것을 확인했습니다. 예외가 /var/www/discourse/lib/tasks/assets.rake:227:in rescue in block (2 levels) in <top (required)>': undefined local variable or method'name' for main:Object (NameError)에서 발생했습니다.
설치 프로그램이 콘솔에 바이너리 데이터를 쓰기 때문에 동결이 발생하는 것입니다. 더 깊이 파고들어서 보니 403 오류가 발생한다는 것을 깨달았지만, 대상 URL을 찾을 수 없습니다.
screen에서 setup을 실행하고 기록을 남겼습니다. 그런 다음 xdd로 로그를 열었습니다. 바이너리 데이터 2개 부분을 <BINARY_DATA>로 대체했습니다.
#<Thread:0x000055c07c7e8cf8@/var/www/discourse/lib/tasks/assets.rake:215 run> terminated with exception (report_on_exceptionis true):
/var/www/discourse/lib/tasks/assets.rake:227:in `rescue in block (2 levels) in <top (required)>':undefined local variable or method`name' for main:Object (NameError)
from /var/www/discourse/lib/tasks/assets.rake:216:in `block (2 levels) in <top (required)>' /var/www/discourse/lib/file_helper.rb:55:in `block in download':
403 Error:<BINARY_DATA> (OpenURI::HTTPError) <BINARY_DATA>
from /var/www/discourse/lib/final_destination.rb:400:in `block (3 levels) in safe_get'
from /var/www/discourse/lib/final_destination.rb:399:in `catch'
from /var/www/discourse/lib/final_destination.rb:399:in `block (2 levels) in safe_get'
from /usr/local/lib/ruby/2.6.0/net/http.rb:1518:in `block in transport_request'
from /usr/local/lib/ruby/2.6.0/net/http/response.rb:165:in `reading_body'
from /usr/local/lib/ruby/2.6.0/net/http.rb:1517:in `transport_request'
from /usr/local/lib/ruby/2.6.0/net/http.rb:1479:in `request'
from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.0.2/lib/patches/net_patches.rb:9:in `block in request_with_mini_profiler'
from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.0.2/lib/mini_profiler/profiling_methods.rb:39:in `step'
from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.0.2/lib/patches/net_patches.rb:8:in `request_with_mini_profiler'
from /var/www/discourse/lib/final_destination.rb:371:in `block in safe_get'
from /var/www/discourse/lib/final_destination.rb:415:in `block in safe_session'
from /usr/local/lib/ruby/2.6.0/net/http.rb:920:in `start'
from /usr/local/lib/ruby/2.6.0/net/http.rb:605:in `start'
from /var/www/discourse/lib/final_destination.rb:412:in `safe_session'
from /var/www/discourse/lib/final_destination.rb:363:in `safe_get'
from /var/www/discourse/lib/final_destination.rb:129:in `get'
from /var/www/discourse/lib/file_helper.rb:47:in `download'
from /var/www/discourse/lib/discourse_ip_info.rb:30:in `mmdb_download'
from /var/www/discourse/lib/tasks/assets.rake:218:in `block (3 levels) in <top (required)>'
from /var/www/discourse/lib/tasks/assets.rake:217:in `each'
from /var/www/discourse/lib/tasks/assets.rake:217:in `block (2 levels) in <top (required)>'
설치 프로그램은 그 후 일부 작업을 문제없이 수행했습니다. 프로세스의 마지막 부분에는 다음과 같은 내용이 표시됩니다:
FAILED--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake assets:precompile'
failed with return #<Process::Status: pid 384 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'..exec
failed with the params {"cd"=>"$home", "hook"=>"assets_precompile",
"cmd"=>["su discourse -c 'bundle exec rake assets:precompile'"]}
f534324ceedf6b1a8a5cc89f38e1c12c2418fb69c71f93f21c0dd2f5ef51483d
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one
./discourse-doctor may help diagnose the problem.
명령어 ./discourse-doctor는 도움이 되지 않았습니다. Doctor는 앱이 실행되지 않는 것을 인식하고 재빌드를 시도하지만, 이것도 멈춥니다. 플러그인을 설치하지 않았습니다. 이 컴퓨터에서 이 앱을 한 번도 실행해 본 적이 없기 때문입니다.