Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  немного о безопасности
  VPN (PoPToP)
  PortSentry
  sysctl
  vtund
  ipfwcount
  FreeBSD & DSA
  mpd – легко и просто!
  mpd + freeradius + mysql
  Бронированный FreeBSD
  sshit
  DSL-G804V и FreeBSD 6.2
  portaudit
  OpenVPN
  Bluetooth proximity monitor
  ESET NOD32
  GEOM-ELI
  stunnel для pop3,smtp
  NOD32 mirror
  mpd5 + ipfw-nat
  Openvpn 2 офиса
  Hotspot
  OpenVPN+авторизация
  termlog
  mpd5 + сжатие и шифрование
  ipsec_vpnc
  TOR Сервер
  Snort на FreeBSD
  Arpwatch
  Установка и настройка OpenVPN
  NOD32_mirror_v2
  Fail2ban
  IPSec
  Перенос OpenVPN сервера
  Wpa/WPA2-Radius+EAP-TLS/EAP-PEAP
  nod32 mirror script
  MAC + apache
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> Security —> Apache, PostgreSQL, phpPgAdmin

Установка Apache, PostgreSQL, PHP и phpPgAdmin


Заметка сделана для себя (вечно какая-то важная мелочь забывается :) и молодого коллеги, дабы давать на изучение и приучение к FreeBSD. :)
Описываемое актуально для FreeBSD 9.0, Apache 2.2, PostgreSQL 9.2, PHP 5.4 и phpPgAdmin 0.6.4.

ОГЛАВЛЕНИЕ

