Переезд с WordPress на Jekyll
Когда я завел блог я был уверен, что wordpress — это простая и легкая в освоении CMS. В целом так и есть. Да и большинство хостингов позволяют установить эту CMS в один клик. Первоначально я использовал как раз такой хостинг на domain.com. Позднее я перенес свой блог на облачный сервер selectel.ru, где я без особого труда самостоятельно установил WordPress. Так же в плюс этой CMS Я знаю 3 способа создать сайт на WordPress бесплатно.
- Можно сделать это официально на wordpress.com, но там есть ряд ограничений (например, нельзя устанавливать свои темы и плагины)
- Можно использовать OpenShift от RedHat, где в один клик можно создать сайт на WordPress без ограничений. По характеристикам сервера — этот вариант самый производительный
- Воспользоваться популярным хостингом для веб-приложений heroku, для которого есть свой форк wordpress с postgreSQL.
У каждого из этих способов есть свои недостатки. По этому я продолжал использовать сервер у selectel, который давал мне еще и широкое поле для экспериментов.
Достаточно быстро мной овладела мысль об избыточности WordPress для блога — большая БД, куча запросов, плагинов, кода. Мой блог работал не особенно быстро. По крайней мере не так быстро, как я бы хотел. Я периодически натыкался на различные интересные решения, например на markdown-cms. В принципе, это такой же генератор статичных сайтов, как и Jekyll только менее удобный и на Perl. В то время подход основанный на генерации статичных страниц я не оценил. О Jekyll я слышал достаточно давно в контексте GitHub Pages. Как-то раз и я решил попробовать сделать свой сайт на github с помощью jekyll. Внезапно jekyll оказался очень простым и понятным. До работы с ним у меня не было опыта в ruby. Теперь же у меня есть большое желание углубиться в этот язык. Особенно мне понравился rakefile. Я много времени провел пытаясь понять как пользоваться makefile, но rakefile я освоил за 5 минут, и практически сразу начал использовать его в своих проектах. Для Jekyll в будущих проектах даже найдется место.
Вернемся к переезду. Сеттинг:
- source: it-prm.com, хостится на selectel под nginx, php, wordpress
- tagget: anton-shuvalov.info, plain-html, jekyll-bootstrap, хостится на selectel
Свои статьи я храню в markdown, по этому их перенос на Jekyll занял минут 20. Написал rakefile с двумя тасками:
task :default => :run
# Push
desc 'Push site to server'
task :push do
print "Push _site to server..\n"
sh "rsync -az --delete _site/ eva:/home/web/www/anton-shuvalov.info"
print "Done...\n"
end
# Run
desc 'Run server'
task :run do
print "Starting jekyll...\n"
sh "jekyll --server"
end
В задаче push
eva
— это имя сервера, оно забито в конфиге ssh ~/.ssh/config
:
Host eva
HostName 88.88.88.88 # ip сервера
User shuvalov
Port 22
Для деплоя на сервер я набрал в консоли rake push
и через секунд 10 сайт открылся по адресу anton-shuvalov.info. Осталось настроить 301 редирект с it-prm.com на anton-shuvalov.info. В конфиге сайта в /etc/nginx/sites-available/it-prm.com
это выглядит так:
server {
...
# Redirects to anton-shuvalov.info
if ( $request_uri ~* "/?p=803" ) {
rewrite ^ http://anton-shuvalov.info/2012/12/05/backbone-screencasts/? permanent;
}
if ( $request_uri ~* "/?p=772" ) {
rewrite ^ http://anton-shuvalov.info/2012/11/18/Textmate2-line-hate/? permanent;
}
if ( $request_uri ~* "/?p=753" ) {
rewrite ^ http://anton-shuvalov.info/2012/11/09/.google-analitycs-avtime? permanent;
}
...
rewrite ^ http://anton-shuvalov.info? permanent;
...
}
Ну вот и все. Перезагрузил nginx sudo nginx -s reload
, все заработало. Проверил редиректы руками — все правильно. Переезд закончен.
Похожие статьи:
-
Jekyll Bootstrap и Google Analytics
Как заставить работать аналитику в jekyll-bootstrap
-
Jekyll REXML could not parse this XML/HTML
Что делать с ошибкой REXML could not parse this XML/HTML в Jekyll?
-
Музыка для работы #5
Немного мурашек по спине…
-
Белый шум
Баттхёрта нить начинается здесь
-
CommonJS для браузера
Видео моего доклада на MoscowJS
-
Музыка для работы #4
Трогательный chillwave, dream pop & glich
-
Instapaper и Pocket
К чёртовой матери ссылки!
-
Byobu
Текстовый тайловый менеджер для Linux и OS X