FreeBSD+Apache+PHP+PostgreSQL

Декабрь 2, 2009 at 8:50 дп (помойка справочной инфы) (, , , )

1. Ставим PostgreSQL

# cd /usr/ports/database/postgresql82-server/
# make install clean
Пароль pgsql:
[code]
#passwd pgsql

Каталог баз данных, что нравится – /home/pgsql или /var/pgsql:

#mkdir /var/pgsql
#chpass pgsql
# mv /usr/local/pgsql/* /var/pgsql/
#mkdir /var/pgsql/data

Права доступа к каталогу базы данных:

#chown -R pgsql:pgsql /var/pgsql/
#chmod -R 750 /var/pgsql/

Добавляем в /etc/rc.conf строчки для автозагрузки БД:

postgresql_enable="YES"
postgresql_data="/var/pgsql/data"
postgresql_class="postgres"

Инициализируем кластер:

#/usr/local/etc/rc.d/postgresql initdb

Стартуем базу, подключаемся к ней, меняем кодировку клиента и изменяем пароль суперпользователя, добавляем нового пользователя:

# su pgsql
$ cd ~
$ /usr/local/etc/rc.d/postgresql start
psql template1
\encoding KOI8
ALTER USER pgsql WITH PASSWORD 'пароль';
CREATE USER пользователь WITH CREATEDB LOGIN PASSWORD 'пароль';
Ctrl+D
$ /usr/local/etc/rc.d/postgresql stop

Изменяем доступ к базе данных, правя /var/pgsql/data/pg_hba.conf:
доступ по IPv6 отключаем, комментируя строчку

#host all all ::1/128 trust

локальный доступ к БД по паролю, меняем trust на password:

local all all password
host all all 127.0.0.1/32 password

Стартуем базу:

$ /usr/local/etc/rc.d/postgresql start
$ Ctrl+D

2. Ставим Apache 2.

# cd /usr/ports/www/apache20/
# make WITH_AUTH_MODULES=yes WITH_DAV_MODULES=yes WITH_MISC_MODULES=yes WITH_SSL_MODULES=yes WITH_LDAP_MODULES=yes WITH_DBM=bdb WITH_BERKELEYDB=db41 WITH_KQUEUE_SUPPORT=yes install clean

Создаём каталог web-документов:

# mkdir /var/www

Папки /usr/local/www/cgi-bin-dist data-dist error-dist icons-dist переносим в /var/www/, там же создаём симлинки cgi-bin -> cgi-bin-dist, data -> data-dist, error -> error-dist, icons -> icons-dist.
Меняем права доступа:

# chown -R www:www /var/www/
# chmod -R 750 /var/www/

Правим /usr/local/etc/apache2/httpd.conf, исправляем/меняем строчки:

DocumentRoot "/usr/local/www/data" -> DocumentRoot "/var/www/data"
<Directory "/usr/local/www"> -> <Directory "/var/www">
Alias /icons/ "/usr/local/www/icons/"> -> Alias /icons/ "/var/www/icons/"
<Directory "/usr/local/www/icons"> -> <Directory "/var/www/icons">
ScriptAlias /cgi-bin/ "/usr/local/www/cgi-bin/"> -> ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<Directory "/usr/local/www/cgi-bin"> -> <Directory "/var/www/cgi-bin">

то же самое с Alias /error/

3. Ставим PHP

# cd /usr/ports/lang/php5/
# make config
-- включаем Apache Suhosin Multibyte, выключаем IPv6
# make install clean

Ставим необходимые модули: pcre – регулярные выражения в стиле Perl, pgsql – для связи с PostgreSQL, session – для поддержки сессий, dom – для работы с XML

# cd ../../devel/php5-pcre
# make install clean
# cd ../../database/php5-pgsql/
# make install clean
# cd ../../www/php5-session/
# make install clean
# cd ../../textproc/php5-dom
# make install clean

В /usr/local/etc/apache2/httpd.conf вносим изменения:

DirectoryIndex index.html index.html.var -> DirectoryIndex index.php index.html index.html.var
+AddType application/x-httpd-php .php
+AddType application/x-httpd-php-source .phps

В /etc/rc.conf добавляем

apache2_enable="YES"

Создаем файл /var/www/data/index.php с содержимым:

<?php phpinfo(); ?>

Стартуем Apache:

# /usr/local/etc/rc.d/apache2.sh start

В любом браузере набираем http://127.0.0.1/ и любуемся настройками. Что не устраивает, правим соответствующие конфиги. Данная конфигурация Apache+PHP+PostgreSQL рассматривается только для web-разработки, по крайней мере мне такой конфигурации пока достаточно (для чего еще ставим /usr/ports/www/kdewebdev3/), для открытия доступа к серверу из сети потребуется поколдовать над безопасностью, виртуальными хостами (если кому надо), именами в DNS, настройка безопасности для каждой сети индивидуальна, ИМХО, потому здесь рассматривать не буду.

http://forum.oszone.net/thread-80181.html

Добавить комментарий

Fill in your details below or click an icon to log in:

Логотип WordPress.com

You are commenting using your WordPress.com account. Log Out / Изменить )

Фотография Twitter

You are commenting using your Twitter account. Log Out / Изменить )

Фотография Facebook

You are commenting using your Facebook account. Log Out / Изменить )

Connecting to %s

Follow

Get every new post delivered to your Inbox.