์๋ ํ์ธ์. ๋ฌธ์ ๋ฅผ ์ ์ถํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋ฌธ์ ๋ฅผ ๋ง๋ค๊ธฐ ์ ์ ๋ค์ ์ฌํญ์ ํ์ธํ์ญ์์ค. ๊ฐ์ฌํฉ๋๋ค! ๐ค 11 ์ 15 ์ผ๋ถํฐ ์ฐ๋ฆฌ๋ ์ปค๋ฎค๋ํฐ ๊ฒ์ํ์์ ์ค์ ๋ฒ๊ทธ๋ฅผ ์ ์ธํ ๋ชจ๋ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค. ์ ์ฒด ์ค๋ช : https://community.zammad.org/t/major-change-regarding-github-issues-community-board/21 ๊ฒ์ํ์ญ์์ค :-๊ธฐ๋ฅ ์์ฒญ-๊ฐ๋ฐ ์ง๋ฌธ-๋ณด๋์ ๊ธฐ์ ์ง๋ฌธ-> https : / /community.zammad.org! ๋ฒ๊ทธ๊ฐ ์๋ค๊ณ ์๊ฐ๋๋ฉด ๊ณ์ํ์ญ์์ค.-๊ธฐ์กด ๋ฌธ์ ์ CHANGELOG.md์์ ๋ฌธ์ ๋ฅผ ๊ฒ์ํฉ๋๋ค.-์ด๋ฏธ ํด๊ฒฐ์ฑ ์ด์์ ์ ์์ต๋๋ค.-๊ฐ๋ฅํ๋ฉด Zammad์ ์ต์ ๋ฒ์ ์ ์ฌ์ฉํ์ญ์์ค.-`log / production. ์์คํ ์ log` ํ์ผ. ์ฃผ์ : ๊ธฐ๋ฐ ๋ฐ์ดํฐ๊ฐ ์๋์ง ํ์ธํ์ญ์์ค! -๋ฌธ์ ๋ฅผ ์์ด๋ก ์์ฑํ์ญ์์ค.-ํ ํ๋ฆฟ์ ์ ๊ฑฐํ์ง ๋ง์ญ์์ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ถ๊ฐ ์๊ฒฌ์์ด ๋ฌธ์ ๊ฐ ์ข ๋ฃ๋ฉ๋๋ค.-๋ฉ์ผ ๋ง๋ฆฌ์คํธ์์ Zammad ๊ตฌ์ฑ ๋ฐ ์ฌ์ฉ์ ๋ํด ์ง๋ฌธํ์ญ์์ค. ์ฐธ์กฐ : https://zammad.org/participate ์ฐธ๊ณ : ์ฐ๋ฆฌ๋ ํญ์ ์ต์ ์ ๋คํฉ๋๋ค. ์ํ๊น๊ฒ๋ ๋๋ก๋ ๋๋ฌด ๋ง์ ์์ฒญ์ด์์ด ๋ชจ๋ ๊ฒ์ ํ ๋ฒ์ ์ฒ๋ฆฌ ํ ์ โโ์์ต๋๋ค. ๋ฌธ์ ์ ์ฐ์ ์์๋ฅผ ์ง์ / ์์ค์ปฌ๋ ์ด์ ํ๋ ค๋ฉด ์ง์ ๊ณ์ฝ์ ํตํด์ด๋ฅผ ์ํ ํ ์ ์์ต๋๋ค (https://zammad.com/pricing#selfhosted ์ฐธ์กฐ). * ๋ฌธ์ ๋ฅผ ์ ์ถํ๋ฉด ์๋จ ํ ์คํธ ๋ธ๋ก์ด ์๋์ผ๋ก ์ ๊ฑฐ๋ฉ๋๋ค. *
LDPA ํ๋ ์์ด ์ค๋ฅ์์ด ํ์๋จ (๊ตฌ์ฑ ๋ฉ๋ด ์์คํ
-> ํตํฉ-> LDAP)
*
LDAP ํ๋ ์์ด ํ์๋์ง ์์ต๋๋ค. ํ๋ ์์ด ๋น์ด ์๊ณ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํ์๋จ
๋ํ API ๋ฐ ๋ชจ๋ํฐ๋ง
*
StatusCode 500
{ "error": "\"\ xC5 \ "ASCII-8BIT์์ UTF-8"}
LDAP ๋ง ๊ตฌ์ฑํ์ญ์์ค.
*
๋ด ๊ตฌ์ฑ :
์ด๋ํฐ : postgresql
๋ฐ์ดํฐ๋ฒ ์ด์ค : zammad
ํ : 50
์๊ฐ ์ด๊ณผ : 5000
์ธ์ฝ๋ฉ : utf8
์ฌ์ฉ์ ์ด๋ฆ : zammad
log / production.log :
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/tagged_logging.rb:69:in `block in tagged'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/tagged_logging.rb:26:in `tagged'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/tagged_logging.rb:69:in `tagged'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/rack/logger.rb:24:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/request_id.rb:25:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/rack-2.0.5/lib/rack/method_override.rb:22:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/rack-2.0.5/lib/rack/runtime.rb:22:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/cache/strategy/local_cache_middleware.rb:27:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/executor.rb:12:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/static.rb:125:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/rack-2.0.5/lib/rack/sendfile.rb:111:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/engine.rb:522:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/puma-3.11.0/lib/puma/configuration.rb:225:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/puma-3.11.0/lib/puma/server.rb:624:in `handle_request'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/puma-3.11.0/lib/puma/server.rb:438:in `process_client'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/puma-3.11.0/lib/puma/server.rb:302:in `block in run'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/puma-3.11.0/lib/puma/thread_pool.rb:120:in `block in spawn_thread'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
I, [2018-07-24T09:47:49.326279 #12796] INFO -- : Completed 500 Internal Server Error in 1121ms (Views: 0.3ms | ActiveRecord: 43.9ms)
I, [2018-07-24T09:47:50.981956 #12794] INFO -- : 2018-07-24T09:47:50+0200: [Worker(host:support pid:12794)] Job Observer::UserDeviceLogJob (id=3437) RUNNING
I, [2018-07-24T09:47:51.081012 #12794] INFO -- : 2018-07-24T09:47:51+0200: [Worker(host:support pid:12794)] Job Observer::UserDeviceLogJob (id=3437) COMPLETED after 0.0988
์, ์ด๊ฒ์ด ๋ฒ๊ทธ์ด๋ฉฐ ๊ธฐ๋ฅ ์์ฒญ์ด๋ ์ผ๋ฐ์ ์ธ ์ง๋ฌธ์ด ์๋๋ผ๊ณ ํ์ ํฉ๋๋ค.
์๋ ํ์ธ์ @ e311- ๋ก๊ทธ์ ์๋ถ๋ถ๋ ์ ๊ณตํด ์ฃผ์๊ฒ ์ต๋๊น? ํ์ํ ์ ๋ณด๊ฐ ์ธ์๋๊ณ ํ์ฌ ๋๋ฝ ๋ ๊ณณ์ ๋๋ค. ๋ํ : ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ํ ํ ๋จ๊ณ๋ฅผ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น? ์ด๊ฒ์ ํ์ฌ ๋ช ํํ์ง ์์ต๋๋ค. ๊ฐ์ฌ!
์๋
ํ์ธ์,
๋๋ ๊ทธ๊ฒ์ ์๋ ํ ๊ฒ์ด๋ค.
(๊ด๋ฆฌ์-> ์์คํ
-> Integarion์์) LDAP๋ฅผ ์ฝ๋ ๋ค. ๊ตฌ์ฑ์ ์์ํฉ๋๋ค.
๋๋ฉ์ธ DN ์ฌ์ฉ์ ๋น๋ฐ๋ฒํธ.
ํ์ค ๋งคํ์ ์ฌ์ฉํ์ต๋๋ค.
LDAP ๊ตฌ์ฑ ํ๋ฉด์ด ์ ๋ณด์ด์ง ์์ต๋๋ค.
๋๋ ์์ ์ ๋๋ฆ
๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋ํ๋ฉ๋๋ค.
ํ์ด์ง๋ฅผ ๋ค์๋ก๋ํ๋ฉด ํ๋ ์์ด ๋น์ด ์์ต๋๋ค.
๋ค์์ ์ ์ฒด ๋ก๊ทธ ํ์ผ์ ๋๋ค.
์๋ ํ์ธ์ @ e311- ํฌ๊ด์ ์ธ ๊ธ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ๋ก๊ทธ์์ ํฅ๋ฏธ๋ก์ด ์ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
E, [2018-07-24T11:39:30.491795 #973] ERROR -- : "\xC5" from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/core_ext/object/json.rb:36:in `encode'
...
/opt/zammad/app/controllers/application_controller/renders_models.rb:70:in `model_update_render_item'
/opt/zammad/app/controllers/application_controller/renders_models.rb:66:in `model_update_render'
/opt/zammad/app/controllers/settings_controller.rb:31:in `update'
๊ธฐ๋ณธ์ ์ผ๋ก LDAP ์ค์ ์ ํน๋ณํ ์ธ์ฝ๋ฉ ๋ ๋ฌธ์๊ฐ ์ ์ฅ๋๊ณ ์ ์ฅ๋๋ค๋ ๊ฒ์ ๋งํฉ๋๋ค. ๋ก๊ทธ์์๋ ๋ณผ ์ ์์ต๋๋ค.
๋๋ ์ด๊ฒ์ด ๋ฌธ์ ๋ฅผ ์ฌํํ๊ธฐ์ ์ถฉ๋ถํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ง๊ธ๊น์ง ์ง์ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ฒ ์ต๋๋ค.
Exchange ํตํฉ๋ ์ํฅ์๋ฐ์ต๋๋ค. # 2152
์๋ ํ์ธ์ @ e311 ,
์ฐ๋ฆฌ๋์ด ๋ฌธ์ ๋ฅผ ํํค์ณ ์์ผ๋ฉฐ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ดํดํ๊ณ ์๋ค๊ณ ํ์ ํ์ง๋ง ์์ ํ ํ์ ํ๋ ค๋ฉด ๋ค์ ๊ทํ์ ๋์์ ์์ฒญํด์ผํฉ๋๋ค.
ํฐ๋ฏธ๋์ Zammad ๋๋ ํ ๋ฆฌ์์ ๋ค์ ์ค์ ์๋ํ์ญ์์ค. ์์ฌ์ด ์ฌ ๋ฐ๋ฅด๋ฉด ์คํจํด์ผํฉ๋๋ค (_ ์ฆ, _ ์ค๋ฅ๋ฅผ ๋ฐ์์ํค๊ณ ์ญ ์ถ์ ํ์).
$ rails r "puts Setting.get('ldap_config').to_json"
์ด๊ธฐ ๋ฒ๊ทธ ๋ณด๊ณ ์์์๋ฐ์ ๊ฒ๊ณผ ๋์ผํ Encoding::UndefinedConversionError
๋ํ ํธ๋ ์ด์ค ๋ฐฑ์ ๋ณธ ๊ฒฝ์ฐ 2 ๋จ๊ณ๋ก ๋์ด๊ฐ๋๋ค! ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์ด ๋ฒ๊ทธ๊ฐ ๋ง์ง๋ง์ผ๋ก ๋ฐ์ํ ์ดํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ค์ ํ๊ฑฐ๋ LDAP ๊ตฌ์ฑ์ ๋ณ๊ฒฝํ์ง ์์๋์ง ํ์ธํ์ญ์์ค. ๊ทธ๋๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์๋ ๊ฒฝ์ฐ ๊ณ์ ์กฐ์ฌ ํ ์ ์๋๋ก ์๋ ค ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.
ํฐ๋ฏธ๋์์ ๋ค์ ๋ช ๋ น์ ์คํํ์ญ์์ค.
$ rails r "pp Setting.get('ldap_config').except('bind_pw')" > zammad_2140_debug_output.txt
๊ทธ๋ฐ ๋ค์ ๊ฒฐ๊ณผ ํ์ผ ( zammad_2140_debug_output.txt
)์ [email protected]์ผ๋ก ๋ณด๋
๋๋ค
์ด๊ฒ์ผ๋ก ์ฐ๋ฆฌ๋ ์ฆ์ ์์ ์ ํ ์ ์์ด์ผํฉ๋๋ค.
๋ชจ๋ ๋์์ ๋ค์ ํ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
์ด๊ฒ์ ์ฒซ ๋ฒ์งธ ์๋ง์ ๋๋ค
serveradmin @ support : / opt / zammad $ rails r "puts Setting.get ( 'ldap_config'). to_json"
์ญ ์ถ์ (๊ฐ์ฅ ์ต๊ทผ ํธ์ถ ๋ง์ง๋ง) :
4 : bin / rails : 3 : in <main>'
ย ย ย ย 3: from bin/rails:3:in
require_relative '
2 : /opt/zammad/config/boot.rb:3:in <top (required)>'
ย ย ย ย 1: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in
require '์์
/usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in`require ': ํด๋น ํ์ผ์๋ก๋ ํ ์ ์์-bundler / setup (LoadError)
Gesendet : Montag, 2018 ๋
8 ์ 6 ์ผ um 11:53 Uhr
ํฐ : "Ryan Lue" [email protected]
๋ต๋ณ : zammad / zammad [email protected]
์ฐธ์กฐ : e311 [email protected] , Mention [email protected]
Betreff : Re : [zammad / zammad] LDAP / Exchange UTF-8 ์ํ ์ฝ๋ 500 (# 2140)
์๋ ํ์ธ์ @ e311 ,
์ฐ๋ฆฌ๋์ด ๋ฌธ์ ๋ฅผ ํํค์ณ ์์ผ๋ฉฐ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ดํดํ๊ณ ์๋ค๊ณ ํ์ ํ์ง๋ง ์์ ํ ํ์ ํ๋ ค๋ฉด ๋ค์ ๊ทํ์ ๋์์ ์์ฒญํด์ผํฉ๋๋ค.
1 ๋จ๊ณ : ๋ฒ๊ทธ ์์ธ ํ์ธ
ํฐ๋ฏธ๋์ Zammad ๋๋ ํ ๋ฆฌ์์ ๋ค์ ์ค์ ์๋ํ์ญ์์ค. ์์ฌ์ด ์ฌ ๋ฐ๋ฅด๋ฉด ์คํจํด์ผํฉ๋๋ค (์ : ์ค๋ฅ๋ฅผ ๋ฐ์์ํค๊ณ ์ญ ์ถ์ ํ์).
$ rails r "Setting.get ( 'ldap_config'). to_json"์ ์ ๋ ฅํฉ๋๋ค.
์ด๊ธฐ ๋ฒ๊ทธ ๋ณด๊ณ ์์์๋ฐ์ ๋์ผํ Encoding :: UndefinedConversionError์ ๋ํ ํธ๋ ์ด์ค ๋ฐฑ์ ๋ณธ ๊ฒฝ์ฐ 2 ๋จ๊ณ๋ก ๋์ด๊ฐ๋๋ค! ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์ด ๋ฒ๊ทธ๊ฐ ๋ง์ง๋ง์ผ๋ก ๋ฐ์ํ ์ดํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ค์ ํ๊ฑฐ๋ LDAP ๊ตฌ์ฑ์ ๋ณ๊ฒฝํ์ง ์์๋์ง ํ์ธํ์ญ์์ค. ๊ทธ๋๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์๋ ๊ฒฝ์ฐ ๊ณ์ ์กฐ์ฌ ํ ์ ์๋๋ก ์๋ ค ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.
2 ๋จ๊ณ : ๋ง์ง๋ง์ผ๋ก ์ค์ํ ์ ๋ณด๋ฅผ ๋ณด๋ด์ฃผ์ธ์.
ํฐ๋ฏธ๋์์ ๋ค์ ๋ช ๋ น์ ์คํํ์ญ์์ค.
$ rails r "pp Setting.get ( 'ldap_config'). except ( 'bind_pw')"> zammad_2140_debug_output.txt
๊ทธ๋ฐ ๋ค์ ๊ฒฐ๊ณผ ํ์ผ (zammad_2140_debug_output.txt)์ [email protected]์ผ๋ก ๋ณด๋ ๋๋ค
์ด๊ฒ์ผ๋ก ์ฐ๋ฆฌ๋ ์ฆ์ ์์ ์ ํ ์ ์์ด์ผํฉ๋๋ค.
๋ชจ๋ ๋์์ ๋ค์ ํ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
โ
๋น์ ์ด ์ธ๊ธ ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ๋ณด๊ฑฐ๋ ์ค๋ ๋๋ฅผ ์์๊ฑฐํ์ญ์์ค.
rails r "pp Setting.get ( 'ldap_config'). except ( 'bind_pw')"> zammad_2140_debug_output.txt
emty ํ์ผ ์์ฑ (emty์ด๊ธฐ ๋๋ฌธ์ ์
๋ก๋ ํ ์ ์์)
@ e311 ์๋ ํ์ธ์-๋ค์์ ์๋ํ์ญ์์ค :
zammad run rails r "pp Setting.get('ldap_config').except('bind_pw')" > zammad_2140_debug_output.txt
๋๋:
bundle exec rails r "pp Setting.get('ldap_config').except('bind_pw')" > zammad_2140_debug_output.txt
ํ์ง๋ง ์ฒซ ๋ฒ์งธ ์ค์ด์ด์ผํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ๋ช
๋ น์ ์๋ํฉ๋๋ค.
sudo๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ sudo๋ฅผ ์ฌ์ฉํ์ง ์๋ "Serveradmin"๊ณผ ๋์ผ
Bundel์ด ์ค์น๋์ง ์์์ต๋๊น?
@ e311 , ๊ทธ๊ฒ์ ๋งค์ฐ ์ด์ํฉ๋๋ค. ์ง๊ธ์ ๋ ๋ฒ์งธ ๋ช
๋ น ( bundle exec rails ...
)์ ๋ฌด์ํ๊ฒ ์ต๋๋ค. ์ด๊ฒ์ด ์ฌ๋ฐ๋ฅธ ๊ฒฝ๋ก๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๋ก๊ทธ ํ์ผ์ ๋ฐฑ์
ํ๊ณ ๋น์ด์๋ ์ ํ์ผ์ ๋ง๋ค ์ ์์ต๋๊น?
/opt/zammad:# gzip production.log
/opt/zammad:# mv production.log.gz production.log.15.gz
/opt/zammad:# touch production.log
/opt/zammad:# chown zammad.zammad production.log
/opt/zammad:# chmod 0644 production.log
/opt/zammad:# zammad run rails r "pp Setting.get('ldap_config').except('bind_pw')" > zammad_2140_debug_output.txt
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
@rlue ์ด์ @ e311๋ก ๋ช ๋ น์ ์ํ
๋ก๊ทธ์๋ ์๋ฒฝํ ์ก์ธ์ค ๊ถํ์ด ์์ต๋๋ค. ๋ ๋ฒ ํ์ธํ์ต๋๋ค.
์์ง ldap-config ์ถ๋ ฅ์ด์๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ldap-config ์ถ๋ ฅ์ ๋ณด๋ด ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ด์ ํ๋ฃจ๊ฐ ์์๋ ๋ ์์ ํ ๋ก๊ทธ๋ฅผ ๋ณด๋์ต๋๋ค. ๋ด๊ฐ ๊ทธ๊ฒ์ ์ด๋ป๊ฒ ๋์ณค๋ ์ง ๋ชฐ๋ผ!
@ e311 , ๋๋ฒ๊ทธ ์ถ๋ ฅ์์ โโ์์ํ๋ ๋ด์ฉ์ ๋ณด์ง ๋ชปํ์ต๋๋ค. ์ด์ @MrGeneration ์ด zammad run rails r ...
๋ช
๋ น์ด ์๋ํ๋๋ก ๋์ ์ค ์ ์์์ผ๋ฏ๋ก ๋ค์์ ๋ค์ ์๋ํ๊ณ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ Encoding::UndefinedConversionError
๊ฐ ๋ฐ์ํ๋์ง ์๋ ค์ฃผ์๊ฒ ์ต๋๊น?
$ rails r "puts Setting.get('ldap_config').to_json"
"๋ฃจ๋น ๋ฒ์ ์ 2.5.1์ด์ง๋ง Gemfile์ 2.4.4๋ฅผ ์ง์ ํ์ต๋๋ค."๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
์๋ํ์ง ์์์ ๋ฏธ์ํฉ๋๋ค (๊ตฌ๊ธ์ด ๋์๊ฒ ๋งํ๋ ๋ชจ๋ ์๊ฐ์ ์๋ํฉ๋๋ค)
Ruby ๋ฐ Elasticsearch ๋ฒ์ ์ Zammad์ ํธํ๋์ง ์์ต๋๋ค.
Ruby 2.4.4 ๋ฐ Elasticsearch๋ฅผ ์ต๋ 5.6๊น์ง ์ฌ์ฉํ์ญ์์ค.
@ e311 ์ค์ ๋ก ์ฃ์กํฉ๋๋ค, ์์ ํ ๋ด ์๋ชป์
๋๋ค. zammad r
๋ค์ ์ถ๊ฐํ๋ ๊ฒ์ ์์์ต๋๋ค. -_- '
๋ด๋ง์
$ zammad run rails r "puts Setting.get('ldap_config').to_json"
๊ฑฐ๊ธฐ์ ๋ฉ์์ง๊ฐ ์์ต๋๋ค.
๋ฐ๋ผ์ ๋ง์ง๋ง ๋ช ๋ น์ ์ถ๋ ฅ์ ์ ํํ ๋ด๊ฐ ์์ํ๋ ๊ฒ์ ๋๋ค. ์์ฝํ๋ฉด LDAP ์๋ฒ์ ์ผ๋ถ ์ฌ์ฉ์ ์์ฑ์ ์ด์ง ๋ฐ์ดํฐ ๊ฐ์ด์๋ ๊ฒ ๊ฐ์ต๋๋ค. Zammad๋ ์ด๊ฒ์ ๋ฌธ์์ด๋ก ๋ณํ ํ ๋ค์ ๋ฐฑ์๋์์ ํ๋ฐํธ ์๋๋ก ์ ๋ฌํ๋ ค๊ณ ํ์ง๋ง ์ค์ ๋ก๋ ๋ฌธ์์ด์ด ์๋๊ธฐ ๋๋ฌธ์ ์ผ๋ถ ์ธ์ฝ๋ฉ / ๋ณํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋ฌผ๋ก , ๋๋ ๋น์ ์ LDAP ์๋ฒ์ ์ฐ๊ฒฐํ ์ ์๊ธฐ ๋๋ฌธ์ ๋น์ ์ด ์ฐ๋ฆฌ๋ฅผ ์ํด ๊ทธ๊ฒ์ ์๋ ํ ๋๊น์ง ์์ ์ด ์๋ ํ ๊ฒ์ด๋ผ๊ณ 100 % ํ์ ํ ์ ์์ต๋๋ค. ๊ทธ๋์ ๋ ๊ฐ์ง ๋ ๋ง์ ์ ์ ๋ํด ์ฌ๋ฌ๋ถ์ ๋์์ ์์ฒญํ๊ณ ์ถ์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก ๋ช ๊ฐ์ง ๋ช ๋ น์ ์คํํ๊ณ ์ถ๋ ฅ์ ์ด๋ฉ์ผ๋ก ๋ณด๋ด๋ฌ๋ผ๊ณ ์์ฒญํ์ ๋ (์ง๋ ์์์ผ), ์ ๊ฐ ์ ๊ณต ํ ๋ช ๋ น์ด ์ ํํ์ง ์์๊ณ ํ์ํ ์ ๋ณด๋ฅผ ์ ํํ ์ ๊ณตํ์ง ์์์ต๋๋ค. ์ด๋ฒ์ ์ ๋๋ก ์๋ํ๋ ์คํฌ๋ฆฝํธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค (์ฌ๊ธฐ์์ ๋ค์ด๋ก๋ ).
# Place this script in your Zammad directory and run it with
#
# $ zammad run rails r 2140_bug_report.rb
#
# It should create a file named 2140_bug_report.txt.
# Please send this file to [email protected], and mention that it's for Ryan.
class Hash
def deep_values
values.map { |v| v.try(:deep_values) || v }.flatten
end
end
string_values = Setting.get('ldap_config').except('bind_pw').deep_values.select { |v| v.is_a?(String) }
File.binwrite('2140_bug_report.txt', Marshal.dump(string_values))
๋ ๋ฒํ๊ฒํด์ ์ฃ์กํฉ๋๋ค.
๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผํ๋ค๊ณ ์๊ฐํ๋ ํจ์น๋ฅผ ์์ฑํ์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก LDAP ๋๊ธฐํ์์ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ ๊ฐ์ ๋ฐ๊ฒฌ ํ ๋๋ง๋ค ๋ฌธ์์ด๋ก ์ ์ฅํ๋ ๋์ ๊ฑด๋ ๋๋๋ค.
์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ ๊ธฐ๋ณธ ์ฝ๋๋ฒ ์ด์ค์ ๋ณํฉํ๊ธฐ ์ ์ ์์คํ
์์ ์์ ์ฌํญ์ด ์๋ํ๋์ง ํ์ธํ๊ณ ์ถ์ต๋๋ค. ๋ค์์ lib/ldap/user.rb
ํ์ผ ์
๋ค์ด๋ก๋ํ์ฌ /opt/zammad/lib/ldap/user.rb
๋ณต์ฌ ํ ๋ค์ Zammad ๋ฅผ
2 ๋จ๊ณ๋ ์ฌ์ ํ ๋น์ ์ ์ํด ๊ทธ๊ฒ์ ํด๊ฒฐ๋์ง ์์ผ๋ฉด ๋ค์ 1 ๋จ๊ณ์์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ณ ์ฐ๋ฆฌ์๊ฒ ๋ ํ์ผ์ ๋ณด๋ด์ฃผ์ญ์์ค.
๊ทํ์ ๋์๊ณผ ์ธ๋ด์ฌ์ ๋ค์ ํ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
ํ ์์คํ ์ ์ฌ๋ถํ ํ๋๋ฐ ๋ณ๊ฒฝ ๋ฒํผ์ ๋๋ฅผ ์ ์์ต๋๋ค.
ํจ์น๋ฅผ ์ํด
2140_bug_report (Step1) .txt
ํจ์น ํ
2140_bug_report (2 ๋จ๊ณ) .txt
i ๋ํ ์ LDAP ๊ตฌ์ฑ์ ์๋ํฉ๋๋ค. LDAP conf๋ฅผ ์ํด ์์คํ ์ ๋ณต์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋์ผํ ๊ฒฐ๊ณผ๊ฐ ์๋๋๋ค.
๋๋ฉ์ธ ๊ธฐ๋ฅ ์์ค์ ํ์ธํ์ต๋๋ค. 2003 ๋ ์ด ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๋ค
ํ ์์คํ ์ ์ฌ๋ถํ ํ๋๋ฐ ๋ณ๊ฒฝ ๋ฒํผ์ ๋๋ฅผ ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋ช ํํ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋๋ ์๋ ๋ฌธ์ ์ ๋ฒ์๋ฅผ ์ดํดํ์ง ๋ชปํ์ต๋๋ค.
i ๋ํ ์ LDAP ๊ตฌ์ฑ์ ์๋ํฉ๋๋ค. LDAP conf๋ฅผ ์ํด ์์คํ ์ ๋ณต์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋์ผํ ๊ฒฐ๊ณผ๊ฐ ์๋๋๋ค.
LDAP conf ์ด์ ์ผ๋ก ์์คํ ์ ๋ณต์ํ๊ณ ์ ์ฒด ๋ง๋ฒ์ฌ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์คํํ์ง๋ง ์ฌ์ ํ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์์ ์๋ฏธํฉ๋๊น? ๋๋ LDAP conf ์ด์ ์ ์์คํ ์ ๋ณต์ํ๋ ค๊ณ ํ์ง๋ง ์ฌ์ ํ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ๋ง๋ฒ์ฌ์ ์ก์ธ์ค ํ ์ ์๋ค๋ ์๋ฏธ์ ๋๊น?
์ ์๋ผ๋ฉด ํจ์น๋ ์ฌ์ ํ ์ฝ๊ฐ์ ์์ ์ด ํ์ํฉ๋๋ค. ๋ด์ผ ๋น์ ์์ํ ํด๊ฒฐ์ฑ ์ด ์์ด์ผํฉ๋๋ค. ํ์์ ๊ฒฝ์ฐ ๋ค์์ ์ฌ์ฉํ์ฌ LDAP ๊ตฌ์ฑ์ ์ฌ์ค์ ํ ์ ์์ต๋๋ค.
$ RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"
(๊ฐ๋ฐ ํ๊ฒฝ์์์ด ์์
์ ์ํํ๋ ๊ฒฝ์ฐ RAILS_ENV=production
๋ถ๋ถ์ โโ์๋ต ํ ์ ์์ต๋๋ค.)
๋ฐฑ์ ์ ๋ณต์ํ์ต๋๋ค. LDAP ๊ตฌ์ฑ์ ์ฒ์ ์์ํ๊ธฐ ์ ์ ๋ฐฑ์ ์ด ์์ฑ๋์์ต๋๋ค.
๋๋ LDAP ์ฝ์ ์ฌ์ค์ ํ๋ ค๊ณ ํฉ๋๋ค.
$ RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"
๋๋ conf๋ฅผ "์ฌ์ค์ "ํ์ง ์์ง๋ง ์ฌ์ ํ ์๋ํฉ๋๋ค.
์ด์ ์ค๋ฅ ๋ฉ์์ง์์ด ์ ์ฒด ์์คํ
์ด ์คํ์ค์ธ ๊ฒ ๊ฐ์ต๋๋ค.
(LDAP ์ ์ธ)
์ข์์, ๋น์ ์ ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค.
(ํฌ์ธํธ 2๋ฅผ ํ์ธํ๋ ค๋ฉด RAILS_ENV=production zammad run rails r "puts Setting.get('ldap_config')"
์คํํ๋ฉด {}
์ด ์ฝ์์ ์ธ์๋ฉ๋๋ค.)
์์ ๋ชจ๋ ์ฌํญ์ด ์ฌ์ค์ด๊ณ ์์์ ๋งํฌ ํ lib/ldap/user.rb
์ ํจ์น ๋ ๋ฒ์ ์ ๋ณต์ฌ ํ ๊ฒฝ์ฐ LDAP ๋๊ธฐํ๋ฅผ ํ ๋ฒ ๋ ์ค์ ํ๊ณ ๊ณ์ ์คํ๋๋์ง ์๋ ค์ฃผ์ธ์. ๊ฐ์ ๋ฌธ์ ?
๋๋ ๋ด๊ฐ ์คํด ํ ๊ฒฝ์ฐ ์ํฉ์ ์๋ ค์ฃผ์ญ์์ค.
๊ฐ์ฌ.
@rlue -JFI : https://community.zammad.org/t/unable-to-access-ldap-in-integrations-statuscode-500/1116/5์ ์ดํด๋ณด์ธ์ ๐
๋ฆ์ ๋ต๋ณ ์ฃ์กํฉ๋๋ค. ๋ค ๋ชจ๋ ๊ฒ์ด ๋ง์ต๋๋ค. LDAP๋ฅผ ๋ค์ ๊ตฌ์ฑํ ํ ๋์ผํ ์ค๋ฅ๊ฐ ๋ค์ ๋ฐ์ํ์ต๋๋ค.
- @rlue @ e311 ์ด๋ฏธ ์ธ๊ธ ํ ๋ฐ์ ๊ฐ์ด ์ฌ์ ํ ๋ญ๊ฐ ์๋ชป : https://community.zammad.org/t/unable-to-access-ldap-in-integrations-statuscode-500/1116/21
์ฐธ๊ณ : ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ผ๋ฉฐ ํจ์น ๋ user.rb๋ ์ ์๊ฒ ์ ํฉํ์ง ์์์ต๋๋ค.
๋ฏธ๋ฆฌ ์์
ํด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค
ํ์ผ์ ๋ณ๊ฒฝํ๊ณ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ค์ ์์ํ ํ์๋ ๋ฌธ์ ๊ฐ์๋ ๋ชจ๋ ์ฌ๋์ log/production.log
ํ์ผ์์ ์ค๋ฅ (์ญ ์ถ์ ํฌํจ)๋ฅผ ์ ๊ณตํ์ญ์์ค. ๊ฐ์ฌ!
@ e311 , @tbeitter ๋ฐ _yet another_ ๋๋ฒ๊น ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ณ ์ถ์ต๋๋ค . ๋๋ฌด ๋นจ๋ฆฌ ๋งํ๊ณ ์ถ์ง๋ ์์ง๋ง ์ด๊ฒ์ด ๋ง์ง๋ง์ด ๋ ๊ฒ์ ๋๋ค.
zammad ๋๋ ํ ๋ฆฌ์ ๋ฃ๊ณ ์คํํ์ญ์์ค.
$ zammad run rails r 2140_improved_bug_report.rb
LDAP ์๋ฒ URL๊ณผ ๋ก๊ทธ์ธ ์๊ฒฉ ์ฆ๋ช
์ ์
๋ ฅํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋๋ฉด ์คํฌ๋ฆฝํธ๊ฐ 2140_debug_log.txt
๋ผ๋ ํ์ผ์ ์์ฑํฉ๋๋ค. ์ด ํ์ผ์๋ LDAP ์๋ฒ์ ์ฌ์ฉ์ ์์ฑ ์ํ์ด ํฌํจ๋์ด ์์ผ๋ฏ๋ก ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ์๋ฏธ ํ ์์๋ ๊ฒฝ์ฐ ๊ณต๊ฐ์ ์ผ๋ก ๊ฒ์ํ์ง ๋ง์ญ์์ค . ๋์ [email protected]์ผ๋ก ๋ณด๋ด๊ณ Ryan์์ํ ๊ฒ์ด๋ผ๊ณ ์ธ๊ธํ์ธ์.
์ด ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ๋ ๋์ ๊ณ์ ๊ธฐ๋ค๋ ค ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์๋
ํ์ธ์,
์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ค๊ณ ํ๋ฉด ํ์ผ์ด ์์ฑ๋์ง ์์์ต๋๋ค (LDAP๊ฐ ์ผ์ ธ ์์).
serveradmin<strong i="7">@support</strong>:/opt/zammad$ sudo zammad run rails r 2140_improved_bug_report.rb
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/commands/runner/runner_command.rb:34:in `load': 2140_improved_bug_report.rb:77: invalid multibyte char (UTF-8) (SyntaxError)
from /opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/commands/runner/runner_command.rb:34:in `perform'
from /opt/zammad/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'
from /opt/zammad/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'
from /opt/zammad/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'
from /opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/command/base.rb:63:in `perform'
from /opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/command.rb:44:in `invoke'
from /opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/commands.rb:16:in `<top (required)>'
from /opt/zammad/bin/rails:4:in `require'
from /opt/zammad/bin/rails:4:in `<main>'
serveradmin<strong i="8">@support</strong>:/opt/zammad$
๋ํ์ด ldap ์ค๋ฅ๊ฐ ์์ต๋๋ค ... (repo๋ฅผ ํตํ ์ฐ๋ถํฌ 16.04 ์ค์น)
root<strong i="6">@zammad01</strong>:/opt/zammad# zammad run rails r 2140_improved_bug_report.rb
Please specify a valid ruby command or the path of a script to run.
Run 'bin/rails runner -h' for help.
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/commands/runner/runner_command.rb:37: trailing `_' in number
2140_improved_bug_report.rb
^
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/commands/runner/runner_command.rb:37: syntax error, unexpected tIDENTIFIER, expecting end-of-input
2140_improved_bug_report.rb
@ redbear-ger, 2140_improved_bug_report.rb
๊ฐ /opt/zammad
๋๋ ํ ๋ฆฌ์ ์๋์ง ํ์ธํ์ญ์์ค.
@ e311 ์์ค , ์ด์ํ ๋ฒ๊ทธ์ ๋๋ค.
์ฝ์ ์ถ๋ ฅ์์ โโ๋ถํ์ํ ๋ฉํฐ ๋ฐ์ดํธ ๋ฌธ์๋ฅผ ์ ๊ฑฐํ์ฌ ์คํฌ๋ฆฝํธ๋ฅผ ์์ ํ์ต๋๋ค. ์คํฌ๋ฆฝํธ๋ฅผ ๋ค์ ๋ค์ด๋ก๋ํ๊ณ ๋ค์ ์๋ํ๊ฑฐ๋ 77 ํ์ ๋ฅ๊ทผ ๋ฐ์ดํ๋ฅผ ์ผ๋ฐ ๋ฐ์ดํ๋ก ๋ณ๊ฒฝํ๋ฉด๋ฉ๋๋ค.
# replace โ#{default_base_dn}โ with '#{default_base_dn}'
printf "Base DN (leave blank for default '#{default_base_dn}'): "
์ด๊ฒ์ด ๊ณ ์น ๊ฒ์ด๋ผ๊ณ 100 % ํ์ ํ์ง๋ ์์ง๋ง, ์ง๊ฐ์ด ์์ต๋๋ค.
@rlue , no 2140_improved_bug_report.rb in / opt / zammad
btw : LDAP ๊ตฌ์ฑ (RAILS_ENV = production zammad run rails r "Setting.set ( 'ldap_config', {})")์ ์ญ์ ํ์๋ง์ ๋ฌธ์ ๊ฐ ์ฌ๋ผ์ง๋๋ค.
@ redbear-ger ๋น ๋ฅธ ํผ๋๋ฐฑ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋ฒ๊ทธ ์ ๊ณ ์คํฌ๋ฆฝํธ ๋ฅผ /opt/zammad
์ ๋ฃ๊ณ ๋ค์ ์๋ํ์ญ์์ค.
์ง๊ธ ๋ฌธ์ ๊ฐ 100 % ํด๊ฒฐ ๋๋๋ผ๋ ์ํ ๋ฐ์ดํฐ๋ฅผ ํ๋ณดํ๋ฉด ์ด๋ฌํ ๋ฌธ์ ๊ฐ ๋ค์ ๋ฐ์ํ์ง ์๋๋ก ํ ์คํธ๋ฅผ ๊ตฌ์ถ ํ ์ ์์ต๋๋ค.
๋ฒ๊ทธ๋ ์ฌ๋ผ์ก์ง ๋ง ldap ํตํฉ๋ ์์ต๋๋ค.)
์ค๋ ๋ฐค ๋ณด๊ณ ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค.
์๋
ํ์ธ์,
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ผ๋ฉฐ ์์ ๋ชจ๋ ์ ์์ ์๋ํ์ต๋๋ค. ๊ทธ๋ค ์ค ๋๊ตฌ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ๋ชปํฉ๋๋ค.
๊ทธ๋์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ์ง ์๊ณ ๋๋ฒ๊ทธ ํ์ผ์ ์ ๊ณตํ๊ธฐ ์ํด ๊ฐ๋ฐ ์์คํ
์์ ๋ฌธ์ ๋ฅผ ์ฌํํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
2140_improved_bug_report.rb ์คํฌ๋ฆฝํธ๋ ๋ค์ ํ
์คํธ ํ์ผ์ ๋ฐํํ์ต๋๋ค.
2140_debug_log.txt
๊ฐ์ฌ!
๊ฐ์ฌํฉ๋๋ค @hublux! ์ด๋ค ์ด์ ๋ก ์ ์ด ๋ฌธ์ (_e.g., _ ^D
)๊ฐ ๋ฆฌํฐ๋ด ์บ๋ฟ ( ^
) ๋ค์์ ๋ฆฌํฐ๋ด ๋ฌธ์ ( D
), ํ์ผ์ ๊ตฌ๋ฌธ ๋ถ์ ํ ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ํน์ ํ์ผ์ ์
๋ก๋ํ๊ธฐ ์ ์ ํ์ผ์ ์ด๋ค ์กฐ์น๋ฅผ ์ทจํ์ต๋๊น? (์๋ฅผ ๋ค์ด, ํ
์คํธ ํธ์ง๊ธฐ์์ ์ฐ ๋ค์ ๋ซ์ ๋ค์ "๋ณ๊ฒฝ ์ฌํญ ์ ์ฅ"์ ํด๋ฆญํฉ๋๊น?) ์๋๋ฉด ์
๋ก๋ ํ ๋ GitHub์์ ์ผ์ข
์ ์ฒ๋ฆฌ๋ฅผ ์ํํ์ ์ ์๋ค๊ณ ๊ฐ์ ํฉ๋๊น?
์๋ณธ ํ์ผ์ด ์ปดํจํฐ์์ ์ฌ๋ฐ๋ฅด๊ฒ ํฌ๋งท๋์๋์ง ํ์ธํ๋ ค๋ฉด Zammad ๋๋ ํฐ๋ฆฌ์์ ๋ค์ ๋ช ๋ น์ ์๋ํ๊ณ ์ถ๋ ฅ์ ํ์ธํ์ญ์์ค.
$ zammad run rails r "puts Marshal.load(File.read('2140_debug_log.txt')).first.inspect"
# should print the following:
["dn", "CN=Exchange Online-ApplicationAccount,OU=SBSUsers,OU=Users,OU=MyBusiness,DC=ebusiness,DC=local"]
๋ชจ๋ ์์๋๋ก ์๋ํ๋ ๊ฒฝ์ฐ [email protected]์ผ๋ก ํ์ผ์ ์ด๋ฉ์ผ๋ก .
์๋
ํ์ธ์,
๋น์ ์ ๋ต๋ณ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์ค์ ๋ก ์ฝํ
์ธ ๋ฅผ ๋ณต์ฌํ์ ๋ ์ผ๋ถ ์์
์ผ๋ก ์ธํด ํ์ผ์ด ๋ณ๊ฒฝ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ณ ์์ด์ ํจ๊ป ํ์ธํ๋ฉด ์กฐ๊ธ ๋ฌ๋ผ ๋ณด์
๋๋ค.
๋ช
๋ น์ ์๋ํ๊ณ ์ฌ๋ฐ๋ฅธ ์ถ๋ ฅ์ ๋ฐ์์ต๋๋ค.
zammad ์ง์ํ์ ํ์ผ์ ๋ณด๋์ต๋๋ค.
์ฌ๊ธฐ์ ์ ํ์ผ๋ ์์ต๋๋ค.
2140_debug_log.txt
@hublux , ๋น ๋ฅธ ํผ๋๋ฐฑ์ ๋ค์ ํ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ด ์ ํ์ผ๋ ์ณ์ง ์๊ธฐ ๋๋ฌธ์ ๋ด๊ฐ ์์ฑํ ๋๋ฒ๊ทธ ์คํฌ๋ฆฝํธ์ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค (์๋ ๋ณด๋ธ 16kB ๋๋ฒ๊ทธ ๋ก๊ทธ์ ๋นํด ๋ง์ ๋ฐ์ดํฐ โ 4kB๊ฐ ๋๋ฝ๋์์ต๋๋ค).
๋๋ ์ดํ๋ก ๋๋ฒ๊ทธ ์คํฌ๋ฆฝํธ๋ฅผ ํจ์นํ์ฌ 2140_debug_log.txt
ํ์ผ์ ๋ ๊ฐ๋ ฅํ๊ณ ์์ ํ๊ฒ ์ด๋ฌํ ์ด์ํ ์ธ์ฝ๋ฉ ๋ฌธ์ ์์ด ์ ์กํ ์ ์๋๋กํ์ต๋๋ค. ํ ๋ฒ ๋ ๋ค์ด๋ก๋ํ๊ณ ๋ค์ ์๋ํ์ญ์์ค. (๋ ํธ๋ฆฌํ๋ค๋ฉด์ด ์ค๋ ๋์ ๋ต์ฅ์ ์์ ๋กญ๊ฒ ํฌํจ ์ํค์ญ์์ค.)
๊ทธ๊ฒ์ ์๋, ๋ฃจ๋น ํด์๋ฅผํ๋ค ๊ทธ๊ฒ์ ์ ๋ ฌ ํ ํ๊ณ (์ธ์ฝ๋ฉ-์ดํ) 'ํ ์คํธ'ํ์ผ์ ๋ฐ์ด๋๋ฆฌ๋ก ์ ๋ ฌ ํ ๋ ๋ฐ์ดํฐ๋ฅผ ์ผ๋ค. ์ด์ง ํ ์คํธ ํ์ผ์ด ํ ์ปดํจํฐ์์ ๋ค๋ฅธ ์ปดํจํฐ๋ก ์ ์ก ๋ ๋ ์ ์์๋๋์ง ์ ๋ง ๋ชจ๋ฅด๊ฒ ์ง๋ง, ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์ฌ๊ธฐ์ ๊ด์ฐฐํ๋ ๊ฒ์ ๋๋ค.
์ด ์์ ์ ๋ง์ฌ๋ง ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ ์์ ์ผ๋ฐ ์ ๋ ์ฝ๋ ํ ์คํธ ํ์ผ์ ์ ์ฅํ๊ธฐ ์ ์ base-64๋ก ์ธ์ฝ๋ฉํฉ๋๋ค. ์ ๋ ์ฝ๋๋ณด๋ค ๋ณดํธ์ ์ธ ๊ฒ์ด ๋ฌด์์ผ๊น์?
2140_debug_log.txt
์ ์คํฌ๋ฆฝํธ๊ฐ ํฌํจ ๋ ์ถ๋ ฅ์ด ์์ต๋๋ค.
๋ฌธ์ ์ธ์ฌ!
์๋
๋ชจ๋๋ค,
๊ฐ์ ๋ฌธ์ ๊ฐ ๋์๊ฒ๋ ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ์ ์๋ก์ด lib/ldap/user.rb
์
๋ฐ์ดํธ ํ ํ์๋
๋๋ ๋ํ ldap_config
-hash์์ ์ฝ๊ฐ ํ๊ณ ๋ค๊ธฐ ์์ํ๊ณ ๋ชจ๋ !binary
์ฝํ
์ธ ๋ฅผ ์ ๊ฑฐํ๊ธฐ ์์ํ์ต๋๋ค. ๊ทธ๋ฌ๋์ด ์ค 4 ๊ฐ๊ฐ ์์์ง๋ง ์ธ์ฝ๋ฉ์ 2 ๊ฐ๋ง ๋ง๊ฐ ์ก๋ค๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค.
usersmimecertificate
๋ฐ msexchmailboxsecuritydescriptor
.
๋ค๋ฅธ ๋ ๊ฐ, msexchmasteraccountsid
๋ฐ securityprotocol
๋ ๋ฌธ์ ๋ฅผ ์ผ์ผํค์ง ์์์ต๋๋ค.
์๋ ํ์ธ์,
๋ช
ํํํ๊ธฐ ์ํด ์๋ฌด๋ ์ด๊ฒ์ ์ธ๊ธํ์ง ์์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ๋ช
๋ฐฑํ ์ง ํ์คํ์ง ์์ต๋๋ค.
LDAP ์ฐ๊ฒฐ๋ก Active Directory๋ฅผ ๋
์ผ์ด๋ก Systemlanguage๋ก ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋์ ์ ์์คํ
๊ณผ ๋ณ๋์ ๋๋ฉ์ธ์ ์ค์นํ์ต๋๋ค. ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ด์ ์์คํ
๊ณผ์ ์ ์ผํ ์ฐจ์ด์ ์ ์ ์์คํ
์์ ์ธ์ด๊ฐ ๋
์ผ์ด ๋์ ๋ฏธ๊ตญ ์์ด๋ก ์ค์ ๋๋ค๋ ๊ฒ์
๋๋ค. ์ด ์ค์ ์ ์ฌ์ฉํ๋ฉด ์ค๋ฅ๋ฅผ ์ฐพ์ ์ ์์ผ๋ฉฐ ๋ชจ๋ ๊ฒ์ด ์์๋๋ก ์๋ํฉ๋๋ค. ๊ทธ๋์ ๋ฌธ์ ๊ฐ์๋ ์๋ zammad ์์คํ
์ ์๋ก ์ค์น ํ ๋๋ฉ์ธ๊ณผ ์ฐ๊ฒฐํ๋๋ฐ ๋ฌธ์ ๊ฐ ์ฌ๋ผ์ก์ต๋๋ค.
์์
์ค์ ์์ ๋ค์์ ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ถ๋ ฅ์ด ์ ๊ณต๋ฉ๋๋ค.
sudo zammad run rails r "puts Setting.get('ldap_config').to_json"
๋ช ๋ น์ ์คํํ์ฌ ์๋ ์ค์ ์ผ๋ก ldap ๊ตฌ์ฑ์ ํ์ธํ๋ฉด ์คํจํ๊ณ ๋ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ด๊ฒ์ด ๋์์ด๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋ฌธ์ ์ธ์ฌ!
๊ฐ์ฌํฉ๋๋ค @hublux! ๊ทํ์ ์๊ฒฌ ๋๋ถ์ ์์
์ด ์์ ๋์์ต๋๋ค. ๊ณง develop
๋ณํฉ๋ฉ๋๋ค!
์ ๋ฐ์ดํธ ํ์๋ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. (ํ์ง๋ง Exchange ์ค์ ์์ด LDAP ๋๊ธฐํ ๋ง)
์๋ ํ์ธ์ @tidet , ํผ๋๋ฐฑ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ด ์๊ฒฌ ์ ์ง์๋ฅผ ๋ฐ๋ฅด์ญ์์ค. ๊ทํ์ ์ํ ๋ฐ์ดํฐ๋์ด ๋ฌธ์ ๋ฅผ ๊ฒฐ์ ์ ์ผ๋ก ํด๊ฒฐํ๋ ๋ฐ ํฐ ๋์์ด๋ฉ๋๋ค.
์๋
ํ์ธ์,
๋ค์ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง๋ง ์ด์ ๊ตฌ์ฑ์ด ์ฌ์ ํ ์กด์ฌํ๋ค๋ ๊ฒ์ ์๋ฆฌ๊ธฐ ์ํด. ์ด ๋ฌธ์ ๊ฐ ๋ค์ ๋ฐ์ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์งํํ์ญ์์ค.
๋ค์ ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ์ด์ ๊ตฌ์ฑ์ ์ญ์ ํ์ญ์์ค.
sudo RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"
zammad ์๋น์ค ์ค์ง
zammad ์ ๋ฐ์ดํธ
zammad ์๋น์ค๋ฅผ ๋ค์ ์์ํ๊ณ ldap ์ฐ๊ฒฐ์ ๋ค์ ๊ตฌ์ฑํ์ญ์์ค.
๊ทธ ํ ๋๋ ์ด๋ค ๋ฌธ์ ๋ ์ง๋ฉดํ์ง ์์์ต๋๋ค.
๋ฌธ์ ์ธ์ฌ
@rlue ์์ ํด๊ฒฐ์ฑ
์ ์๋ํ๊ฑฐ๋ ๋๋ฒ๊น
๋ชฉ์ ์ผ๋ก ํ์ฌ ์ค๋ฅ๋ฅผ ์ ์งํด์ผํฉ๋๊น?
๋ก๊ทธ ํ์ผ์ด ํฌํจ ๋ ์ด๋ฉ์ผ์ด support @์๊ฒ ๋ฐ์ก๋์์ต๋๋ค.
@tidet , ์ด์ ์ํ LDAP ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฏ๋ก ์์ ์์
์ ์๋ํด๋ณด์ญ์์ค. ์ด์จ๋ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์์๋ ํ๋์ ๊ฐ์ ์ฐพ์์ง๋ง ์๋ง ๊ด์ฐฎ์ ๊ฒ์
๋๋ค. ์์ ์ง์นจ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ทธ๋ ์ง ์๋ , ์ค๋ ๋ฆ๊ฒ ํ์ดํ ๋ผ์ธ์ ๋ ๋ค๋ฅธ ํจ์น๊ฐ์์ ๊ฒ์
๋๋ค.
ํธ์ง : ๋ด ๋ง์์ ๋ฐ๊ฟจ์ต๋๋ค. ์์ ์ฌํญ์ด ํจ๊ณผ๊ฐ ์์ผ๋ฏ๋ก ์ค์ ๋ก ๋๊ตฐ๊ฐ๋ฅผ ์ํด ์์ ๋ ๋๊น์ง ์ฝ๋๋ฅผ ์์ ํ๊ณ ๋ถํ์ํ ๋ณต์ก์ฑ์ ์ถ๊ฐํ๋ ๊ฒ์ ์์ ํ๊ฒ ์ต๋๋ค.
@hublux Fix๋ ์ ์๊ฒ
@hublux๋ ์์ ๋์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ฌ์ ํ์ด ๋ฌธ์ ์ ์ง๋ฉด ํด ์์ต๋๋ค. ๋๋ @hublux๊ฐ ์์ฑํ๊ณ , ๊ตฌ์ฑ์ ์ญ์ ํ๊ณ , zammad (2.6.0-1534939663.6d23dae9.stretch now)๋ฅผ ์ ๋ฐ์ดํธํ๊ณ , zammad๋ฅผ ๋ค์ ์์ํ๊ณ ldap ์ฐ๊ฒฐ์ ๊ตฌ์ฑํ์ต๋๋ค. ์ฝ๋๋ฅผ ์๋์ผ๋ก ํจ์นํด์ผํฉ๋๊น? ๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
๋๋ ํด๊ฐ ์ค์ด์๊ณ ์ฌ๊ธฐ์ ๋ฆ๊ฒ ๋ต์ฅ์ ๋ณด๋ด์ ์ฃ์กํฉ๋๋ค.
์๋
ํ์ธ์ @tbeitter ,
์ด ๋ช
๋ น์ ์คํํ๋ฉด ์ถ๋ ฅ์ด ์์ ๋ฉ๋๊น?
sudo zammad run rails r "puts Setting.get('ldap_config').to_json"
๊ทธ๋ ๋ค๋ฉด ์ด๊ฒ์ ํ์ธํ์ญ์์ค.
https://github.com/zammad/zammad/issues/2140#issuecomment -417605384
๋ฌธ์ ์ธ์ฌ
์, ๋ค์๊ณผ ์ ์ฌํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
"\xC2" from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)
์๋ ํ์ธ์,
์ค๋ ์์นจ์ ์
๋ฐ์ดํธ ํ Zammad ๋ฒ์ ์ ํ์ธํ์ต๋๋ค.
๋น์ ๊ณผ ๋ค๋ฆ
๋๋ค.
๋ค์ ๋จ๊ณ๋ฅผ ๋ค์ ์งํํด ์ฃผ์๊ฒ ์ต๋๊น?
๋ฌธ์ ์ธ์ฌ
๋๋ฅผ ์ํด ์ผํ @hublux ! ๊ฐ์ฌ!
๋ค๋ฅธ ์ฌ์ฉ์๋ฅผ ๋ถ๋ฅํ๋ ๋ฐ ๋ชจ๋ ๋์์ ์ฃผ์ @hublux ์ ํฐ ์๋ฆฌ๋ก ์ธ์ณ์ฃผ์ธ์. e07f41ed์๋ ์ด์ ๊ฒฐํจ์ด์๋ LDAP ๊ตฌ์ฑ์ ์๋์ผ๋ก ์ง์์ผํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง์ด๊ทธ๋ ์ด์ ์ด ํฌํจ๋์ด ํฅํ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ๋ ์ด์ ์ด๋ฌํ ์๋ ๋จ๊ณ๋ฅผ ์ฒ๋ฆฌ ํ ํ์๊ฐ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์๋ ํ์ธ์,
๋ค์ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง๋ง ์ด์ ๊ตฌ์ฑ์ด ์ฌ์ ํ ์กด์ฌํ๋ค๋ ๊ฒ์ ์๋ฆฌ๊ธฐ ์ํด. ์ด ๋ฌธ์ ๊ฐ ๋ค์ ๋ฐ์ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์งํํ์ญ์์ค.
๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ด์ ๊ตฌ์ฑ์ ์ญ์ ํ์ญ์์ค.
sudo RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"
zammad ์๋น์ค ์ค์ง
zammad ์ ๋ฐ์ดํธ
zammad ์๋น์ค๋ฅผ ๋ค์ ์์ํ๊ณ ldap ์ฐ๊ฒฐ์ ๋ค์ ๊ตฌ์ฑํ์ญ์์ค.
๊ทธ ํ ๋๋ ์ด๋ค ๋ฌธ์ ๋ ์ง๋ฉดํ์ง ์์์ต๋๋ค.
๋ฌธ์ ์ธ์ฌ