Что то типа путевых записок, и размышлений об жизни, ну и о FreeBSD конечно, иногда какие нибудь новости и что то типа переводов.

25.03.2009

Postgres+apache+nginx+CMS все просто

Тут подогнали на работе разминку для мозгов, установить связку из заголовка на дебиан, ну и чтоб оно работало, так как уже давно ничего серьезно не настраивал, а тот же постгрес, вообще видел первый раз, убил на это кучу времени. Ну отчасти ещё конечно из за того, что во всяком деле нужен интерес, ну или ясная цель, а тут её как бы особо не было, ибо задали это нам, чтоб не сильно мучались бездельем.
Итак по большому счету связка и ее настройка не сильно зависит от платформы, с точностью, до местоположения конфигов, и способа запуска служб, а так же способа установки пакетов. Поэтому дальнейшие пояснения будут о FreeBSD-CURRENT, так что в остальных платформах что то может отличатся, так как почти все делал по инструкциям, для дебиана, в конце дам список ссылок, а тут просто немного опишу возникающие проблемы.
Для начала ставим Postgres, как и все остальные приложения советую ставить из пакетной системы вашего дистрибьютива, во FreeBSD я ставил из портов, любители скорости могут юзать пакеты :) Установка элементарна, а вот настройка может вызвать проблемы, во FreeBSD рекомендуется перекомпилировать ядро со следующим набором опций
options SYSVSHM
options SYSVSEM
options SYSVMSG
options SHMMAXPGS=65536
options SEMMNI=40
options SEMMNS=240
options SEMUME=40
options SEMMNU=120
утверждается что этого хватит на 180 клиентов, ну я и подумал, мне то нафик столько не нужно дай на порядок сокращу, эксперимент провалился, постгрес просто не стартовал, так что относится к параметрам надо аккуратно, ну и почитать что нибудь по теме, если надо серьезно что то настроить. Там необходимо настроить ещё ряд параметров, все описано, в постинсталляционном сообщении, если кто не в курсе его всегда можно посмотреть pkg_info -Dx postgresql-server | less.
По настройке postgres во FreeBSD в принципе можно юзеть дефолтные для начала, сервер запускается даже с дефолтным ядром, так что все предельно просто, ну только не забыть проделать манипуляции из постинсталляционного сообщения. Сервер запускается доступным только локальным пользователям, так что думаю с точки зрения безопасности тоже все допустимо, вот тут и кроется главная разница, то ли в дебиане решили это ужесточить, то ли во фряхе смягчили, но факт что в файле pg_hba.conf во FreeBSD все локальные соединения считаются доверенными, а в дебиане им нужен md5 хеш. Так что аккуратнее, а то можно долго и безуспешно не понимать чего оно не коннектится, а да ещё запрещен коннект не из консоли с дефолтным юзером, вероятно из-за этого нельзя пормально поставить CMS из паккаджей, они все жалуются на невозможность коннекта к базе, если настройки прописать руками то работают.
Для начала работы следует завести юзера, ну или это сделает устанавливаемая CMS, так же для начала неплохо установить databases/phppgadmin, как видно из названия это есть морда для администрирования написанная на PHP. Кому интересно можно все делать и из консоли, пример в статье, ну или вот уж совсем кратенько.
# su pgsql
$ psql template1
Welcome to psql 8.3.7, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit

template1=# \?
...
\du [PATTERN] list users
...
template1=# \du
List of roles
Role name | Superuser | Create role | Create DB | Connections | Member of
--------------+-----------+-------------+-----------+-------------+-----------
drupal | yes | yes | yes | no limit | {}
pgsql | yes | yes | yes | no limit | {}
postgrestest | yes | yes | yes | no limit | {}
(3 rows)
Краткая суть что там творилось, стали пользователем pgsql (в дебиане postgres), подключились к служебной таблице, посмотрели список команд, ну и посмотрели что за пользователи у нас есть. Остальное тянет на статью :)
В общем на этом можно и закруглятся, ибо установка apache, прикручивание к нему nginx в качестве фронтенда, и уж тем более установка CMS, в моем случае Drupal, из пакетов элементарна, и току это описывать не вижу.
Стоит пожалуй только настроить apache, что бы он слушал только локальный 81 порт, хотя тут у меня опыта нет, и может это и не совсем так, кстати надо быдет все таки подтянуть свои знания в этом направлении.

Список статей, по которым настраивал я, там все расписано поподробнее, ну и за платформенно зависимыми подробностями, можно поискать, или почитать документацию :)
Интересный дистрибьютив Debian небольшой, но с кучей драйверов для современного оборудования.
Статья по утилитке для выбора наиболее быстрого заркала, во FreeBSD кстати тоже недавно добавили в порты sysutils/fastest_cvsup сам пока не юзал, но вот статья по настройке.
Конфигурирование Postgres
Установка и настройка apache+nginx
Установка roftpd с хранением юзеров в postgres

2 комментария:

  1. fastest_cvsup 0.2.9_6
    Port Added: 17 Jul 2002 07:44:39

    ну не совсем недавно его добавили :)
    а вообще скрипт неплохой...

    ОтветитьУдалить
  2. Да :) похоже лажанулся, просто упоминается он вроде нечасто, а тут еще недавно статья промелькнула, и что то мне подумалось, что там модернизировали что то.

    ОтветитьУдалить

Здесь можно записать свои мысли о посте :)
Если ваш ответ не появился сразу, не паникуйте, тут работает спамоловка, и вероятно вы угодили в неё, так как были анонимом или в вашем посте ссылка, ну или вас не любит google.
Я проснусь и одобрю комент ;)