# fetch http://www.sphinxsearch.com/downloads/sphinx-0.9.8.1.tar.gz # tar -xzf sphinx-0.9.8.1.tar.gz # cd sphinx-0.9.8.1 # chmod -R 777 * # cd ./api/libsphinxclient/ # ./buildconf.sh # ./configure && make install
Теперь установим PECL-расширение:
# cd sphinx-0.9.8.1/api/libsphinxclient/ # pecl install sphinx
Когда спросит про «libsphinxclient», просто согласитесь с умолчанием, так как вы в том же каталоге где собирали «libsphinxclient», то он сам подцепится.
После установки, надо прописать модуль в «php.ini» или в «php/extensions.ini»:
В продолжение темы о Sphinx, расскажу о , это движок для MySQL, который будет работать со Sphinx индексами непосредственно из MySQL.
Что такое SphinxSE?
Движок SphinxSE не хранит данные сам, а является звеном, которое позволяет серверу MySQL общаться с «searchd», запускать поисковые запросы и получать результаты поиска. Вся индексация и поиск происходит за пределами MySQL.
SphinxSE может быть собран только под MySQL 5.x используя архитектуру плагинов, которая не поддерживается в MySQL 4.x.
SphinxSE позволяет:
Легко портировать MySQL FTS (full-text search) приложения в Sphinx;
Использовать Sphinx, где невозможно использовать API, например если нет API для какого-то языка;
Оптимизировать добавленные Sphinx'ом результаты обработки на стороне MySQL, например: JOIN'ить результаты поиска с другими таблицами MySQL, добавлять дополнительную фильтрацию данных на стороне MySQL и т.д.
Обратите внимание, в download-листе Sphinx есть пункт «MySQL 5.0.45 with SphinxSE 0.9.8» и из ссылки «mysql-5.0.45-sphinxse-0.9.8-win32.zip» следует что это только для Win32.
Теперь, разархивируем:
# tar -xzf mysql-5.1.34.tar.gz # tar -xzf sphinx-0.9.8.1.tar.gz
Скопируем сорцы SphinxSE в каталог распакованного нами MySQL:
В большинстве случаев, при разработке веб-проекта требуется автоматически обновлять рабочую версию, на помощь на приходят свн-хуки!
Начнем с того, что у нас есть веб-проект и нам необходимо создать для него репозиторий, как это сделать я рассказывал в статье «FreeBSD. Установка и настройка Subversion».
Далее, мы будем обновлять наш проект только через репозиторий!
Хуки срабатывают на разные события Subversion, вот некоторые из них:
start-commit — запускается до начала транзакции, может быть использован для проверки прав.
pre-commit — запускается в конце транзакции, но до commit, часто используется для валидации данных, например для проверки не пустых лог-собщений.
post-commit — запускается после транзакции, может быть использовано для отправки e-mail или для резервирования хранилища.
pre-revprop-change — запускается до изменений в ревизии, могут быть использованы для проверки доступа.
post-revprop-change — запускается после изменений в ревизии, могут быть использованы для отправки e-mail или для резервирования изменений.
Есть еще «post-lock», «post-unlock», «pre-lock» и «pre-unlock», как видно из названий он срабатывают при блокировке. Я не буду их разбирать, потомучто они у меня интереса пока не вызвали.
Наконец-то я собрался с силами и переписал плагин «Яндекс.Фотки»! В новой версии все переписано буквально с нуля и работает на основе «», поэтому версия именуется 2.0.
Для работы с AtomPub («API Яндекс.Фоток» работает по этой технологии) использую библиотеку SimpleXML.
Возможности
Выводить все фотографии пользователя
Выводить фотографии в выбранном вами альбоме
Как и ранее можно указывать количество результатов выдачи, но теперь НЕ ограничено 20-ю
Выводить названия фотографий
Указывать размер превью фотографии
Требования
PHP5
SimpleXML (в PHP5 по умолчанию установлен)
Добавил плагин в . Также попробовал залить на , но к сожалению запарился читать инструкции, может как-нибудь позже добавлю.
Что не вошло в релиз, но планируется
Вывод всех альбомов пользователя (вам это надо?)
Выводить количество фотографий в альбоме и комментариев для фотографии
Просматривать защищенные приватностью фотографии (требуется ввод пароля)
Просмотр фотографий с помощью «lightbox» (посоветуйте что-нибудь на его роль, желательно что-нибудь нативное для WordPress)
Кеширование результатов выдачи, чтобы лишний раз не обращаться к «Яндексу» за фотографиями (посоветуйте средства кеширования, желательно нативные для WordPress)
Шорттеги, для вставки галереи или фотографии в пост (Примеры: [yf]album_1234[/yf] — галерея, [yf]photo_1234[/yf] — фотография)
Сообщение “No route to host” появляются, если система не в состоянии доставить пакеты к хосту назначения. Это может случиться, если не определен маршрут по умолчанию, или кабель не подключен. Проверьте вывод команды netstat -rn и убедитесь, что к соответствующему хосту есть работающий маршрут.
Иногда, не получается автоматически указать маршрут по умолчанию, поэтому приходится прописывать самим «defaultroute». Например, вы настроили интерфейсы и подняли их, все вроде хорошо, но не пингуется...
# ping example.com
ping: sendto: no route to host
Проверяем маршруты:
# netstat-r
Если не находим «default»-маршрут, то добавляем сами:
# route add default 10.20.30.1
, где 10.20.30.1 — ваш шлюз (gateway).
Или вписываем в /etc/rc.conf
defaultrouter="10.20.30.1"
Для того, чтобы маршрут прописывался при старте системы.