Tại sao Ejabberd bắt đầu thất bại?


9

Tôi đang cố gắng cài đặt ejabberd 2.1.10-2trên Ubuntu 12.04.1máy chủ của tôi . Đây là một bản cài đặt mới và ejabberd không bao giờ được cài đặt thành công.

Cài đặt

Mỗi lần, apt-get bị treo trên này:

Setting up ejabberd (2.1.10-2ubuntu1) ...
Generating SSL certificate /etc/ejabberd/ejabberd.pem...

Creating config file /etc/ejabberd/ejabberd.cfg with new version
Starting jabber server: ejabberd............................................................ failed.

Các chấm chỉ cần đi mãi mãi cho đến khi nó lần ra hoặc tôi 'killall' beam, beam.smp, epmd, và ejabberdquá trình này. Tôi đã tắt tất cả các hạn chế tường lửa.

Đây là đầu ra của epmd -namestrong khi cài đặt được treo:

epmd: up and running on port 4369 with data:
name ejabberdctl at port 42108
name ejabberd at port 39621

Và sau khi thất bại:

epmd: up and running on port 4369 with data:
name ejabberd at port 39621

Đồng thời (trong và sau), đầu ra của cả hai netstat -atnp | grep 5222netstat -atnp | grep 5280trống.


Tệp sự cố

Một tệp kết xuất sự cố được tạo tại /var/log/ejabber/erl_crash.dump. Khẩu hiệu (nghĩa là lý do cho sự cố) là:

Slogan: Kernel pid terminated (application_controller) ({application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}})

Nó còn sống?

Bất cứ khi nào tôi cố gắng khởi chạy lại ejabberd service ejabberd start, điều tương tự cũng xảy ra - ngay cả khi tôi đã giết tất cả các quy trình trước khi thực hiện.

Tuy nhiên, khi tôi giết tất cả các quy trình được liệt kê ở trên một lần nữa và chạy su - ejabberd -c /usr/sbin/ejabberd, đây là đầu ra tôi nhận được:

Erlang R14B04 (erts-5.8.5) [source] [64-bit] [rq:1] [async-threads:0] [kernel-poll:false]

Eshell V5.8.5  (abort with ^G)
(ejabberd@ns1)1> 
=INFO REPORT==== 15-Oct-2012::12:26:13 ===
I(<0.478.0>:ejabberd_listener:166) : Reusing listening port for 5222

=INFO REPORT==== 15-Oct-2012::12:26:13 ===
I(<0.479.0>:ejabberd_listener:166) : Reusing listening port for 5269

=INFO REPORT==== 15-Oct-2012::12:26:13 ===
I(<0.480.0>:ejabberd_listener:166) : Reusing listening port for 5280

=INFO REPORT==== 15-Oct-2012::12:26:13 ===
I(<0.40.0>:ejabberd_app:72) : ejabberd 2.1.10 is started in the node ejabberd@ns1

Sau đó, máy chủ dường như đang chạy. Tôi nhận được một dấu nhắc đăng nhập khi tôi truy cập http://mydomain.com:5280/admin/. Tất nhiên tôi không thể đăng nhập trừ khi tôi tạo một tài khoản.

Tại thời điểm này, đầu ra của netstat -atnp | grep 5222netstat -atnp | grep 5280như sau:

tcp        0      0 0.0.0.0:5222            0.0.0.0:*               LISTEN      19347/beam      
tcp        0      0 0.0.0.0:5280            0.0.0.0:*               LISTEN      19347/beam      

xuất tinh

Ngay cả khi nó xuất hiện, ejabberd đang chạy, cố gắng làm bất cứ điều gì với ejabberdctl đều thất bại. Ví dụ: cố gắng đăng ký người dùng:

root@ns1:~# ejabberdctl register myusername mydomain.com mypassword
Failed RPC connection to the node ejabberd@ns1: nodedown

Tôi không biết mình đang làm gì sai. Điều này xảy ra trên hai máy chủ khác nhau mà tôi có cài đặt phần mềm giống hệt nhau (thực sự không có gì nhiều). Xin vui lòng giúp đỡ. Cảm ơn.


Chỉ là một phỏng đoán, bạn đã thử hoặc có được một gói nhị phân / gói từ trang web của nhà phát triển hoặc xây dựng từ nguồn chưa? Ngoài ra, bạn đã thử nghiệm cài đặt nó trong VM (hoặc cài đặt thực tế) 12.10 chưa?
bốn giờ

Câu trả lời:


7

Tôi đã gặp vấn đề này một lần khi daemon không thể xác định địa chỉ IP của tên máy chủ mà tôi đã đặt trong tệp cấu hình ejabber. Giải pháp của tôi là chỉnh sửa tập tin / etc / hosts và đảm bảo rằng có một mục nhập tên máy chủ cho địa chỉ IP công cộng của tôi và tên miền mà tôi muốn ejabber phản hồi.

0.0.0.0 hostname.domain.com hostname
1.1.1.1 ns1.yahoo.com ns1

Vâng, bạn có được hình ảnh. Mong rằng sẽ giúp.


Tôi đã kiểm tra và tôi đã có một mục trong tệp / etc / hosts của mình với tên miền và IP công khai. Tuy nhiên, tôi nghĩ rằng bạn đang đi đúng hướng với điều này. Tôi chỉ nhận thấy thông báo lỗi "Kết nối RPC không thành công với nút ejabberd @ ns1". ns1 là tên của máy nhưng nó không phải là tên miền. Điều đó có nên hiển thị tên miền ở đó?
Andrew Oblley

1
vâng chắc chắn .. Ít nhất bạn cũng nên thêm ns1 vào tệp máy chủ. như 0.0.0.0 <FQDN> <tên máy chủ>
Frank Barcenas

Holy ... Tôi thậm chí không ... Thêm ns1 vào tập tin / etc / hosts của tôi đã hoạt động. Tốt đau buồn.
Andrew Oblley

1
Vui mừng khi biết bạn đã chăm sóc nó. Chúc may mắn và có thể lực lượng với bạn. :-)
Frank Barcenas
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.