В стандартных пакетах 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.
Автор: allseen