суббота, 1 ноября 2014 г.

wordpress, nginx и ЧПУ

В новом проекте на wordpress 4, после установки, как всегда настраиваю ЧПУ
Делаем так:
Переходим -> Параметры - Постоянные ссылки, указать произвольные ссылки - /%category%/%postname%.html
Если не нужно отображение категорий (хотя так удобнее)
/%postname%.html
и да, html полезная штука)
Ставим плагин Cyr-To-Lat, активируем, и все работает. По крайней мере, должно...

В общем, все как обычно, но не тут то было, при переходе на дефолтную запись - Привет, мир.
Видим ошибку - 404!
Я думал, проблема в плагине, попробовал Cyr-To-Lat Enhanced, тот же результат.
Стал думать, оказалось, все просто. На сервере - Nginx, а не обычный Apache
Смотрим и правим, если у вас Apache, правим htaccess:

RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]

Если же, стоит Nginx, как в моем случае добавляем в настройки сервера
 ngx_http_rewrite_module

location / { try_files $uri @wordpress; } location @wordpress { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root/index.php; include fastcgi_params; }

Вот такие делы) Удачи.

воскресенье, 28 сентября 2014 г.

Vagrant, Windows 7-8 x64 и ошибка незакрывающихся сессий

На днях, (причем на выходных, закон Мерфи воочию), при запуске виртуальной машины с новым проектом, через Vagrant, получил зависание оной. Что выразилось в остановке на пункте: Booting VM ... После получасового ожидания за просмотром клипов Lindsey Stirling, я понял, что ожидать нечего. Закрыл сессию в консоли Ctrl+C, и узрел ошибку Error, "что_то_там" блокирует процесс с ID=x00300 и т.п.

После гугления и раздумий, переустановок vagranta, virtualbox, понял, что проблема в сессиях, которые некорректно завершаются даже с помощью команды vagrant halt.

Решение
Способ простой (upd 29.09.14) : в консоли запускаете
 vagrant halt
vagrant reload

Способ сложный:
Хорошо, сказал я, в Диспетчере задач, посмотрел процессы VirtualBox и завершил, VBoxSVC.exe а также попытался завершить остальные процессы работающие с VirtualBox.
Затем снова открыл консоль, перешел в директорию с проектом, и внимание: сперва запустил команду vagrant halt, дождался завершения сеанса, а затем vagrant up, и все работает)

Проблема возникла с Vagrant 1.6.5, и VirtualBox-4.3.16-95972-Win

Сразу после установки наблюдаю, такое предупреждение, возможно это причина моей проблемы. Пока ожидаю обновления Vagranta.


Upd: 23/05/15 - Windows 8,
после установки Vagrant + VirtualBox, и запуска, все таки не забываем запустить
vagrant up
vagrant provision
---

суббота, 13 сентября 2014 г.

vagrant, ruby on rails, и решение ошибки с кодировкой latin1

В один из вечеров, для саморазвития, следуя заветам Джона Резига (пишите код каждый день), решил написать новый проект, но не на PHP, а на Ruby. Давненько присматривался, но все откладывал, а сейчас появилось чуток времени. Дай думаю, принесу пользу людям, да и себе.

Порыскав понял, что писать на Ruby под Windows, не стоит. Linux ставить на ноут, пока нет возможности, решил запустить на виртуалке, используя виртуальную машину VirtualBox.
Для "еще_незнающих", есть полезная утилита vagrant (vagrantup.com) - можно запускать virtualbox и сохранять образы. То есть, установил virtualbox, vagrant -> запустил vagrant , скачал box, (образ), настроил один раз. А затем клонировал, и уже с клоном "играешься" как хочешь. Если клон-образа сломался, не беда, запускаем базовый образ, клонируем и через несколько минут - у нас уже полностью настроенная система. Profit!

Тут хороший мануал, по которому у меня все заработало почти сразу. Совет скачивайте и устанавливайте последние версии virtualbox, vagrant. Различные версии между собой несовместимы.

А теперь, собственно об ошибке, которая долго гуглится, а на русском вообще не нашел. Внимайте же)

после шага:

bundlerake db:create db:migrate db:seed
Ошибка:

PG::Error: ERROR:  encoding "UTF8" does not match locale "en_US"
DETAIL:  The chosen LC_CTYPE setting requires encoding "LATIN1".
: CREATE DATABASE "stuff_test" ENCODING = 'unicode'

Решение (взято отсюда):


1
2
sudo su postgres
psql
1
2
3
4
5
update pg_database set datistemplate=false where datname='template1';
drop database Template1;
create database template1 with owner=postgres encoding='UTF-8'
  lc_collate='en_US.utf8' lc_ctype='en_US.utf8' template template0;
update pg_database set datistemplate=true where datname='template1';


Don't forget!:

Выйти из postresql
\q

завершить сеанс под sudo
exit


Поздравляю, теперь все работает.

суббота, 22 марта 2014 г.

Bitbucket - удобный git для mercurial

Пока не забыл. решил написать о сервисе, о котором я слышал уже давно, но не использовал до сей поры.
Bitbucket.org - это сервис, для хранения кода и совместной работы с ним. аналогично github. Но в отличие от них поддерживает возможность создания приватных директорий, бесплатно! Совместная работа поддерживается до 5 пользователей, можно увеличить до 8. А если нужно больше. уже за деньги.

Так как я пользуюсь, (и очень рад, пользуюсь) mercurial. И теперь храню код на Битбакете, и больше не боюсь, что мой код затерут вирусы, ноут сломается, или жесткий диск скинет ласты.

О работе с Битбакетом (благо есть мануалы, да и так интуитивно понятно), писать не буду, отвечу в комментах, если интересно.