My cnf где находится freebsd. Установка phpmyadmin на виртуальный хост. Конфигурация Apache для использования модулей PHP

Будем устанавливать веб-сервер, в частности MySQL. Nginx и PHP установка в другой статье. Тут мы рассмотрим особенность установки, настройка конфигурации для лучшей работы на SSD, различная оптимизация.
Теоретически под мои задача запись будет идти не так часто, но все же количество логов, операций записи на диск нужно сократить.
Ну что же, приступим к установке.
Добавляем в файл /etc/make.conf следующие строчки:
# MySQL DEFAULT_MYSQL_VER=56 .if ${.CURDIR} == /usr/ports/databases/mysql56-server WITH_CHARSET=utf8 WITH_XCHARSET=all WITH_COLLATION=utf8_general_ci BUILD_OPTIMIZED=yes .endif .if ${.CURDIR} == /usr/ports/databases/mysql56-client WITH_CHARSET=utf8 WITH_COLLATION=utf8_general_ci BUILD_OPTIMIZED=yes .endif Кодировку и версию сервера меняем на нужную. У меня это utf8 и версия mysql 5.6

Обновляем дерево портов () и переходим
cd /usr/ports/databases/mysql56-server
Далее установим с нужными нам параметрами make install clean

Дожидаемся окончания установки и переходим к настройки
Создаем файл конфигурации /var/db/mysql/my.cnf и конфигурируем.
В версии 5.6 по умолчанию используется движок innoDB, и конфигурация будет под использование только innoDB. Подробная документации на английском есть на офийиальном сайте dev.mysql.com/doc/
# Порт к которому подключается mysql клиент. Port = 3306 # Адрес сокета для mysql клиента. socket = /tmp/mysql.sock # Порт который слушает mysql сервер. port = 3306 # Путь к сокету. socket = /tmp/mysql.sock # IP адрес который слушает сервер, localhost работает в любом случаи. Мне нужно что бы база была доступна в локальной сети. bind-address = 192.168.0.1 # Максимальное количество параллельный подключений к серверу. max_connections = 200 # Сколько данных можно передать за один запрос. Увеличить если есть ошибка: "Packet too large". max_allowed_packet = 4M # Не определяет домены имен. skip-name-resolve # Устанавливается по умолчанию, не использовать внешние блокировки. Когда несколько серверов работает с одними и теми же файлами. skip-external-locking # Не использовать сеть (TCP/IP), только сокет. Мне нужна сеть, так как удобно работать с базы с другого компьютера. Но связь идет внутри моей локальной сети, так что больше не кто не подключится к 192.168.0.1. В большинстве случаев хватит сокета. #skip-networking # Если запрос выполнялся дольше указного времени в секундах, то он будет записан в лог, как меленый запрос. Поставлю одну секунду, так как в моих скриптах дольше выполняться нечему. slow_query_log = 1 # Путь к файлу логов медленных запросов. Создаем файл с правами пользователя mysql. slow_query_log_file = /var/log/mysql_slow_queries # Поведения поля timestamp по умолчанию explicit_defaults_for_timestamp # Размер буфера выделяемого под индексы. Должно быть примерно 30% от оперативной памяти если используете MyISAM. Я использую innoDB, но MyISAM будет использовать для внутренних целей. key_buffer_size = 64M # Размер буфера для сортировки MyISAM индексов myisam_sort_buffer_size = 128M # innoDB параметры # Размер памяти под индексы и данные. Советуют ставить 80-90% от оперативной памяти. Я поставил 50%, так как на сервере кроме mysql будут другие программы. innodb_buffer_pool_size = 4G # Доступно три значения на выбор: 0, 1, 2. Значение 0 - сбрасывать лог раз в секунду на диск, не зависимо от транзакций. Значение 1 - сбрасывать лог при каждой транзакции. Значение 2 - лог пишется, но не сбрасывается на диск. Самое надежное 1, но я буду использовать 2, так как SSD. В случае падение операционной системы потеряются данные только за последние 1-3 секунды. innodb_flush_log_at_trx_commit = 2 # Размер буфера лога. По умолчанию один мегабайт, больше восьми мегабайт не нужно. innodb_log_buffer_size = 8M # Максимальный размер одного лог файла. При достижение этого размера будет создавать новый лог файл. Значение устанавливать от 32 до 512 Мегабайт. innodb_log_file_size = 128M

