Если у вашего сайта появилась потребность в более мощном хостинге, тогда можно его поднять самим на наших виртуальных машинах.
Установка CentOS 7
Все как обычно, только выбрать тип файловой системы EXT4
После установки:
# yum update -y # yum install mc bash-completion net-tools wget -y
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/НАШСАЙТ # chown -R nginx:nginx /home/www/НАШСАЙТ # chmod -R 755 /home/www/НАШСАЙТ
Настраиваем 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 `НАША_БАЗА` CHARACTER SET utf8 COLLATE utf8_unicode_ci; > CREATE USER 'ПОЛЬЗОВАТЕЛЬ_БД'@'localhost' IDENTIFIED BY 'ПАРОЛЬ_БД'; > GRANT ALL PRIVILEGES ON НАША_БАЗА.* TO ' ПОЛЬЗОВАТЕЛЬ_БД '@'localhost'; > FLUSH PRIVILEGES; > quit;
Ngnix
Заменяем содержимое /etc/nginx/nginx.conf на:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
use epoll;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
server_tokens off;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
Создаем файл настроек виртуалхоста /etc/nginx/conf.d/example.conf
server {
listen 80;
ssi on;
gzip on;
gzip_comp_level 7;
gzip_types application/x-javascript application/javascript text/css;
server_name localhost ; #через пробел можно перечислять (192.168.1.1 localhost и т.д.)
charset off;
#disable_symlinks if_not_owner from=$root_path;
index index.php;
root $root_path;
set $root_path /home/www/sls-stroy;
set $php_sock unix:/var/run/php-fpm/php-fpm.sock;
access_log /var/log/nginx/test-access.log;
error_log /var/log/nginx/test-error.log;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
client_max_body_size 1024M;
client_body_buffer_size 4M;
#кому не надо убирать у домена www это не пишем
#if ($host = 'www.test.ru' ) {
#rewrite ^(.*)$ http://test.ru$1 permanent;
#}
location / {
try_files $uri $uri/ @bitrix;
}
location ~* /upload/.*\.(php|php3|php4|php5|php6|phtml|pl|asp|aspx|cgi|dll|exe|shtm|shtml|fcg|fcgi|fpl|asmx|pht|py|psp|rb|var)$ {
types {
text/plain text/plain php php3 php4 php5 php6 phtml pl asp aspx cgi dll exe ico shtm shtml fcg fcgi fpl asmx pht py psp rb var;
}
}
location ~ \.php$ {
try_files $uri @bitrix;
fastcgi_pass $php_sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f АДРЕС_ПОЧТЫ";
include fastcgi_params;
}
location @bitrix {
fastcgi_pass $php_sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/bitrix/urlrewrite.php;
fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f АДРЕС_ПОЧТЫ";
}
location ~* /bitrix/admin.+\.php$ {
try_files $uri @bitrixadm;
fastcgi_pass $php_sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f АДРЕС_ПОЧТЫ";
include fastcgi_params;
}
location @bitrixadm{
fastcgi_pass $php_sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/bitrix/admin/404.php;
fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f АДРЕС_ПОЧТЫ";
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
#
# block this locations for any installation
#
# ht(passwd|access)
location ~* /\.ht{ deny all; }
# repositories
location ~* /\.(svn|hg|git) { deny all; }
# bitrix internal locations
location ~* ^/bitrix/(modules|local_cache|stack_cache|managed_cache|php_interface) {
deny all;
}
# upload files
location ~* ^/upload/1c_[^/]+/ { deny all; }
# use the file system to access files outside the site (cache)
location ~* /\.\./ { deny all; }
location ~* ^/bitrix/html_pages/\.config\.php { deny all; }
location ~* ^/bitrix/html_pages/\.enabled { deny all; }
# Intenal locations
location ^~ /upload/support/not_image { internal; }
# Cache location: composite and general site
location ~* @.*\.html$ {
internal;
# disable browser cache, php manage file
expires -1y;
add_header X-Bitrix-Composite "Nginx (file)";
}
# Player options, disable no-sniff
location ~* ^/bitrix/components/bitrix/player/mediaplayer/player$ {
add_header Access-Control-Allow-Origin *;
}
# Accept access for merged css and js
location ~* ^/bitrix/cache/(css/.+\.css|js/.+\.js)$ {
expires 30d;
error_page 404 /404.html;
}
# Disable access for other assets in cache location
location ~* ^/bitrix/cache{ deny all; }
# Use nginx to return static content from s3 cloud storage
# /upload/bx_cloud_upload/<schema>.<backet_name>.<s3_point>.amazonaws.com/<path/to/file>
location ^~ /upload/bx_cloud_upload/ {
location ~ ^/upload/bx_cloud_upload/(http[s]?)\.([^/:]+)\.(s3|s3-us-west-1|s3-eu-west-1|s3-ap-southeast-1|s3-ap-northeast-1)\.amazonaws\.com/(.+)$ {
internal;
resolver 8.8.4.4;
proxy_method GET;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Server $host;
#proxy_max_temp_file_size 0;
proxy_pass $1://$2.$3.amazonaws.com/$4;
}
location ~* .*$ { deny all; }
}
# Static content
location ~* ^/(upload|bitrix/images|bitrix/tmp) {
expires 30d;
}
location ~* \.(css|js|gif|png|jpg|jpeg|ico|ogg|ttf|woff|eot|otf)$ {
error_page 404 /404.html;
expires 30d;
}
location = /404.html {
access_log off ;
}
}
Меняем права на директорию сессий
# 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
- Установка Битрикса: http://www.1c-bitrix.ru/download/scripts/bitrixsetup.php
- Востановление из бекапа: http://dev.1c-bitrix.ru/download/scripts/restore.php
812 ИТ-Сервис предоставляет услугу — аренда виртуального сервера, аренда выделенного сервера.