====== Битрикс на 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 }}