Добавляем в загрузку MySQL сервер. Для этого добавим строчку в файл /etc/rc.conf
mysql_enable="YES"
Стартует MySQL сервер:
/usr/local/etc/rc.d/mysql-server start
Смотрим содержимое лога mysql (/var/db/mysql/localhost.err) на наличии ошибок запуска и предупреждений. Если есть какие то ошибки или предупреждение их необходимо исправить, mysql сервер подробно опишет в логе в чем проблема.

Теперь добавим возможность подключаться к серверу под пользователем root с IP адреса 192.168.0.2. Так как я привык работать не через phpmyadmin, а сторонними программами. Например под windows очень удобно пользоваться navicat lite.
По умолчания у пользователя root нет пароля, используем консольный клиент mysql и создадим пользователя root c ip 192.168.0.2 со всеми привилегиями:
mysql> CREATE USER "root"@"192.168.0.2"; Query OK, 0 rows affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON *.* TO "root"@"192.168.0.2" WITH GRANT OPTION; Query OK, 0 rows affected (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec)
Теперь можно подключать к серверу с IP адреса 192.168.0.2, попробуем подключиться

Как можно видеть все работает, дальше уже идет настройка привилегий, баз данных. Это уже отходит от темы данный темы.
Статья будет дописываться, так как с конфигурацией my.cnf я сам не разобрался. Если есть вопросы и пожелания с радостью поговорю.

Установку СУБД MySQL в данной статье мы будет производить из коллекции портов FreeBSD. Предполагается, что на сервере установлена свежая версия коллекции портов. Если это не так, следует установить или обновить порты приложений с помощью утилиты portsnap.

# portsnap fetch extract - установить порты, если они отсутствуют в системе # portsnap fetch update - обновить порты, если они присутствуют в системе

# vi /etc/make.conf ########## MySQL 5.5 ########## .if ${.CURDIR} == "/usr/ports/databases/mysql55-server" WITH_CHARSET=utf8 # Кодировка по-умолчанию WITH_COLLATION=utf8_general_ci # Сравнение по-умолчанию WITH_XCHARSET=all # Дополнительные кодировки WITH_OPENSSL=yes # Включить безопасные соединения через OpenSSL WITH_LINUXTHREADS=no # Работа в несколько нитей одновременно с помощью # линуксовой библиотеки pthread WITH_PROC_SCOPE_PTH=yes # Работа в несколько нитей одновременно, для # повышения производительности BUILD_OPTIMIZED=yes # Добавление флагов оптимизации, даёт # небольшой прирост производительности BUILD_STATIC=yes # Сборка статической версии mysqld, даёт # небольшой прирост производительности и # независимость от внешних библиотек WITH_NDB=no # Поддержка NDB storage engine (для кластеров) .endif

#1. Установка MySQL 5.5 и инициализация директории данных

Заходим в порт mysql55-server, приступаем к установке. После установки перечитываем директории PATH с помощью rehash.

# cd /usr/ports/databases/mysql55-server/ # make install clean # rehash

# cd /usr/local # mysql_install_db --user=mysql --datadir=/var/db/mysql Installing MySQL system tables... OK Filling help tables... OK

#2. Первоначальная настройка MySQL

Отлично, системные и вспомогательные таблицы созданы. Далее нужно создать конфигурационный файл mysql. Шаблоны конфигов mysql можно найти в /usr/local/share/mysql/:

# ls /usr/local/share/mysql/my-* /usr/local/share/mysql/my-huge.cnf # 2GB памяти /usr/local/share/mysql/my-innodb-heavy-4G.cnf # 4GB памяти /usr/local/share/mysql/my-large.cnf # 512MB памяти /usr/local/share/mysql/my-medium.cnf # 64MB памяти /usr/local/share/mysql/my-small.cnf #

Общий объём используемой оперативной памяти для MySQL подсчитывается по формуле (основные параметры):

Innodb_buffer_pool_size + key_buffer_size + max_connections*(sort_buffer_size+read_buffer_size+binlog_cache_size) + max_connections*2MB

В этой формуле не хватает ряда других параметров, использующих память, в контексте данной статьи будем использовать эту формулу. Если требуется подсчитать более точное максимальное количество памяти, которое может использовать mysql, можно воспользоваться следующей формулой (ниже). Как показывает практика, полученное значение памяти из следующей более сложной формулы не стоит воспринимать «как будет», значение обычно получается меньше.

