PDA

Показать полную графическую версию : [решено] Связка Apache+PHP+PostgreSQL во FreeBSD


kaEwituS
28-02-2007, 17:40
Необходимо Сделать такую Связку во FreeBSD Apache+PHP+PostgreSQL
1)поставить Апач и настоить его, поставить PHP прирезать к АПАЧУ, следом Поставить PostgreSQL и привязать к Apache+PHP
2)Потом насторить где будет храниться index.php (Желательно в /home)
3)Настроить где будут храниться базы PostgreSQL (Желательно в /home)

Demiurg
28-02-2007, 19:10
1. Ставим PostgreSQL

# cd /usr/ports/database/postgresql82-server/
# make install clean

Пароль pgsql:

#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, настройка безопасности для каждой сети индивидуальна, ИМХО, потому здесь рассматривать не буду.
За ошибки не отвечаю, из-за тупого жмаканья по клаве мог чего и забыть.

greywind
28-02-2007, 23:04
less README, less INSTALL, ./configure --help

kaEwituS
26-11-2008, 00:28
Недавно пришлось переставить систему, всё заново по это инструкции сделал
захожу по ip 192.168.1.10
вот что теперь пишет:
Если Вы это видите, это значит, что установка ПО веб-сервера Apache на этой системе завершилась успешно. Вы можете теперь добавлять содержимое в эту директорию и заменить эту страницу. Вы видите это вместо ожидаемой страницы? Эта страница находится здесь потому, что администратор системы изменил конфигурацию этого веб-сервера. Пожалуйста, свяжитесь с лицом, ответсвенным за поддержку этого сервера для выяснения ваших вопросов. Apache Software Foundation, автор ПО веб-сервера, которым пользуется администратор этой системы, не связан с поддержкой этой системы и не может помочь Вам разрешить проблемы конфигурации.

Если вношу изменения в /usr/local/etc/apache2/httpd.conf

DirectoryIndex index.php index.html index.html.var

то начинает качать index.php

dmitryst
26-11-2008, 16:16
то начинает качать index.php »
в httpd.conf проверьте упоминание модуля php5. Если его нет, придется вписать вручную, типа этого

LoadModule php5_module modules/php5apache.so
AddType application/x-httpd-php phtml php php5

PandoraBox2007
22-12-2010, 07:53
ага а доступ к SSH для юзера постгре прикрывать не нужно ?)))

/etc/ssh/sshd_config

DenyUsers pgsql




© OSzone.net 2001-2012