SORU
20 NİSAN 2014, Pazar


Hata çözmek için nasıl " 'üretim' ortam" için `secret_key_base` Eksik; Heroku (Raylar 4.1)

Rails uygulaması (raylar 4.1) sıfırdan yarattım ve çözmek mümkün değil ben garip bir sorun ile karşı karşıyayım.

Heroku bir hata 500 olsun benim app dağıtmak için çalışırım her zaman:

'Üretim' çevre, config/secrets.yml bu değeri ayarlayın . eksik secret_key_base

Gizli.yml dosyasına aşağıdaki yapılandırma içerir:

secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

Heroku üzerinde bir ortam değişkeni "" "gizli" komutu. komisyon sonucu ile SECRET_KEY_BASE yaptıysanız ""Değişken görebiliyorum doğru adı ve değeri ile heroku ben başlatmak

Neden hala bu hatayı alıyorum?

Çok teşekkürler

CEVAP
3 EKİM 2014, Cuma


Aynı sorun bende de vardı ve bir ortamda üretim sunucusuna giriş yaptım ve adımları mini bir rehber yapılandırmak için her zaman yüklenecek değişken oluşturarak çözdüm:

https://gist.github.com/pablosalgadom/4d75f30517edc6230a67

Unicorn v4 ile Raylar 4.1 kullanıyordum.8.Benim app dağıtmak için çalıştı 2, düzgün ve tek boynuzlu at olarak başlamadı.günlük bu hata iletisini buldum dosya:

< . p ^"uygulama hatası: secret_key_base Eksik 'üretim' çevre, config/secrets.yml (RuntimeError) bu değer"

Biraz araştırma yaptıktan sonra Raylar 4.1 eğer sırları okursanız çok secret_key, yönetmek için yolunu değiştirdi öğrendim.yml dosya [exampleRailsProject]/sırlar/config yer almaktadır.yml böyle bir şey göreceksiniz:

# Do not keep production secrets in the repository,
# instead read values from the environment.
production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

Bu demek oluyor ki raylar önerir kullanmak için bir ortam değişkeni için secret_key_base üretiminizi server, bu hata çözmek gerekir izleyin bu adımları oluşturmak için bir ortam değişkeni için Linux (benim durumumda Ubuntu) üretim sunucusu:

1.- Üretim sunucunuzun terminal içinde yürütülecek bir sonraki komutu:

$ RAILS_ENV=production rake secret

Bu harfler ve sayılar ile büyük bir dize döndürür (GENERATED_CODE olarak kod adlandırabiliriz) kopyalayın.

2.1 - bu dosya ve düzenle sunucunuza root olarak Giriş: /profil . $ vi /etc

Dosyanın en altına gidin ("SHİFT" sermaye için G VI G)

Ortamınız GENERATED_CODE ile değişken Write (U "ı" VI yazmaya anahtar), dosyanın sonunda yeni bir satır için emin olun:

export SECRET_KEY_BASE=GENERATED_CODE

Değişiklikleri kaydedin ve dosyayı kapatın (iteriz "" tuşuna ve sonra "x" ve "GİRİN" Kaydet ve VI çıkış) için önemli . yazma ESC

Ama eğer normal kullanıcı olarak oturum açarsanız, lets 2.2 bu özü için example_user Ara, bu diğer dosyalardan birini bulmak gerekir:

$ vi ~/.bash_profile
$ vi ~/.bash_login
$ vi ~/.profile

Bu dosyalar Eğer ilk dosya varsa, sonra diğerlerini yazmaya gerek kalmazdı demek ki önem sırası. Eğer öyleyse senin dizinde bu 2 dosyaları "~/.bulduysanız"ve "~/.bash_profile profil" sadece ilkinde yazmak zorunda kalacak "~/."çünkü Linux bu ve diğer yoksayılacak okuyacak. bash_profile

Daha sonra dosyanın en altına gidin ("SHİFT" sermaye için G VI G)

Ve bizim GENERATED_CODE ile çevre değişkeni yazacağız (U "ı" VI yazmaya anahtar), dosyanın sonunda yeni bir satır için emin olun:

export SECRET_KEY_BASE=GENERATED_CODE

Kodu yazılı olan, değişiklikleri kaydedin ve dosyayı kapatın (iteriz "" tuşuna ve sonra "x" ve "GİRİN" Kaydet ve VI çıkış) için önemli . yazma ESC

3.- Çevre değişkeni düzgün bu komut ile Linux ayarlandığından emin olun

$ printenv | grep SECRET_KEY_BASE

ya da:

$ echo $SECRET_KEY_BASE

Bu komutu çalıştırdığınızda, eğer her şey yolunda giderse, senden önce gelen GENERATED_CODE gösterecektir. Tüm yapılandırma bitti sonunda Raylar ile tek boynuzlu at veya diğer uygulama sorunları olmadan dağıtmak gerekir.

Kabuk terminal kapatın ve yeniden üretim sunucusuna giriş yaptığınızda bu ortam değişkeni ayarlayın ve hazır kullanmak zorunda olacak.

Ve bu, bu! Bu mini kılavuz, bu hata çözmek için yardımcı olur umarım.

Yasal Uyarı: eğer yanlış bir şey ya da bunu düzeltmek için mutlu olacak herhangi bir hata bulursanız, bu yüzden Linux veya Raylar bir guru değilim!

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Lin Steven

    Lin Steven

    17 EKİM 2006
  • Mark Halberstadt

    Mark Halbers

    19 ŞUBAT 2010
  • Metheud

    Metheud

    9 EYLÜL 2006