Содержание

Битрикс на 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) заменяем прилагаемыми из этого архива: 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 прилагаемым: nginx.conf.zip

Создаем файл настроек виртуалхоста /etc/nginx/conf.d/example.conf - example.conf.zip

Измените его под себя (домен, пути и т.д.)

Меняем права на директорию сессий

# chown -R nginx:nginx /var/lib/php/session

Запускаем

# systemctl enable nginx

Порты для работы Bitrix

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://мой-сайт.ru/bitrix_server_test.php

Если все хорошо - открываем в браузере http://мой-сайт.ru/bitrixsetup.php и устанавливаем Битрикс

Действия после установки

Необходимо провести полное тестирование (Рабочий стол → Настройки → Инструменты → Проверка системы) и добиться чтобы все было настроено согласно рекомендациям.