virus555
Постоялец
- Регистрация
- 22 Дек 2013
- Сообщения
- 109
- Реакции
- 182
- Автор темы
- #1
Устанавливать будем так называемый LEMP стек (Linux, Nginx, MySQL, PHP)
А если быть точнее, то CentOS 7, Nginx, MariaDB, PHP 7
Инструкция была составлена из десятка разных источников, но основное взято из этих:
- Для просмотра ссылки Войдиили Зарегистрируйся
- Для просмотра ссылки Войдиили Зарегистрируйся
- Для просмотра ссылки Войдиили Зарегистрируйся
Предполагается, что у вас уже установлена CentOS 7 minimal, настроена сеть и вы зашли под рутом. Cоветую ставить CentOS в файловой системе ext4, т.к. производительность немного выше чем у xfs (ссылка на мануал внизу).
И так поехали (осторожно - много букаф)
Для чего все это? - Чтобы добиться высокой производительности - Для просмотра ссылки Войдиили Зарегистрируйся
Не претендую на то, что данный мануал является 100% верным. Хотелось бы услышать советы более опытных, что еще не учтено.
Доп. материалы:
Установка memcached - Для просмотра ссылки Войдиили Зарегистрируйся
Установка CentOS в ФС ext4 - Для просмотра ссылки Войдиили Зарегистрируйся
Переводим агентов на cron - Для просмотра ссылки Войдиили Зарегистрируйся
UPD: Заменена репа для nginx на официальную (thx Maybe)
UPD2: Мелкие дополнения в php.ini (thx Для просмотра ссылки Войдиили Зарегистрируйся)
UPD3: Небольшое ускорение SQL
А если быть точнее, то CentOS 7, Nginx, MariaDB, PHP 7
Инструкция была составлена из десятка разных источников, но основное взято из этих:
- Для просмотра ссылки Войди
- Для просмотра ссылки Войди
- Для просмотра ссылки Войди
Предполагается, что у вас уже установлена CentOS 7 minimal, настроена сеть и вы зашли под рутом. Cоветую ставить CentOS в файловой системе ext4, т.к. производительность немного выше чем у xfs (ссылка на мануал внизу).
И так поехали (осторожно - много букаф)
Красным поотмечал, что вам нужно изменить под себя
yum update
УСТАНАВЛИВАЕМ NGINX
Добавляем репозиторий / устанавливаем nginx / запускаем и добавляем в автозагрузку
rpm -Uvh Для просмотра ссылки Войдиили Зарегистрируйся
yum install nginx -y
systemctl start nginx && systemctl enable nginx
УСТАНАВЛИВАЕМ PHP7 + МОДУЛИ
rpm -Uvh Для просмотра ссылки Войдиили Зарегистрируйся
rpm -Uvh Для просмотра ссылки Войдиили Зарегистрируйся
yum install php70w php70w-mysql php70w-fpm php70w-mcrypt php70w-mbstring php70w-gd php70w-devel php70w-opcache -y
правим файл /etc/php-fpm.d/Для просмотра ссылки Войдиили Зарегистрируйся
user = nginx
group = nginx
listen.owner = nobody
listen.group = nobody
listen.mode = 0666
listen = /var/run/php-fpm/php-fpm.sock
запускаем и добавляем в автозагрузку
systemctl start php-fpm && systemctl enable php-fpm
это создаст нужный нам php-fpm.sock файл, зададим ему права и владельца
chmod 666 /run/php-fpm/php-fpm.sock
chown nginx:nginx /run/php-fpm/php-fpm.sock
в /etc/php.ini меняем:
---------
cgi.fix_pathinfo=0
short_open_tag=on
mbstring.func_overload=2
mbstring.internal_encoding=UTF-8
date.timezone = Europe/Kiev
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
СТАВИМ БАЗУ ДАННЫХ:
yum -y install mariadb-server mariadb
systemctl start mariadb && systemctl enable mariadb
---------
Затем запускаем скрипт первоначальной установки настроек безопасности:
/usr/bin/mysql_secure_installation
При запуске этого скрипта будет запрошен пароль для root пользователя и будут заданы другие вопросы безопасности на которые нужно отвечать Y или N.
---------
После этого запускаем входим в консоль mysql под root-пользователем:
mysql -uroot -p
(вводим пароль указанный в скрипте mysql_secure_installation)
Создаем базу данных для Битрикс-сайта:
CREATE DATABASE `site_db` CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'site_db_user'@'localhost' IDENTIFIED BY 'site_db_password';
GRANT ALL PRIVILEGES ON site_db.* TO 'site_db_user'@'localhost';
Этим мы создали базу данных site_db в кодировке UTF-8 с пользователем site_db_user и паролем site_db_password
---------
Если планируется использование движка InnoDB, то нужно в файле /etc/my.cnf
прописать настройку в секцию [mysqld] + небольшой тюнинг:
innodb_flush_log_at_trx_commit=2
query_cache_size = 20mb
query_cache_limit=20mb
thread_cache_size=4
innodb_flush_method=O_DIRECT
transaction-isolation=READ-COMMITTED
---------
Отключаем SELinux — в файле /etc/sysconfig/selinux присваиваем параметру SELINUX флаг disabled:
SELINUX=disabled
перегружаемся
reboot
ДОБАВЛЯЕМ ХОСТ
mkdir -p /home/www/example
chown -R nginx:nginx /home/www/example
chmod -R 755 /home/www/example
Создаём файл настроек виртуалхоста /etc/nginx/conf.d/example.conf
Среди кучи примеров конфигов - вот единственный который корректно работает с битриксом. Копируем текст из файла и не забываем поменять example на свои данные. Example.conf - Для просмотра ссылки Войдиили Зарегистрируйся
Проверяем конфигурацию nginx
nginx -t
Должно выдаться что-то типа "syntax is ok". Перезапускаем сервис
systemctl restart nginx
Меняем права на директорию сессий
chown -R nginx:nginx /var/lib/php/session
Вот как бы и все!
Теперь можно зайти в папку нашего созданного хоста /home/www/example и закачать пару битриксовских скриптов:
0. yum install wget -y
1. wget Для просмотра ссылки Войдиили Зарегистрируйся
Проверяем что все в нашем сервере подходит для битрикса
И запускаем в браузере: Для просмотра ссылки Войдиили Зарегистрируйся
Может ругаться на "Обработка .htaccess" - это нормально nginx по сути не работает с этими файлами
Также у меня скрипт ругался на отсутствие функций MySQL, но при установке все было норм.
Качаем файл установки новых решений (2) или востановления из бекапа (3)
2. wget Для просмотра ссылки Войдиили Зарегистрируйся
3. wget Для просмотра ссылки Войдиили Зарегистрируйся
yum update
УСТАНАВЛИВАЕМ NGINX
Добавляем репозиторий / устанавливаем nginx / запускаем и добавляем в автозагрузку
rpm -Uvh Для просмотра ссылки Войди
yum install nginx -y
systemctl start nginx && systemctl enable nginx
УСТАНАВЛИВАЕМ PHP7 + МОДУЛИ
rpm -Uvh Для просмотра ссылки Войди
rpm -Uvh Для просмотра ссылки Войди
yum install php70w php70w-mysql php70w-fpm php70w-mcrypt php70w-mbstring php70w-gd php70w-devel php70w-opcache -y
правим файл /etc/php-fpm.d/Для просмотра ссылки Войди
user = nginx
group = nginx
listen.owner = nobody
listen.group = nobody
listen.mode = 0666
listen = /var/run/php-fpm/php-fpm.sock
запускаем и добавляем в автозагрузку
systemctl start php-fpm && systemctl enable php-fpm
это создаст нужный нам php-fpm.sock файл, зададим ему права и владельца
chmod 666 /run/php-fpm/php-fpm.sock
chown nginx:nginx /run/php-fpm/php-fpm.sock
в /etc/php.ini меняем:
---------
cgi.fix_pathinfo=0
short_open_tag=on
mbstring.func_overload=2
mbstring.internal_encoding=UTF-8
date.timezone = Europe/Kiev
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
СТАВИМ БАЗУ ДАННЫХ:
yum -y install mariadb-server mariadb
systemctl start mariadb && systemctl enable mariadb
---------
Затем запускаем скрипт первоначальной установки настроек безопасности:
/usr/bin/mysql_secure_installation
При запуске этого скрипта будет запрошен пароль для root пользователя и будут заданы другие вопросы безопасности на которые нужно отвечать Y или N.
---------
После этого запускаем входим в консоль mysql под root-пользователем:
mysql -uroot -p
(вводим пароль указанный в скрипте mysql_secure_installation)
Создаем базу данных для Битрикс-сайта:
CREATE DATABASE `site_db` CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'site_db_user'@'localhost' IDENTIFIED BY 'site_db_password';
GRANT ALL PRIVILEGES ON site_db.* TO 'site_db_user'@'localhost';
Этим мы создали базу данных site_db в кодировке UTF-8 с пользователем site_db_user и паролем site_db_password
---------
Если планируется использование движка InnoDB, то нужно в файле /etc/my.cnf
прописать настройку в секцию [mysqld] + небольшой тюнинг:
innodb_flush_log_at_trx_commit=2
query_cache_size = 20mb
query_cache_limit=20mb
thread_cache_size=4
innodb_flush_method=O_DIRECT
transaction-isolation=READ-COMMITTED
---------
Отключаем SELinux — в файле /etc/sysconfig/selinux присваиваем параметру SELINUX флаг disabled:
SELINUX=disabled
перегружаемся
reboot
ДОБАВЛЯЕМ ХОСТ
mkdir -p /home/www/example
chown -R nginx:nginx /home/www/example
chmod -R 755 /home/www/example
Создаём файл настроек виртуалхоста /etc/nginx/conf.d/example.conf
Среди кучи примеров конфигов - вот единственный который корректно работает с битриксом. Копируем текст из файла и не забываем поменять example на свои данные. Example.conf - Для просмотра ссылки Войди
Проверяем конфигурацию nginx
nginx -t
Должно выдаться что-то типа "syntax is ok". Перезапускаем сервис
systemctl restart nginx
Меняем права на директорию сессий
chown -R nginx:nginx /var/lib/php/session
Вот как бы и все!
Теперь можно зайти в папку нашего созданного хоста /home/www/example и закачать пару битриксовских скриптов:
0. yum install wget -y
1. wget Для просмотра ссылки Войди
Проверяем что все в нашем сервере подходит для битрикса
И запускаем в браузере: Для просмотра ссылки Войди
Может ругаться на "Обработка .htaccess" - это нормально nginx по сути не работает с этими файлами
Также у меня скрипт ругался на отсутствие функций MySQL, но при установке все было норм.
Качаем файл установки новых решений (2) или востановления из бекапа (3)
2. wget Для просмотра ссылки Войди
3. wget Для просмотра ссылки Войди
Для чего все это? - Чтобы добиться высокой производительности - Для просмотра ссылки Войди
Не претендую на то, что данный мануал является 100% верным. Хотелось бы услышать советы более опытных, что еще не учтено.
Доп. материалы:
Установка memcached - Для просмотра ссылки Войди
Установка CentOS в ФС ext4 - Для просмотра ссылки Войди
Переводим агентов на cron - Для просмотра ссылки Войди
UPD: Заменена репа для nginx на официальную (thx Maybe)
UPD2: Мелкие дополнения в php.ini (thx Для просмотра ссылки Войди
UPD3: Небольшое ускорение SQL
Последнее редактирование: