Как поднять Debian сервер под хостинг 1С-Битрикс

By |2016-10-15T08:09:12+00:0021 Сен 2012|Рубрики: Информационные Технологии|Метки: , , |2 комментария

Вместо предисловия

Я делал много кратких заметок-набросков по поводу настройки разынх серверов под проекты на 1С-Битрикс. По сути, я тестировал производительность конфигураций в различных дистрибутивах и связках. И понял, что для средненагруженных проектов удобнее использовать один сервер под все сразу (Apache, MySQL, PHP). Это будет самая последняя и самая полная статья в серии как настроить все с нуля.

Цель:

Создать сервер для хостинга проектов на 1С-Битрикс.

Оборудование:

CPU: Intel® Xeon® E3-1245 (Quad-Core)
RAM: 16 GB DDR3 RAM ECC
HDD: 2 x 3 TB SATA 6 Gb/s HDD 7200 rpm (RAID 1)

ОС:

Debian 6 (64bit), чистая минимальная установка

Оглавление

1. Начальная настройка и подготовка сервера
2. Установка Apache, MySQL, PHP
3. Настройка Apache
4. Настройка MySQL
5. Настройка PHP
6. Настройка FTP
7. Настройка iptables
8. Оптимизация

1. Начальная настройка и подготовка сервера

Меняем время на нужное для нас

Убаждаемся, что команда hostname выдает правильное имя сервера. Это же имя должно быть в файле /etc/hosts напротив IP-адреса. Если такоего нет, задаем:

Файл /etc/hosts:

Для начала добавляем репозитории, откуда будут браться пакеты. Их два — репозиторий Zend и репозиторий, откуда мы будем устанавливать MySQL версии 5.5
В файл /etc/apt/sources.list добавляем следующие строчки:

Добавляем ключи репозиторием:

Обновляем установленные пакеты (если есть такие):

 

2. Установка Apache, MySQL, PHP

Ставим сразу все. Это все одна длинная-длинная строчка.

Я не стал ставить phpmyadmin, потому что не хочу давать напрямую доступ к базе. Любую работу с БД можно производить через панель управления Битрикс, а администратору проще все делать через консоль.

3. Настройка Apache

Все настройки сайтов будут храниться в папке /etc/apache2/sites-enabled/

Там уже есть один сайт по умолчанию 000-defaul. Я создаю сайты по следующему принципу — . Т.е. все сайты с индексом 000 — это сайты, которые принадлежат владельцу сервера. Сайты с индексом 001 — это первый клиент, 002 — второй клиент и т.д. — это... как ни странно... домен.

Я покажу пример настройки двух своих сайтов. Файлы одинаковые, за исключением переменных ServerName, ServerAlias, DocumentRoot и директории сайта. Так же, надо помнить, что для Битрикс надо устанавливать значение AllowOverride All, чтобы обрабатывались файлы .htaccess.

/etc/apache2/sites-enabled/000-default:

/etc/apache2/sites-enabled/000-shieldz.ru:

Сами сайты хранятся в папке /var/www/
Устанавливаем права:

Если вы работаете с файлами сайта через консоль, то владельцем файла или папки становитс тот пользователь, от которого вы работаете. После внесения любых изменений в файлы сайта, лучше заново выполнять команду chown.

Пока что на этом все. Apache запускать еще рано. Не торопимся.

4. Настройка MySQL

Тип всех таблиц в базах данных я устанавливаю в InnoDB, соответственно файл конфигурации будет приведен под максимальную производительность именно InnoDB, а не MyISAM.

Первое, что необходим сделать — это обезопасить базу данных. Пароль администратора спрашивался в процессе установки. Нам остается лишь выполнить следующую команду, которая предложит сменить пароль администратора, удалить временные базы и пользователей, а так же запретит удаленное подключение пользователю root.

К сожалению, база данных уже будет запущена. Почему к сожалению? Потому что дальше будет ошибка.
А пока что заходим в бд и убеждаемся, что нет записей с пустыми паролями

Если есть пустые пароли, меняем их

Далее, нам надо создать файл конфигурации. За основу берем файл my-huge.cnf, которые доступен в качестве примера в документации к MySQL. Забираем этот файл.

Файл /etc/mysql/my.cnf (с комментариями в ключевых моментах):

Вот теперь-то и возникает та оишбка, о которой я говорил раньше. Нам надо перезагрузить сервер MySQL. Но сделать это не получится.

Останаливаем сервер БД и удаляеем следующие файлы:

Все. На этом настройки сервера баз данных завершились. Напоследок, если вы все же решились работать с базами данных через консоль, а не через phpmyadmin, то вот несколько полезных команд.

Все команды выполняются через консоль бд, т.е. сначала надо войти в нее:

Создание базы данных:

Назначение прав на базу данных (обращаем внимание на кавычки):

Восстановление базы данных из бекапа (эта команда выполняется просто из консоли):

 

5. Настройка PHP

Настроек PHP не так уж и много. Выполняем рекомендации и требования 1С-Битрикс и делаем следующие изменения в файле /usr/local/zend/etc/php.ini:

Перезагружаем веб-сервер:

 

6. Настройка FTP

Устанавливаем ProFTPD

В файле /etc/proftpd/proftpd.conf я лишь внес следующие изменения:

Как создавать пользователей? Легко, командой useradd
— d — домашнаяя директория пользователя (т.е. то, где находится сайт)
— g — группа, к которой принадлежит пользователь
— M — не надо создавать домашнюю директорию
— N — не создавать одноименную группу с именем пользователя

Далее задаем пароль для созданного пользователя

 

7. Настройка iptables

Создаем файл /etc/iptables.rules со следующим содержанием:

Далее, чтобы правлиа заработали выполняем следующую команду:

 

Оптимизация

Самый большой прирост в производительности (по крайней мере в мониторе производительности в Битрикс) дает включение APC-кеша. Для этого надо в файле bitrix/php_interface/dbconn.php добавить следующие строчки:

[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

About the Author:

2 комментария

  1. Андрей 12 Авг 2013 г. в 15:50 - Ответить

    Тоже самое легко делается через VIRTUALMIN+WEBMIN + в дальнейшем легче использовать и в тестировать целом

    Хорошая статья 4+

  2. Алексей 17 Июл 2014 г. в 01:54 - Ответить

    Все просто и понятно, твердая 5ка!! Правда поднимал сервак для Друпала :))

Оставить комментарий