четверг, 22 ноября 2007 г.

Виражи на поворотах, или как я делал первый раз deploy RoR проекта.

Хостинг куплен, имя, пароль и адрес сервера получены. Захожу на сайт и попадаю в CPanle. До этого момента я сильно не задумывался, как происходит управление своим хостингом. В 2000 году я, "как все", сделал простенькую HomePage и разместил ее копированием файлов на сервер. Тогда на меня этот процесс произвел впечатление: скопировал файлы, и твоя информация доступна в интеренете любому желающему. CPanel тоже произвел на меня впечатление, и первым делом я принялся сначала осваивать эту замечательную штуку.
Выбранный хостинг предоставлял работу RoR через FastCGI, я немного скептически был настроен по поводу FastCGI, но надеялся, что достаточно быстро удастся разместить приложение на сервере. Сначала решил отработать сам сценарий развертывания на простом учебном приложении. Если проблем с созданием базы данных у меня не возникло, то с развертыванием они начались. Чего больше боялся, то и произошло: установленный пример на RoR отказался запускаться. Перепробовал несколько "рецептов" настройки RoR и FastCGI, но ничего не помогло, за помощью решил обратился к администраторам. С ними началась активная переписка, в итоге они обновили Ruby, RoR, все пакеты, обновили модули FastCGI для Apache. Приложение заменил на простейшее "Hello Word". В интернете перечитал много информации и инструкций по настройке RoR через FastCGI, давал ссылки администраторам. Но нам так и не удалось заставить работать RoR. В определенный момент я хотел поставить у себя на компьютере linux, apache и самому начать экспериментировать с настройками, но не успел. Хостер предложил создать мне тестовый аккаунт на другом сервере и там продолжать настраивать RoR. Новая попытка заставить работать RoR через FastCGI провалилась.Я предложил отказаться от дальнейших попыток настройки FastCGI и попробовать сделать кластер из Mongrel серверов, аргументировал это тем, что на данный момент это самый простой и работоспособный способ развертывания. Хостер согласился с таким поворотом событий и приступил к настройке Mongrel в связке с Apache и CPanel. После некоторых небольших технических трудностей наконец-то удалось заставить работать RoR через Mongrel. Я разместил на сервере свое приложение с целью тестирования и принялся за дело. После всех манипуляций мой сайт работал только на определенном порту. Стал настраивать перенаправление запросов через Rewrite Url в CPanel - не помогло, обратился к админам, они что -то подкрутили, и все перестало работать вообще . Как потом выяснилось, они сделали перенаправление с тестового аккаунта на основной. Чтобы самому не путаться и не путать админов, попросил тестовый аккаунт сделать основным, а второй удалить. Приложение снова заработало, но проблема осталось: оно по-прежнему "сидело" на определенном порту. Обратился к администраторам, они сделали перенаправление, и все заработало, как надо, но ненадолго, через какой-то промежуток времени заметил, что все ссылки ведут на локальный адрес 127.0.0.1:1205. После того как исправили эту ошибку, появилась другая: ссылки стали указывать в качестве хоста не имя домена, а сетевое имя сервера. Как потом выяснилось, при создании тестового аккаунта было указано другое главное имя домена, пришлось удалять аккаунт и создавать его снова. Новый аккаунт удалось настроить достаточно быстро, при этом опять повторялась проблема с локальными адресами в ссылках, но ее тут же решили. Нерешенным остался один момент: к сайту можно обратиться, указывая протокол "www", но при заполнении и отправке любой формы на сервер теряется название протокола, остается только "http://".
С момента моего первого входа в CPanel и до полной настройки работоспособности сайта прошло без малого полтора месяца.

Вывод.
Эта история еще раз доказывает, что "знание - сила" и порой опыт достается нам не легко.

1 комментарий:

Волошин Руслан комментирует...

Елси будут вопросы по ror можшеь задавать у нас на форуме http://rubyclub.com.ua/