Память на одно соединение = read_buffer_size + read_rnd_buffer_size + sort_buffer_size + + thread_stack + join_buffer_size; 1. Память на все соединения = per_thread_buffers * max_connections; 2. Память используемая СУБД = key_buffer_size + max_tmp_table_size + innodb_buffer_pool_size + + innodb_additional_mem_pool_size + innodb_log_buffer_size + + query_cache_size; Суммарная используемая память = (Память используемая СУБД) + (Память на все соединения);

На стенд-сервере, куда мы устанавливаем MySQL имеется 16GB оперативной памяти. Будут использоваться таблицы MyISAM и InnoDB. Скопируем пример конфигурационного файла my-innodb-heavy-4G.cnf как /var/db/mysql/my.cnf.

# cp /usr/local/share/mysql/my-innodb-heavy-4G.cnf /var/db/mysql/my.cnf

После чего приводим его к следующему виду.

# vi /var/db/mysql/my.cnf port = 3306 # Порт, на котором слушает mysqld socket = /tmp/mysql.sock # Unix-сокет для mysqld back_log = 128 # Размер очереди для tcp/ip запросов на соединение #skip-networking # Раскомментируйте данную директиву, если не планируется # разрешать соединения снаружи (только на localhost) max_connections = 1000 # Максимальное количество соединений (сессий) max_connect_errors = 1000 # Максимальное количество ошибок от каждого хоста. При # достижении лимита происходит блокировка хоста. table_open_cache = 2048 # Максимальное количество открытых таблиц max_allowed_packet = 16M # Максимальный размер пакета в запросе binlog_cache_size = 1M # Максимальный размер кэша бинарного лога, для отдельной # транзакции read_buffer_size = 2M # Размер буфера чтения для полного просмотра таблицы read_rnd_buffer_size = 16M # Размер буфера сортировки для запросов ORDER BY sort_buffer_size = 8M # Размер буфера сортировки для запросов GROUP BY, ORDER BY join_buffer_size = 8M # Размер буфера для запросов JOIN (без индексов) thread_cache_size = 24 # Количество трэдов, которые не убиваются, а остаются в # кэше для повторного использования thread_concurrency = 8 # Максимальное количество потоков mysqld. Рекомендуется # устанавливать как *(2..4) query_cache_type=1 # Включение кэширования запросов query_cache_size = 64M # Размер кэша результатов запросов SELECT query_cache_limit = 2M # Размер максимальной выборки SELECT для кэширования default-storage-engine = MYISAM # Указываем тип таблиц по-умолчанию, если тип не указан # в запросах CREATE TABLE tmp_table_size = 64M # Максимальный размер в памяти для создаваемых временных # таблиц. Если больше - таблица записывается на диск #log-bin=mysql-bin # Раскомментируйте, если планируется использовать #binlog_format=mixed # репликации для MySQL. key_buffer_size = 1G # Размер памяти, выделяемой для кэширования индексов # таблиц MyISAM. Важный параметр оптимизации #skip-innodb # Раскомментируйте параметр, чтобы отключить InnoDB innodb_additional_mem_pool_size = 16M # Выделенная память для внутренних нужд InnoDB innodb_buffer_pool_size = 2G # Объём памяти, выделенной для InnoDB. Чем больше - тем # лучше. Снижает количество дисковых операций innodb_data_file_path = ibdata1:100M:autoextend # Размер стораджа данных таблиц # InnoDB, авторасширяемый. innodb_file_per_table = 1 # Каждая таблица будет храниться в отдельном файле innodb_thread_concurrency = 16 # Максимальное количество потоков mysqld для innodb

#3. Первый пуск MySQL и завершение установки

После первоначальной настройки СУБД MySQL мы должны запустить сервер и настроить запуск mysqld при старте системы. Управлять состоянием mysqld можно через rc-скрипт, который автоматически после сборки порта записался как /usr/local/etc/rc.d/mysqld-server. Запускаем СУБД.

# echo "mysql_enable="YES"" >> /etc/rc.conf # echo "mysql_dbdir="/var/db/mysql"" >> /etc/rc.conf # /usr/local/etc/rc.d/mysql-server start Starting mysql.

