Pull to refresh

Установка FAMP на pfsense

Reading time 2 min
Views 7.7K
В стандартных пакетах 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.
Tags:
Hubs:
+4
Comments 7
Comments Comments 7

Articles