Установка web-сервера Apache
Установка сервера PostgreSQL
Установка сервера PHP
Установка сервера phpMyAdmin
Последние штрихи
МЕЛОЧИ

  • Мелочь №1: Сброс забытого пароля пользователя для PostgreSQL
  • Мелочь №2: Обход ошибки при "битых страницах" БД

    Установка web-сервера Apache

    Здесь всё про: главное - установить поддержку MySQL в конфигурации порта:
    $ cd /usr/ports/www/apache22
    $ make install clean
    

    В файл /etc/rc.conf прописываем для автозапуска:
    apache22_enable="YES"
    

    В конфигурационный файл /usr/local/etc/apache22/httpd.conf прописываем имя сервера и адрес админа:
    ...
    ServerAdmin admin@mydomain.su
    ...
    ServerName mydomain.su:80
    ...
    

    В файл конфигурации загрузчика /boot/loader.conf добавляем строку:
    accf_http_load="YES"
    

    Запускаем наш Apache:
    $ apachectl start
    

    Если ошибок не появилось, значит всё нормально и сервер запустился.

    Установка сервера PostgreSQL

    Установка PHP

    Ставил сам PHP, не забывая указать в конфигурации сборки поддержку PostgreSQL и Apache:
    $ cd /usr/ports/lang/php5/
    $ make install clean
    

    В конфигурационный файл Apache /usr/local/etc/apache22/httpd.conf добавляем параметр DirectoryIndex в блок <Directory />, чтобы получилось следующее:
    <Directory />
        DirectoryIndex index.php index.html
        AllowOverride None
        Order deny,allow
        Deny from all
    </Directory>
    

    Теперь надо PHP "активировать" в Apache. Для этого добавим две строчки в /usr/local/etc/apache22/httpd.conf в блоке <IfModule mime_module>:
        AddType application/x-httpd-php .php
        AddType application/x-httpd-php-source .phps
    

    Так же создадим файл cat /usr/local/etc/php.ini на основе /usr/local/etc/php.ini-production, удалив комментарии:
    $ cat php.ini-production | grep -v ";" > php.ini
    

    и добавим в него в блок [Date] параметр временной зоны:
    [Date]
    date.timezone = Europe/Moscow
    

    Перезапустим Apache:
    $ apachectl restart
    

    Для проверки нормальных подключения и работы модуля поддержки PHP можно открыть в браузре по ссылке http://xxx.xxx.xxx.xxx/index.php предварительно созданный файл /usr/local/www/apache22/data/index.php следующего содержания:
    <?php
        phpinfo( );
    ?>
    

    Для работы phpMyAdmin ещё понадобятся расширения PHP (php5-extensions), но ставить их отдельно смысла особого нет: она будут установлены, как необходимая зависимость для phpMyAdmin.

    МЕЛОЧИ

    Мелочь №1: Сброс забытого пароля пользователя для PostgreSQL
    http://wiki.linux.ru/wiki/index.php/Как_сбросить_пароль_root_PostgreSQL_сервера
    Остановим PostgreSQLSQL сервер
    $ /usr/local/etc/rc.d/postgres stop
    

    Хабра 173623
    http://myfreebsd.ru/other/administrirovanie-postgresql
    http://postgresql-lab.blogspot.ru/2013/01/175.html
    Мелочь №2: Обход ошибки при "битых страницах" БД
    В пункте насчёт VACUUM неплохо бы указать, что делать, если VACUUM не может производиться. Недавно столкнулся с ситуацией, когда что VACUUM, что pg_dumpall мирно дохнут, выдав на-гора что-то вроде:
    Invalid page header in block 946006 of pg_toast_3847720

    То есть, файл повреждён, и работы дальше не будет. Что его могло повредить – повод для отдельного выяснения, а мне нужен был быстрый рецепт обхода. В таких случаях может спасти (возможно, с потерей пары записей, но возможно и целиком) употребление перед VACUUM команды
    SET zero_damaged_pages=true;
    

    После этого VACUUM не споткнётся на битых страницах, а просто их обнулит. И дамп запишется, и всё такое.

    -----------------
    А вот это зря.. Нужно переодически это делать, я у себя делаю раз в 4 часа обычный VACUUM, раз в сутки FULL ANALYZE + backup.
    Так что более ли менее шустро всё работает и бэкап есть в случае чего.
    ---------
    >способ 1
    >postgresql$ vaccumdb -v database
    >
    >способ2
    >1. pg_dump
    >2. dropdb
    >3. createdb
    >4. pg_restore
    -----------------
    psql --username=pgsql db_zabbix
    -----------------

    СУБД PostgreSQL
    http://postgresql.ru.net/manual/index.html
    http://postgresql.ru.net/manual/backup-dump.html
    http://postgresqlrussia.org/pgsqldocrus/doc/src/sgml/auth-pg-hba-conf.html
    http://www.lissyara.su/?id=2063
    http://wiki.lissyara.su/wiki/Установка_PostgreSQL
    http://www.lissyara.su/articles/freebsd/mail/roundcube+postgresql/
    http://guruadmin.ru/page/15-practical-postgresql-database-administration-commands
    http://forum.oszone.net/thread-80181.html
    http://www.opennet.ru/tips/info/182.shtml
    http://www.opennet.ru/tips/sml/32.shtml

    http://postgresql.ru.net/manual/backup-dump.html
    http://www.postgresql.org/docs/9.2/interactive/runtime-config-autovacuum.html
    http://postgresql.ru.net/pgtune/postgresql.html#SECTION00800000000000000000

    template1=# CREATE USER user_name WITH CREATEDB LOGIN PASSWORD 'Pas$w0rd';
    CREATE ROLE
    template1=# select * from pg_shadow;
    usename | usesysid | usecreatedb | usesuper | usecatupd | passwd | valuntil | useconfig
    -----------+----------+-------------+----------+-----------+-------------------------------------+----------+-----------
    pgsql | 10 | t | t | t | md500ba091dd8401516e01e318ebf4c476f | |
    fomalhaut | 16384 | t | f | f | md54117783cb97c642fbe0eb685653b7b67 | |
    (2 rows)

    template1=# select * from pg_database;
    datname | datdba | encoding | datcollate | datctype | datistemplate | datallowconn | datconnlimit | datlastsysoid | datfrozenxid | dattablespace | datacl
    -----------+--------+----------+------------+----------+---------------+--------------+--------------+---------------+--------------+---------------+----------------------------
    template1 | 10 | 6 | C | C | t | t | -1 | 11866 | 654 | 1663 | {=c/pgsql,pgsql=CTc/pgsql}
    template0 | 10 | 6 | C | C | t | f | -1 | 11866 | 654 | 1663 | {=c/pgsql,pgsql=CTc/pgsql}
    postgres | 10 | 6 | C | C | f | t | -1 | 11866 | 654 | 1663 |
    (3 rows)

    template1-# \q
    $ psql -l
    Password:
    List of databases
    Name | Owner | Encoding | Collation | Ctype | Access privileges
    -----------+-------+----------+-----------+-------+-------------------
    postgres | pgsql | UTF8 | C | C |
    template0 | pgsql | UTF8 | C | C | =c/pgsql +
    | | | | | pgsql=CTc/pgsql
    template1 | pgsql | UTF8 | C | C | =c/pgsql +
    | | | | | pgsql=CTc/pgsql
    (3 rows)

    Это - пример просмотра информации о базе.



    fox, 2011-01-24 в 0:15:51

    А зачем шифровать swap??? При этом всё остольное не зашифровано...

    Fomalhaut, 2011-01-24 в 1:12:51

    В своп может попасть то, что, например, хранится в БСД в виде хэш-"оттиска" - пароли те же.
    У меня, например, отдельный "винт" зашифрован, но т.к. здесь рассматривается вопрос не общего шифрования, а конкретной системы - это не упоминается.

    Ёхман, 2013-05-10 в 15:48:18

    geli_swap_flags="-a hmac/sha256 -e blowfish -l 128 -s 4096 -d"

    Необходимость опции "-a" тут очень сомнительна. В определенных случаях, злоумышленник, который имеет неоднократную возможность сливать себе зашифрованные данные, может успешно манипулировать ими, даже не имея возможности их расшифровать. Например, откатить систему до непропатченного состояния. Проверка целосности нужна именно против этого. Навряд ли это актульная проблема для свопа. При этом уменьшение объема - как раз результат этой опции.

    Опция "-l" тоже не нужна, поскольку 128 - значение по-дефолту.

    Опция "-d" тоже не нужна, поскольку отмонтированние свопа как правило все равно не осуществляется до завершения работы.

    Опция "-e" тоже не нужна, поскольку blowfish не дает никаких преимуществ перед стандартным AES.

    Получается единственная опция, которая тут хоть что-то значит - это "-s".

    На самом деле вся премудрость шифрования свопа заключается в одной операции: достаточно прописать суффикс ".eli" к устройству свопа во fstab, и не париться.



  • Хостинг HOST-FOOD

    2014-07-27, lissyara
    gmirror

    Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
    2013-08-20, zentarim
    Scan+Print server FreeBSD 9

    Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
    2011-11-20, BlackCat
    Разъём на WiFi-карту

    Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
    2011-09-14, manefesto
    Настройка git+gitosis

    Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
    2011-08-14, zentarim
    Wi-FI роутер + DHCP + DNS

    Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
    2011-06-15, -ZG-
    Охранная система на FreeBSD+LPT

    В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
    2011-03-13, terminus
    ng_nat

    Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
    2011-02-20, Капитан
    Nagios+Digitemp

    Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
    2011-02-17, Le1
    Zyxel Configuration

    Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
    подписка

        вверх      
    Статистика сайта
    Сейчас на сайте находится: 14 чел.
    За последние 30 мин было: 73 человек
    За сегодня было
    9060 показов,
    921 уникальных IP
     

      Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
      Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

    © lissyara 2006-10-24 08:47 MSK

    Время генерации страницы 0.2412 секунд
    Из них PHP: 33%; SQL: 67%; Число SQL-запросов: 84 шт.
    Исходный размер: 98558; Сжатая: 17767