Битрикс на 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
- 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 и устанавливаем Битрикс
Действия после установки
Необходимо провести полное тестирование (Рабочий стол → Настройки → Инструменты → Проверка системы) и добиться чтобы все было настроено согласно рекомендациям.