====== Битрикс на CentOS 7 ======
Используемое ПО: CentOS 7, Nginx, MariaDB, PHP 7 FPM
===== Установка ПО =====
==== Установка CentOS 7 ====
Все как обычно, только выбрать тип файловой системы EXT4
После установки:
# yum update
# yum install mc bash-completion net-tools wget
==== Nginx ====
# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# yum install nginx -y
# systemctl enable nginx
==== PHP 7 ====
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# yum install php70w php70w-mysql php70w-fpm php70w-mcrypt php70w-mbstring php70w-gd php70w-devel php70w-opcache -y
==== MariaDB ====
# yum -y install mariadb-server mariadb
# systemctl enable mariadb
===== Настройка =====
==== SELinux ====
Традиционно отключаем дабы не создавало проблем.
Редактируем /etc/sysconfig/selinux
SELINUX=disabled
==== Создаем папки для сайта ====
# mkdir -p /home/www/example
# chown -R nginx:nginx /home/www/example
# chmod -R 755 /home/www/example
==== Настраиваем PHP ====
В /etc/php.ini меняем значения по умолчанию на указанное ниже:
cgi.fix_pathinfo=0
short_open_tag=on
mbstring.func_overload=2
mbstring.internal_encoding=UTF-8
date.timezone = Europe/Moscow #ваша_временная_зона
max_input_vars = 10000
post_max_size = 20M
upload_max_filesize = 20M
realpath_cache_size = 4096k
display_errors = On
memory_limit = 256M
В /etc/php.d/opcache.ini меняем значения по умолчанию на указанное ниже:
opcache.revalidate_freq=0
opcache.max_accelerated_files = 100000
Проверяем файл /etc/php.d/pdo_mysql.ini - если он существует, значит нужно отключить pdo_mysql т.к. оно не будет работать вместе с mysqli:
;extension=pdo_mysql.so
Вносим изменения в файл /etc/php-fpm.d/www.conf
user = nginx
group = nginx
listen.owner = nobody
listen.group = nobody
listen.mode = 0666
listen = /var/run/php-fpm/php-fpm.sock
Запускаем и добавляем в автозагрузку:
# systemctl enable php-fpm
# systemctl start php-fpm
Это создаст нужный нам php-fpm.sock файл, зададим ему права и владельца
# chmod 666 /run/php-fpm/php-fpm.sock
# chown nginx:nginx /run/php-fpm/php-fpm.sock
==== MariaDB ====
Запускаем скрипт первоначальной установки настроек безопасности:
# /usr/bin/mysql_secure_installation
При запуске этого скрипта будет запрошен пароль для root пользователя и будут заданы другие вопросы безопасности на которые нужно отвечать Y или N (желательно на все вопросы ответить Y).
Стандартные файлы конфигурации (/etc/my.cnf и содержимое папки /etc/my.cnf.d) заменяем прилагаемыми из этого архива: {{ :software:bitrix:mariadb-bitrix-configs.tar.bz2 |}}
Перед запуском необходимо убедиться что MariaDB не запущена и из папки /var/lib/mysql удалить файлы ib_logfile0...ib_logfileN
Запускаем MariaDB
# systemctl start mariadb
и проверяем логи - все должно быть без ошибок.
Создаем базу данных для Битрикс-сайта. Входим в консоль mysql под root-пользователем:
# mysql -h localhost -u root -p
(вводим пароль указанный в скрипте mysql_secure_installation)
Создаем базу в кодировке UTF-8:
> CREATE DATABASE `example_db` CHARACTER SET utf8 COLLATE utf8_unicode_ci;
> CREATE USER 'example_db_user'@'localhost' IDENTIFIED BY 'example_db_password';
> GRANT ALL PRIVILEGES ON example_db.* TO 'example_db_user'@'localhost';
> FLUSH PRIVILEGES;
> quit;
example_db - название базы
example_db_user - пользователь
example_db_password - пароль пользователя
==== Ngnix ====
Заменяем оригинальный файл /etc/nginx/nginx.conf прилагаемым: {{ :software:bitrix:nginx.conf.zip |}}
Создаем файл настроек виртуалхоста /etc/nginx/conf.d/example.conf - {{ :software:bitrix:example.conf.zip |}}
Измените его под себя (домен, пути и т.д.)
Меняем права на директорию сессий
# chown -R nginx:nginx /var/lib/php/session
Запускаем
# systemctl enable nginx
==== Порты для работы Bitrix ====
* 25 bitrix smtp сервер
* 80 http
* 443 https
* 5222 bitrix xmpp сервер
* 5223 bitrix xmpp сервер (ssl)
* 8090 ntlm авторизация
* 8891 ntlm авторизация (ssl)
firewall-cmd --zone=public --add-port=25/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=5222/tcp --permanent
firewall-cmd --zone=public --add-port=5223/tcp --permanent
firewall-cmd --zone=public --add-port=8890/tcp --permanent
firewall-cmd --zone=public --add-port=8891/tcp --permanent
firewall-cmd --zone=public --add-port=8893/tcp --permanent
firewall-cmd --zone=public --add-port=8894/tcp --permanent
firewall-cmd --reload
==== Финальная проверка ====
В конце концов перезагружаем сервер чтобы убедиться что все хорошо работает и успешно запускается.
==== Загружаем скрипты Битрикса ====
* Тест сервера на совместимость: http://dev.1c-bitrix.ru/download/scripts/bitrix_server_test.php
* Будет ругаться на "Обработка .htaccess" - это нормально nginx по сути не работает с этими файлами
* Также у меня скрипт ругался на отсутствие функций MySQL, но при установке все было нормально
* Установка Битрикса: http://www.1c-bitrix.ru/download/scripts/bitrixsetup.php
* Востановление из бекапа: http://dev.1c-bitrix.ru/download/scripts/restore.php
===== Установка Битрикса =====
Перед установкой проверяем соответствие требованиям: [[http://мой-сайт.ru/bitrix_server_test.php]]
Если все хорошо - открываем в браузере [[http://мой-сайт.ru/bitrixsetup.php]] и устанавливаем Битрикс
===== Действия после установки =====
Необходимо провести полное тестирование (Рабочий стол -> Настройки -> Инструменты -> Проверка системы) и добиться чтобы все было настроено согласно рекомендациям.
{{tag>битрикс bitrix centos_7 mariadb php_7 nginx }}