Как стать автором
Обновить

Win-коктейль для ruby

Время на прочтение3 мин
Количество просмотров589
Привожу пример из серии «от и до» как запустить рабочею версию rubyonrails на win-локальном сервере так как сам потратил на поиск подобных решений достаточно времени думаю кому нибудь должно пригодиться.

После прочтения начала цикла стаей "калями на стакан" все таки захотелось приобщится к данному языку.


Прелюдия

Есть несколько «официальных», готовых решений:
Instant Rails — «несколько устаревшая» сборка + не самый лучший интерфейс.
RubyStack — очень не плохое и выполненное на профессиональном уровне решение, при этом данная компания изготавливает подобные «комплекты» еще для массы языков, а так же CMS, но к сожлению в текущей сборке используется версия mysql котрорая вызывает ошибки при обращениях из ROR, что создает некоторый дискомфорт при работе (например: при работе с scaffold).

Вместо готовых решений выбор пал на самостоятельную сборку из комплектующих.

Коктейль


Ингредиенты

Рецепт
(подразумевается что мы собираем локальный сервер для машины разработчика а не рабочею конфигурацию)

Централизованная установка в единую директорию трех комплектующих,
например d:/local/
Соответственно:
  • d:/local/apache
  • d:/local/mysql
  • d:/local/ruby


Устанавливаем по порядку и не забываем открывает порты для брандмауэра (80, 3306 по-умолчанию).

Смешиваем
Apache Открываем файл настроек apache/conf/httpd.conf
раскомменчиваем (уберем в начале строки #) LoadModule rewrite_module modules/mod_rewrite.so
так же поступаем и с LoadModule env_module modules/mod_env.so
переходим в самый конец файла и дописываем следующие строки (описание ниже):
<VirtualHost rails>
SetEnv RAILS_ENV development
ServerName rails
DocumentRoot "d:/local/apache/htdocs/prj_name/public"
<Directory "d:/local/apache/htdocs/prj_name/public/">
AllowOverride all
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

VirtualHost rails (как собственно и ниже) — здесь rails название виртуального хоста к которому вы будете обращаться в адресной строке браузера, например: rails
SetEnv RAILS_ENV — выбираем текущее окружение development (на выбор можно ввести development/test/production, подробности о «окружении» можно прочитать в документации)
prj_name — название вашего rails приложение которое вы создадите чуть позже

Сохраните файл и перезагрузите apache.

Mysql
На последнем этапе установки вам будет предложено сделать предварительную настройку mysql-сервера, рекмендую выбрать модель «server machine»
  1. server machine
  2. multifunctional database
  3. ...
  4. online transaction processing
  5. ...
  6. best support for multilingualism (все таки utf сейчас наше всё)
  7. не забываем поставить галочку на include bin directory in windows PATH
  8. прописываем пароль для root пользователя


Как клиент для mysql был выбран DreamCoder for MySQL (вот просто так, да еще и free версия есть) но можно и обойтись и консолью

На данном этапе у вас должно быть установлено и запущено три приложения apache, mysql и ruby.
Заходим в консоль(пуск>выполнить>cmd)
вводим команды на подключение:

gem install rails --include-dependencies
ждемс… и надеемся на отсутствие ошибок ;)

ruby mysql
ждемс и не обращаем внимание на ошибку с doc
Установка должна была пройти без осложнений и мы приступаем к заключительному этапу.

Наливаем
в консоле:
rails -d mysql d:/local/apache/htdocs/prj_name
это в нашем случае, а вы должны ввести полный путь к директории вашего проекта (директория должна размещаться в корне сервера, как показано выше), данной командой мы коме создания проекта указываем что будем использовать базу данных mysql так как по-умолчанию используется sqlite.

После завершения выполнения данной команды переходим в директорию нашего проекта и находим config/database.yml где в строкИ password вводим наш пароль для указанного там же пользователя (root по-умолчанию, но можно при желании сменить).
Далее переходим в директорию нашего проекта и находим там /public/ в которой создаем файл .htaccess в котором прописываем:
AddHandler cgi-script .cgi
Options +FollowSymLinks +ExecCGI
RewriteEngine On
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.cgi [QSA,L]


Всё.
Открывем браузер и в нашем случае переходим rails
Enjoy!

UPD
Совсем забыл напомнить что для того чтобы работал alias на сервер нужно создать запись в файле C:\Windows\System32\drivers\etc\hosts
127.0.0.1 rails
или аналогичную исходя из ваших настроек и пожеланий… )
Теги:
Хабы:
Всего голосов 5: ↑3 и ↓2+1
Комментарии16

Публикации

Истории

Ближайшие события

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань