Привожу пример из серии «от и до» как запустить рабочею версию rubyonrails на win-локальном сервере так как сам потратил на поиск подобных решений достаточно времени думаю кому нибудь должно пригодиться.
После прочтения начала цикла стаей "калями на стакан" все таки захотелось приобщится к данному языку.
Instant Rails — «несколько устаревшая» сборка + не самый лучший интерфейс.
RubyStack — очень не плохое и выполненное на профессиональном уровне решение, при этом данная компания изготавливает подобные «комплекты» еще для массы языков, а так же CMS, но к сожлению в текущей сборке используется версия mysql котрорая вызывает ошибки при обращениях из ROR, что создает некоторый дискомфорт при работе (например: при работе с scaffold).
Вместо готовых решений выбор пал на самостоятельную сборку из комплектующих.
Централизованная установка в единую директорию трех комплектующих,
например d:/local/
Соответственно:
Устанавливаем по порядку и не забываем открывает порты для брандмауэра (80, 3306 по-умолчанию).
раскомменчиваем (уберем в начале строки #) LoadModule rewrite_module modules/mod_rewrite.so
так же поступаем и с LoadModule env_module modules/mod_env.so
переходим в самый конец файла и дописываем следующие строки (описание ниже):
VirtualHost rails (как собственно и ниже) — здесь rails название виртуального хоста к которому вы будете обращаться в адресной строке браузера, например: rails
SetEnv RAILS_ENV — выбираем текущее окружение development (на выбор можно ввести development/test/production, подробности о «окружении» можно прочитать в документации)
prj_name — название вашего rails приложение которое вы создадите чуть позже
Сохраните файл и перезагрузите apache.
Mysql
На последнем этапе установки вам будет предложено сделать предварительную настройку mysql-сервера, рекмендую выбрать модель «server machine»
Как клиент для 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 в котором прописываем:
Всё.
Открывем браузер и в нашем случае переходим rails
Enjoy!
UPD
Совсем забыл напомнить что для того чтобы работал alias на сервер нужно создать запись в файле C:\Windows\System32\drivers\etc\hosts
127.0.0.1 rails
или аналогичную исходя из ваших настроек и пожеланий… )
После прочтения начала цикла стаей "калями на стакан" все таки захотелось приобщится к данному языку.
Прелюдия
Есть несколько «официальных», готовых решений: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»
- server machine
- multifunctional database
- ...
- online transaction processing
- ...
- best support for multilingualism (все таки utf сейчас наше всё)
- не забываем поставить галочку на include bin directory in windows PATH
- прописываем пароль для 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
или аналогичную исходя из ваших настроек и пожеланий… )