В стандартных пакетах pfsense нет ни MySQL, ни полноценного Apache. PHP присутствует в системе по умолчанию, являясь основным языком сценариев, но отсутствуют нужные модули mysql.so и присутствуют свои pfsense.so, ssh2.so и т.д.

В отличие от FreeBSD, убраны многие стартовые скрипты и файлы конфигурации (rc.conf, rc.local), вместо них используются свои механизмы, написанные на PHP.

Pfsense представляет некую пхпэшную обертку наподобие перлового вебмина. К радости присутствует система пакеджей pkg, с помощью которой я поставлю необходимое ПО и опишу несколько фокусов, которые помогут хостить сайты на системе первоначально предназначенной быть интернет шлюзом.

Ставил все на голую систему — в любом случае не забываем делать бекап.

После установки и первоначальной настройки необходимо освободить 80 порт от lighthttp.
System — Advanced — webConfigurator — TCP port = 88

Вся остальная работа будет в консоли, которую включаем:
System — Advanced — Secure Shell — Enable Secure Shell

pkg install apache24 mysql56-server mod_php55 php55-mysql php55-mysqli

PHP желательно устанавливать именно версии 55 т. к. в системе именно она, иначе могут быть проблемы с модулями.

В системе нет rc.conf поэтому службы не стартуют.
Трюк первый: добавляем записи в /etc/defaults/rc.conf:

apache24_enable="YES"
mysql_enable="YES"

Система при каждой загрузке чистит каталог /tmp.

Трюк два: сокет мускула кладем в /var/tmp/mysql.sock.

Редактируем (создаем) файл /usr/local/etc/my.cnf:

[client]
port		= 3306
socket		= /var/tmp/mysql.sock

[mysqld]
port		= 3306
socket		= /var/tmp/mysql.sock
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
init-connect='SET NAMES utf8'
collation_server = utf8_unicode_ci
character_set_server = utf8
character_set_client = utf8
character_set_filesystem = utf8
log-bin=mysql-bin
binlog_format=mixed
server-id	= 1

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
[client]
default-character-set = utf8

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

Php.ini генерится каждый раз заново скриптом при запуске системы.

Трюк три: редактируем /etc/rc.php_ini_setup:

Перед ; Extensions:

[mbstring]
mbstring.internal_encoding = UTF-8
mbstring.func_overload = 2


После ; Extensions вставляем:

extension=mysql.so
extension=mysqli.so

Чтобы не выскакивали ворсинки меняем on на Off:

display_startup_errors=Off
display_errors=Off

Каталог /usr/local/etc/rc.d не является стартовым. Чтобы службы запускались автоматом, создаем два файла /etc/rc.local и /etc/rc.local.running.

Трюк четыре: редактируем /etc/rc.local:

/usr/sbin/service mysql-server start
/usr/sbin/service apache24 start

Перегружаемся и настраиваем виртуал хосты Apache по вкусу, на один из них я поставил Bitrix для последующей организации складского учета.

При установке битрикса в качестве сервера мускула указываем не localhost, а 127.0.0.1.

Комментарии (7)


  1. dvserg
    03.04.2015 14:43
    +2

    Традиционный вопрос. Зачем в систему, заточенную под роутер, ставить апач и битрикс?
    Неужели нет других вариантов (ubuntu & etc)?


    1. axilirator
      03.04.2015 14:59

      Цитата из Википедии:

      С самого начала он был нацелен на полную установку на компьютер, в противовес нацеленности m0n0wall на встраиваемые системы. Тем не менее, pfSense доступен так же в виде образа для встраиваемых систем на основе CompactFlash. Версия 1.0 была выпущена 4 октября 2006.

      У каждого дистрибутива есть свое конкретное предназначение и конкретная аудитория. Если речь идет об opensource-решениях, нацеленных на встраиваемые системы, так это как раз openWRT и DD-WRT.


      1. dvserg
        03.04.2015 15:07
        +1

        Я к тому, что ядро системы заточено на конкретную задачу — обработку сетевых пакетов. И есть большая вероятность, что производительность системы при работе серверных служб битрикса будет неудовлетворительной.


        1. axilirator
          03.04.2015 15:11

          С этим согласен.


    1. allseen Автор
      03.04.2015 15:49

      Ответ — кризис. Цены выросли в два раза. SOHO выживает.
      Поступило конкретное предложение об организации ИТ инфраструктуры (локалка, телефония, склад), техника только бу. На бу ПК в качестве сервера можно поставить все что угодно — хоть виндоус, но цена вопроса. Либо бесплатный unix из исходников. Но это SOHO админить будет собственными силами. Поэтому нужно (почти) готовое решение, типа pfsense.
      По поводу убунту — как вариант Zentyal, который имеет в том числе и вебсервер. Не буду открывать холивар и приводить другие готовые решения kerio, Vyatta и т. д., но это все комерческие продукты и в плане цены pfsensy не конкуренты. И беда заключается в том что у pfsense есть почти все для организации офисной ИТ инфраструктуры, телефония, прокся, snort и более того есть возможность организации вебсервера, но на базе lighttp с урезанными возможностями без mysql. Попробовал поставить FAMP (LAMP) и столкнулся с проблемами, которые решаемы — может кому-то поможет.


      1. dvserg
        03.04.2015 18:17

        Тогда может быть имеет смысл управление сервисами встроить в сам pfSense вместо rc.conf?
        Сделать Start/stop скрипт и добавить его в конфиг /cf/config.xml (вроде так).
        Из плюсов — управление из вебморды.
        Хотя запуск апача может быть лучше сделать по аналогии с Lighhtpd (код запуска есть в PHP скриптах).


        1. allseen Автор
          04.04.2015 07:23

          Смысл есть. Более того возможно создание нативного пакета lamp для pfsense. Нужно только созреть.