Я также нашел эти инструкции. Они, как и большинство других документов для рельсов на Dreamhost, несколько ... устарели.
Я, наконец, получил свое приложение онлайн, и я опубликовал все следующие, чтобы кодировать, но я действительно хочу поделиться тем, что я сделал, так как потребовалось несколько недель, чтобы понять все.
Это полный список того, что я сделал для того, чтобы Ruby 2.2.1p85 и Rails 4.2.4 работали на общем сервере Dreamhost. Это делается, начиная с совершенно нового размещенного домена с нуля. Это НЕ используется с VPS с помощью Passenger.
Сначала создайте веб-хостинг dreamhost, добавив нового пользователя и получив доступ к этой оболочке пользователя. Вам также необходимо снять флажок запрета FTP (пользователь должен иметь возможность использовать FTP).
Веб-каталог будет /home/username/<domain-name>/public
режим PHP (в настоящее время) PHP 5.6 FastCGI (по умолчанию)
Check Extra Web Security
Оставить Passenger UNCHECKED
Используя инструкции, которые я нашел здесь: http://adamish.com/blog/archives/775 я сделал следующее:
Перейти на сайт http://cache.ruby-lang.org/pub/ruby/ и найти версию рубина, которую вы хотите использовать с расширением *.tar.gz
и загрузить его в свою систему. Используйте FTP (например, filezilla) для загрузки этого файла на ваш сервер в новой папке с именем build.
Войдите в свою учетную запись оболочки, перейдя на терминал и набрав ssh <username>@<domain-name>
Это приведет к вашему паролю. Введите его и перейдите в свою папку сборки.
Тип: tar xzf <your-ruby-filename.tar.gz>
Тип: cd <your-uncompressed-ruby-folder>
Тип: ./configure --prefix /home/<username>/ruby
Тип: make install
Когда это будет завершена (и это занимает некоторое время) перейти в свой домашний каталог, введя cd ~
и открытие вашего .bash_profile (я использовал vim, nano тоже должен работать).
Добавьте следующие .bash_profile:
export GEM_HOME=”$HOME/.gems”
export GEM_PATH=”$GEM_HOME”
export PATH=~/ruby/bin:$PATH
Теперь вы можете установить рельсы, набрав: gem install rails -v <Rails-version-number>
На своей персональной машине, я рекомендую очистить кэш перед загрузкой. Вам не обязательно, но это сэкономит некоторое время. Вы можете сделать это, набрав rake tmp:cache:clear
Теперь вы можете загрузить приложение рельсов либо FTP или мерзавцем, но убедитесь, что вы находитесь в каталоге /home/<username>/<domain-name>
Когда все файлы будут загружены, сначала получить доступ к вашей Gemfile
через нано или vim.
Раскомментировать номер gem 'therubyracer'
и добавить gem 'fcgi'
. Сохраните его и введите bundle install
.
Перейдите в папку <domain-name>/public
и создать два новых файла, .htaccess
и dispatch.fcgi
файл .htaccess
должен выглядеть следующим образом:
<IfModule mod_fastcgi.c>
AddHandler fastcgi-script .fcgi
</IfModule>
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
</IfModule>
Options +FollowSymLinks +ExecCGI
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi/$1 [QSA,L]
ErrorDocument 500 "Rails application failed to start properly."
и ваш dispatch.fcgi
файл, как это:
#!/home/<username>/ruby/bin/ruby
ENV['RAILS_ENV'] = 'production'
ENV['HOME'] ||= `echo ~`.strip
ENV['GEM_HOME'] = File.expand_path('~/.gems')
ENV['GEM_PATH'] = File.expand_path('~/.gems')
require 'fcgi'
require File.join(File.dirname(\__FILE\__), '../config/environment.rb')
class Rack::PathInfoRewriter
def initialize(app)
@app = app
end
def call(env)
env.delete('SCRIPT_NAME')
parts = env['REQUEST_URI'].split('?')
env['PATH_INFO'] = parts[0]
env['QUERY_STRING'] = parts[1].to_s
@app.call(env)
end
end
Rack::Handler::FastCGI.run Rack::PathInfoRewriter.new(<application-name>::Application)
Примечание: имя приложения может быть отличается от вашего имени домена.
Это то, что сработало для меня. Я все еще новичок в Rails и не использовал никакой базы данных.Я призываю всех, кто обеспокоен этой настройкой, комментировать или редактировать этот пост, поскольку нет хорошей текущей документации для использования современного Ruby on Rails с общим сервером Dreamhost.
UPDATE
Хотя этот метод работает и получает все, что говорить, как только я создал устойчивое приложение было убитым их procwatch. Их поддержка сказала мне, что я использую слишком много ОЗУ, но не сказал бы, насколько я использую или что их предел. С тех пор я переключился на услуги хостинга и не испытывал никаких проблем.
Вы используете VPN? Я только смог запустить его с помощью VPN, а не для общего хостинга. –
Я пытаюсь заставить его работать на общем хостинге. Просто обновил вопрос, чтобы отразить это, и ответ, чтобы отразить последний прогресс. Вход будет приветствоваться. @JasonMorelandDigitalrecline –
Невозможно обновить его на общем хостинге, так как вы не можете изменить окружающие вещи. Единственный способ - VPN мечты. Тогда это, в основном, ваша коробка, и у вас есть корневой доступ к среде изменений и установка собственных программных продуктов. Общий хостинг не позволяет изменять необходимые изменения, так как может нарушить другие настройки. –