Проверим, что mysql действительно запустился и работает от пользователя mysql.

# ps wwaux | grep mysql mysql 28671 0.3 2.6 3486888 440948 ?? I 11:08PM 0:00.65 /usr/local/libexec/mysqld --defaults-extra-file=/var/db/mysql/my.cnf --basedir=/usr/local --datadir=/var/db/mysql --plugin-dir=/usr/local/lib/mysql/plugin --log-error=/var/db/mysql/inter.onsever.ru.err --open-files-limit=8192 --pid-file=/var/db/mysql/inter.onsever.ru.pid --socket=/tmp/mysql.sock --port=3306 mysql 28026 0.0 0.0 8296 1884 ?? Is 11:08PM 0:00.02 /bin/sh /usr/local/bin/mysqld_safe --defaults-extra-file=/var/db/mysql/my.cnf --user=mysql --datadir=/var/db/mysql --pid-file=/var/db/mysql/inter.onsever.ru.pid root 28683 0.0 0.0 9124 1420 0 S+ 11:09PM 0:00.00 grep --color=auto mysq

# mysqladmin -uroot password "новый_пароль" # mysql -uroot -p -e "flush privileges" Enter password: вводим новый пароль

Заключительным шагом - запустим утилиту безопасности mysql_secure_installation, с помощью которой удалим анонимного пользователя, тестовую базу данных, которые создаются по-умолчанию при инициализации директории данных и запретим удалённый вход для пользователя root (не системный пользователь).

# mysql_secure_installation Enter current password for root (enter for none): вводит пароль суперпользователя mysql Change the root password? n Remove anonymous users? Y Disallow root login remotely? Y Remove test database and access to it? Y Reload privilege tables now? Y All done! If you"ve completed all of the above steps, your MySQL installation should now be secure. Thanks for using MySQL!

На этом установка и первоначальная настройка СУБД MySQL закончена. Успехов в использовании и оптимизации!

Mysql/ustanovka_mysql_5.5_pod_freebsd.txt · Последние изменения: 2015/02/01 13:50 - vav

Статьи / Системное администрирование

Для установки MySQL сервера нам сперва потребуется добавить опцию в /etc/make.conf. Эта опция заставит порт MySQL скомпилироваться с поддержкой всех возможных наборов символов, а не только с базовым латиницей.

% echo ‘WITH_XCHARSET=all" » /etc/make.conf

После этого переходим в директорию порта и запускаем make install.

%cd /usr/ports/databases/mysql50-server
%make install

Настройка mysql

Мы немного перенастроим mysql, так чтоб он использовал бы базу данных находящуюся в /data/mysql

Для этого сперва нужно создать директорию /data/mysql и выставить на нее правильные разрешения.

%mkdir /data/mysql
%chown mysql:mysql /data/mysql
%chnod go-rwx /data/mysql

Автозапуск mysql

Эти настройки разрешат запуск mysql во время загрузки системы и укажут правильную директорию, где размещать файлы.

%echo ‘mysql_dbdir=”/data/mysql”" >> /etc/rc.conf
%echo ‘mysql_enable=”YES”" >> /etc/rc.conf

При первом запуске в директории /data/mysql будут созданы необходимые для работы сервера поддиректории и файлы.

Запуск и остановка mysql

Для запуска MySQL сервера стоит набрать команду:

/usr/local/etc/rc.d/mysql-server forcestart

Для оставиоки соотстветствешю:

/usr/local/etc/rc.d/mysql-server forcestop

Для рестарта сервера

Как проверить, что mysqld запущен?

Для того, чтоб проверить, что mysqld нормально запустился вам следует запустить следующую команду и сравнить ее вывод с тем что получится у вас. Должны присутствовать оба процесса – и mysqld_safe и mysqld.

%ps -ax grep mysql
715 con- I 0:00.00 /bin/sh /usr/local/bin/mysqld_safe –defaults-ex
759 con- I 0:06.28 /usr/local/libexec/mysqld –defaults-extra-file=
%

mysqladmin ручное управление mysql

Вот короткий список команд, как управлять с командной строки работой mysqld.

mysqladmin proc – показывает список запросов, которые выполняются в данный момент SQL сервером, с текстом запроса, с его идентификатором, и время выполнения запроса.

mysqladmin kill id-процесса позволяет прекратить выполнение запроса с данным ID

