2013-08-28 47 views
15

Hi Tôi đang gặp lỗi khi thiết lập dự án Rails của tôi trên máy chủ của tôi vì apache tiếp tục phàn nànRails + Dalli đá quý memcache: DalliError: Không có máy chủ có sẵn

DalliError: No server available.

Tôi đã cài đặt memcached trên máy ubuntu của mình, nhưng nó vẫn không hoạt động. Dự án đường ray của tôi cũng có config.cache_store = :dalli_store, 'localhost:11211', { :namespace => "production" } trong môi trường/production.rb. Làm thế nào tôi sẽ gỡ lỗi này?

log của tôi cho thấy trước mỗi yêu cầu:

localhost:11211 failed (count: 6) 
DalliError: No server available 

telnet để 11211:

[email protected]:/usr/local/www/production/current/log# telnet localhost 11211 
    Trying 127.0.1.1... 
    telnet: Unable to connect to remote host: Connection refused 
+0

bạn đang chạy gì để bắt đầu memcached? – PinnyM

Trả lời

23

tôi đã cùng một vấn đề. Trước tiên tôi đã cài đặt memcached như một viên ngọc gem install memcached và đã nhận lỗi "DalliError: Không có máy chủ có sẵn"

Sau đó, tôi đã cài đặt memcached bằng cách làm sudo apt-get install memcached. Nó hoạt động tốt ngay bây giờ.

3

Đó là vì ai đó đã thay đổi tệp /etc/hosts thành điểm 127.0.1.1 thành máy chủ cục bộ thay vì 127.0.0.1. Sau khi thay đổi điều đó, memcached đã hoạt động.

0

Câu trả lời được chấp nhận có thể sẽ giải quyết vấn đề cho 95% người đang nhìn thấy lỗi này, nhưng trong trường hợp của tôi, tôi thấy vấn đề là đến nay cơ bản hơn:

Từ máy chủ, tôi đã không thể ping 127.0.0.1 . Điều này có nghĩa là Dalli không thể kết nối với máy chủ memcache, theo mặc định chạy trên 127.0.0.1:11211.

Có một số điều mà có thể gây ra sự cố này, nhưng rất có thể chỉ đơn giản là giao diện mạng bị thiếu. Nếu bạn chạy ifconfig, bạn nên thấy một cái gì đó như thế này trong đầu ra:

lo  Link encap:Local Loopback 
      inet addr:127.0.0.1 Mask:255.0.0.0 
      inet6 addr: ::1/128 Scope:Host 
      UP LOOPBACK RUNNING MTU:65536 Metric:1 
      RX packets:15686 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:15686 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1 
      RX bytes:23730314 (23.7 MB) TX bytes:23730314 (23.7 MB) 

Nếu đây là mất tích, đảm bảo tập tin /etc/network/interfaces của bạn có chứa các định nghĩa giao diện địa phương sau:

auto lo 
iface lo inet loopback 

Và sau đó khởi động lại dịch vụ mạng:

sudo /etc/init.d/networking restart 
6

Nếu bạn là người dùng Homebrew:

brew install memcached 

Kiểm tra xem dịch vụ đang chạy:

brew services list 

Nếu không, hãy bắt đầu nó:

brew services start memcached 
Các vấn đề liên quan