mysqladmin password новый – пароль позволяет поменять пароль для текущего пользователя

mysqladmin create database – создание новой базы данных
mysqladmin drop database – полное удаление базы данных
mysqladmin shutdown – нормальная остановка mysql сервера

/usr/local/etc/rc.d/mysql-server start запуск mysql сервера.

Смена пароля для админа mysql

Пароль для администратора mysql можно поменять следующим образом, вместо asdasd впишите; ваш пароль.

%mysqladmin password asdasd

После этого, чтоб запустить команду mysqladmin нам придется либо запускать ее с аргументом -Р, либо прописать пароль в файл, как показано ниже.

Настройки клиента mysql

Для того, чтоб каждый раз не вводить пароль для соединения с mysql сервером, можно записать настройки в файл ~/.my.cnf.

Будьте внимательны с именем файла, оно начинается с точки!

Создайте файл ~/.my.cnf, откройте его в редакторе и запишите в него следующие строчки. Если такой файл уже существует и вы поменяли пароль пользователя, то вам нужно будет его отредактировать.

Password=BAШ_ПAPOЛЬ

Для того, чтоб этот файл был бы доступен только вам, нужно обязательно выполнить команду chmod 600 “/.my.cnf. Если этот файл будет доступен для чтения другим пользователям, они тоже сумеют получить административный доступ к MySQL серверу, оно вам надо?
После этого все утилиты, которые подключаются к mysql серверу, не будут спрашивать пароля для подключения. Это можно проверить на примере утилиты mysqladmin или mytop.

Мониторинг mysql сервера

Очень удобная утилита для мониторинга mysql сервера из консоли является mytop. Ее можно поставить из портов:

%cd /usr/ports/databases/mytop
%make install

Запускается она просто командой mytop. Она показывает запросы, которые в данный момент выполняет mysql сервер, а также общую статистику сколько запросов в секунду, какие запросы (SELECT, UPDATE, DELETE), их количество. Выйти из утилиты можно при помощи клавиши q либо Ctrl-C.

Запретить удаленный доступ к mysqld

Можно запретить удаленный доступ к mysqld через tср, и позволить соединяться только приложениям сданной машины. Это очень полезно для повышения безопасности сервера.

Проверить, что у вас разрешены удаленные соединения можно при помощи следующей команды:

%netstat -an | grep 3306
tcp4 0 0 *.3306 *.* LISTEN
%

Если вы видите эту строчку значит удаленный доступ у вас открыт. Для того, чтоб его запретить нужно добавить в файл /data/mysql/my.сnf строки:


skip_networking

Если такого файла у вас нет, создайте его.
Чтоб изменения конфигурации вступили в силу, перезагрузите mysqld сервер при помощи команды:

/usr/local/etc/rc.d/mysql-server forcerestart
%/usr/local/etc/rc.d/mysql-server restart
Stopping mysql.
Waiting for PIDS: 706.
Starting mysql.
%

Проверьте еще раз, что удаленный доступ уже закрыт:

%netstat -an | grep 3306
%

Проблемы с mysql

Клиентские программы не могут найти mysql сервер. Если сторонние программы жалуются, что они не могут подсоединиться к базе данных mysqld и не могут найти localhost, вы можете убрать из /etc/hosts строчку

::1 localhost localhost.my.domain

и попробовать еще раз.

Если это не поможем, Вы можете добавить в /data/mysql/my.cnf следующую секцию

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

– это легкий открытый веб-сервер, оптимизированный для высокоскоростных сред, который при этом имеет низкий уровень использования ресурсов. Это отличная альтернатива широко используемым веб-серверам Nginx и Apache. В этом мануале вы узнаете, как установить и настроить Lighttpd на сервере FreeBSD 11.0, а также установить MySQL и PHP на веб-сервер Lighttpd, чтобы обслуживать веб-приложения и статический контент.

Требования

1: Установка Lighttpd

Существует несколько методов установки Lighttpd, но в этом мануале веб-сервер будет установлен из пакетов. Установленные таким образом программы легче обновлять. Кроме того, это быстрее, чем компиляция из исходного кода или установка из портов.

Чтобы установить пакет Lighttpd, нужно обновить репозиторий системы:

Затем нужно загрузить и установить пакет lighttpd:

sudo pkg install lighttpd

Чтобы подтвердить, нажмите y.

Веб-сервер установлен.

При запуске сервера с конфигурацией по умолчанию вы увидите эту ошибку:

(network.c.260) warning: please use server.use-ipv6 only for hostnames, not without server.bind / empty address; your config will break if the kernel default for IPV6_V6ONLY changes

Это связано с тем, что конфигурация Lighttpd по умолчанию не полностью готова к поддержке IPv6. Чтобы избежать дальнейших ошибок, отредактируйте конфигурационный файл Lighttpd и отключите поддержку IPv6, для выполнения этого мануала она не нужна. Вы можете включить ее в будущем.

sudo ee /usr/local/etc/lighttpd/lighttpd.conf

Найдите этот раздел:

...
##
## Use IPv6?
##
server.use-ipv6 = "enable"
...

Замените enable на disable:

...
...
server.use-ipv6 = "disable"
...

Найдите эту строку в конце файла:

...
...
$SERVER["socket"] == "0.0.0.0:80" { }

Закомментируйте ее, она не нужна, если вы не используете IPv6.

...
...
#$SERVER["socket"] == "0.0.0.0:80" { }

Сохраните и закройте файл.

2: Установка и настройка MySQL

MySQL – это популярная система управления базами данных. Ее можно использовать для управления данными PHP-приложений, которые будет обслуживать веб-сервер Lighttpd.

MySQL, как и Lighttpd, можно установить из пакетов. Затем нужно настроить пароль для root-пользователя MySQL и отключить тестовые опции СУБД.

Поскольку ранее вы уже обновили репозиторий pkg, сейчас этого делать не нужно. Установите пакет MySQL:

sudo pkg install mysql57-server

Чтобы подтвердить установку, нажмите y.

После завершения установки добавьте MySQL в автозагрузку.

sudo sysrc mysql_enable=yes

Запустите сервис mysql-server:

sudo service mysql-server start

После запуска службы защитите установку MySQL с помощью сценария mysql_secure_installation. Он удалит некоторые опасные значения по умолчанию и заблокирует доступ к СУБД. Запустите интерактивный сценарий:

sudo mysql_secure_installation

На экране появится сообщение:

Securing the MySQL server deployment.
Connecting to MySQL server using password in "/root/.mysql_secret"

Сценарий предложит настроить плагин для валидации паролей:

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Важно! Если эта функция включена, пароли, которые не соответствуют указанным критериям, будут отклонены, а MySQL выдаст ошибку. Это вызовет проблемы при использовании слабых паролей и программного обеспечения, которое автоматически настраивает учетные данные пользователя MySQL. Вы можете отключить валидацию паролей, но при этом вы должны использовать сложные уникальные пароли.

Чтобы включить функцию, нажмите Y. Чтобы продолжить, не включая эту функцию, нажмите любую клавишу.

Если вы решили включить эту функцию, вам будет предложено выбрать уровень валидации паролей. Самый сложный уровень – 2. Он отклоняет любые пароли, которые состоят из обычных слов и/или не содержат цифр, букв верхнего и нижнего регистра, а также специальных символов.

There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:

Затем сценарий предложит изменить пароль пользователя root:

Change the password for root ? ((Press y|Y for Yes, any other key for No) :

Чтобы изменить его, введите Y.

Если вы включили валидацию пароля, сценарий проверит надежность текущего пароля root и предложит изменить этот пароль.

New password:
Re-enter new password:
Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) :

Введите новый пароль и нажмите Y.

Чтобы ответить на остальные вопросы, можно нажать Y и Enter. Это удалит некоторых анонимных пользователей и тестовую базу данных, отключит удаленный root доступ и обновит правила MySQL, чтобы изменения сразу вступили в силу.

На всякий случай можно перезапустить mysql-server:

sudo service mysql-server restart

3: Установка и настройка PHP

PHP будет обрабатывать код и отображать динамический контент. PHP может запускать сценарии, подключаться к MySQL, извлекать данные из БД и передавать обработанный контент веб-серверу для отображения.

PHP также можно установить из пакетов. Также вам понадобится пакет mysqli, который включает поддержку MySQL.

sudo pkg install php71 php71-mysqli

Lighttpd не предоставляет встроенную PHP-обработку, как некоторые другие веб-серверы, поэтому нужно использовать PHP-FPM (FastCGI Process Manager). Настройте Lighttpd для обработки запросов PHP с помощью этого модуля. Но прежде нужно настроить PHP-FPM. Откройте конфигурационный файл PHP-FPM:

sudo ee /usr/local/etc/php-fpm.d/www.conf

Настройте PHP-FPM для использования сокета Unix вместо сетевого порта. Это более безопасный вариант для сервисов, обменивающихся данными на одном сервере.

Найдите эту строку в файле:

listen = 127.0.0.1:9000

Отредактируйте ее так:

listen = /var/run/php-fpm.sock

Теперь нужно установить права собственности и доступа на сокет. Найдите такие строки:

...
;listen.owner = www
;listen.group = www
;listen.mode = 0660
...

Раскомментируйте раздел, удалив точки с запятой в начале каждой строки:

...
listen.owner = www
listen.group = www
listen.mode = 0660
...

Сохраните и закройте файл.

Затем создайте файл php.ini, который будет отвечать за общее поведение PHP. Есть два образца конфигурационного файла: php.ini-production и php.ini-development. В данной ситуации больше подходит php.ini-production, поэтому скопируйте его в /usr/local/etc/php.ini, где PHP будет искать свои настройки:

sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Откройте php.ini в текстовом редакторе:

sudo ee /usr/local/etc/php.ini

В файле найдите раздел для cgi.fix_pathinfo. Он будет закомментирован; значение по умолчанию – 1:

...
;cgi.fix_pathinfo=1
...

Раскомментируйте эту строку и установите значение 0. Теперь PHP не будет пытаться выполнить части пути, если заданный файл не найден. Злоумышленники могут использовать эту функцию для выполнения вредоносного кода.

...
cgi.fix_pathinfo=0
...

Сохраните и закройте файл.

Добавьте сервис php-fpm в автозагрузку:

sudo sysrc php_fpm_enable=yes

Запустите сервис:

sudo service php-fpm start

4: Настройка Lighttpd для обслуживания приложений PHP

На этом этапе нужно настроить Lighttpd для поддержки FastCGI и PHP-FPM.

Сначала включите модуль FastCGI. Откройте конфигурационный файл Lighttpd:

sudo ee /usr/local/etc/lighttpd/modules.conf

Найдите такой раздел:

...
##
## FastCGI (mod_fastcgi)
##
#include "conf.d/fastcgi.conf"
...

Раскомментируйте строку include, удалив символ #. Если этой строки нет в файле, добавьте ее в конец файла:

...
##
## FastCGI (mod_fastcgi)
##
include "conf.d/fastcgi.conf"
...

Сохраните и закройте файл.

Отредактируйте конфигурационный файл FastCGI:

sudo ee /usr/local/etc/lighttpd/conf.d/fastcgi.conf

Этот файл содержит несколько закомментированных примеров. Добавьте следующие конфигурации в конец файла, чтобы настроить Lighttpd для обработки файлов PHP с помощью FastCGI и PHP-FPM:

...
fastcgi.server += (".php" =>
"socket" => "/var/run/php-fpm.sock",
"broken-scriptfilename" => "enable"
)
...

Добавьте Lighttpd в автозагрузку.

sudo sysrc lighttpd_enable=yes

Запустите сервис lighttpd.

sudo service lighttpd start

5: Тестирование настройки

Чтобы убедиться, что Lighttpd может обслуживать страницы, создайте каталог /usr/local/www/data, в котором Lighttpd ищет данные, которые нужно обслужить.

sudo mkdir -p /usr/local/www/data

В этом каталоге создайте файл info.php. Этот файл поможет проверить, работает ли PHP, и позволит вам просматривать информацию о настройке веб-сервера в браузере:

sudo ee /usr/local/www/data/info.php

Добавьте в файл:

Сохраните и закройте файл.

http://your_server_ip/info.php

На экране появится информация о настройке веб-сервера.

На этой странице отображается информация о текущей операционной системе, веб-сервере и том, как он обрабатывает файлы PHP. Если страница открылась, значит, веб-сервер может корректно обслуживать файлы PHP.

Если вместо страницы на экране появилось сообщение об ошибке 503 Service Not Available, убедитесь, что сервис php-fpm запущен правильно.

После проверки важно сразу же удалить файл info.php, поскольку он предоставляет конфиденциальную информацию о сервере любому пользователю, который ее запрашивает.

sudo rm /usr/local/www/data/info.php

Веб-сервер полностью готов к работе. Теперь вы можете размещать на нем веб-страницы, документы и другие файлы.

Tags: ,

Руководство по установке стека FAMP на виртуальные сервера с FreeBSD 11.

Что это такое?

FAMP Stack — это набор открытого программного обеспечения, который используется для создания веб-серверов. Аббревиатура является набором первых букв в названии технологий FreeBSD, Apache, MySQL и PHP. Поскольку на виртуальном сервере уже запущена нужная операционная система FreeBSD, мы рассмотрим установку всех остальных компонентов.

Причина, по которой ПО называют стеком, заключается в том, что каждый уровень зависит от его базового (нижнего) уровня. Ваша операционная система FreeBSD - это базовый уровень. Затем Apache, ваш веб-демон находится поверх вашей ОС. Затем база данных хранит всю информацию, обслуживаемую вашим веб-демоном, а PHP (или любой язык сценариев P*) используется для управления и отображения всех данных, а также для взаимодействия с пользователем.

Перед настройкой FAMP Stack

Установка нужного программного обеспечения происходит в привилегированном режиме, для этого необходимо авторизоваться на VPS под логином администратора. Логин и пароль администратора можно узнать в панели управления: “Сервер ”->”Состояние ”.

Установка Apache на FreeBSD

На текущий момент веб-сервер Apache является наиболее распространенным web-сервером в мире. Это отличный выбор для размещения вашего веб-сайта.

Чтобы установить Apache вам необходимо подключиться к своему серверу через программу Putty на Windows или с помощью терминала на Mac OS, Linux и FreeBSD и ввести следующие команды:

Pkg install apache24

Чтобы данное ПО стартовало при включении операционной системы FreeBSD, необходимо добавить его в автозагрузку:

Sysrc apache24_enable=yes

Стартуем с помощью команды:

Service apache24 start

Чтобы проверить установку Apache, можно открыть браузер на компьютере и набрать в адресную строку IP-адрес VPS FreeBSD. На заpгрузившейся странице должна появиться надпись:

Примечание: на официальном сайте можно ознакомиться с более подробной информацией по корректной настройке серверов для хостинга сайтов.

Установка MySQL на FreeBSD

В терминале исполните следующую команду: pkg install mysql56-server

Для добавления в автозагрузку FreeBSD выполните следующее действие:

Sysrc mysql_enable=yes

Стартуем сервер MySQL:

Service mysql-server start

Все устанавливаемые приложения набора Famp Stack как правило имеют набор стандартных настроек, которые являются небезопасными и ненадежными. С целью увеличения уровня безопасности использования ПО рекомендуется вносить изменения. Запустите скрипт безопасности, изменяющий типовые параметры:

Mysql_secure_installation

Вы можете подключиться с помощью специальной утилиты, которая позволяет работать с СУБД, указав имя пользователя:

Mysql -u <имя_пользователя> -p

Установка PHP на FreeBSD

Исполняем команду в результате чего на сервер будут установлены пакеты для динамического просмотра контента:

Pkg install mod_php56 php56-mysql php56-mysqli

Скопируйте образец файла конфигурации PHP с помощью этой команды:

Cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Теперь восстановим кэшированную информацию об установленных исполняемых файлах системы:

Примечание: для повышения функциональности PHP вы можете дополнительно установить некоторые модули.

Конфигурация Apache для использования модулей PHP

С помощью любого удобного для вас редактора текста откройте файл конфигурации Apache, например с помощью nano:

Nano /usr/local/etc/apache24/Includes/php.conf

Файл будет пустой. Внесите следующее содержимое:


DirectoryIndex index.php index.html

SetHandler application/x-httpd-php


SetHandler application/x-httpd-php-source

Для применения изменений перезапустите Apache:

Service apache24 restart

Проверка

Чтобы удостовериться в том, что PHP поставлен без ошибок, можно создать test-page на сервере.

Для этого нужно создать новый скриптовый файл:

Nano /usr/local/www/apache24/data/info.php

И дописать в него следующие строки:

phpinfo();
?>

Http:///info.php

Например:

Http://5.101.77.24/info.php

Ожидаемый результат:

На этом установка всех компонентов FAMP Stack на FreeBSD завершена и вы можете использовать веб-сервер для развертывания вашего первого сайта.