Многие большие проекты требуют качественного сервера, а именно VDS, я не буду вдаваться в тонкости выбора, отмечу что на хостинг-провайдере IHC меня все вполне устраивает из расчета цена/качество. Монитор производительности Bitrix показывает наименьшее количество ошибок и бОльшее количество попугаев, даже с дефолтной настройкой сервера.
Так вот
После регистрации аккаунта и установки сервера требуется настройка его под Bitrix, т.к. Монитор производительности будет сообщать об ошибках присутствующих на сервере, тем самым занижать количество попугаев.
ЧТО делать в данном случае — НАСТРАИВАТЬ сервер под Bitrix!
Первым делом проверка системы Bitrix в php.ini начиная от кодировки используемой на сайте, до максимального времени выполнения скриптов и прочего, отсюда, идем в php.ini и правим его согласно ошибкам, которые указал модуль проверки системы.
Для себя я уже создал конфиг под bitrix
выкладываю
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 |
[PHP] engine = On short_open_tag = On asp_tags = Off precision = 14 output_buffering = 4096 zlib.output_compression = Off implicit_flush = Off unserialize_callback_func = serialize_precision = 17 open_basedir = disable_functions = disable_classes = realpath_cache_size = 4096k zend.enable_gc = On expose_php = On max_execution_time = 30 max_input_time = 60 memory_limit = 512M error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT display_errors = on display_startup_errors = Off log_errors = On log_errors_max_len = 1024 ignore_repeated_errors = Off ignore_repeated_source = Off report_memleaks = On track_errors = Off html_errors = On variables_order = "GPCS" request_order = "GP" register_argc_argv = Off auto_globals_jit = On post_max_size = 500M auto_prepend_file = auto_append_file = default_mimetype = "text/html" doc_root = user_dir = enable_dl = Off file_uploads = On upload_max_filesize = 512M max_file_uploads = 20 allow_url_fopen = On allow_url_include = Off default_socket_timeout = 60 [CLI Server] cli_server.color = On [Date] date.timezone = UTC [filter] [iconv] [intl] [sqlite] [sqlite3] [Pcre] [Pdo] [Pdo_mysql] pdo_mysql.cache_size = 2000 pdo_mysql.default_socket= [Phar] [mail function] sendmail_path = /usr/sbin/sendmail -t -i mail.add_x_header = On [SQL] sql.safe_mode = Off [ODBC] odbc.allow_persistent = On odbc.check_persistent = On odbc.max_persistent = -1 odbc.max_links = -1 odbc.defaultlrl = 4096 odbc.defaultbinmode = 1 [Interbase] ibase.allow_persistent = 1 ibase.max_persistent = -1 ibase.max_links = -1 ibase.timestampformat = "%Y-%m-%d %H:%M:%S" ibase.dateformat = "%Y-%m-%d" ibase.timeformat = "%H:%M:%S" [MySQL] mysql.allow_local_infile = On mysql.allow_persistent = On mysql.cache_size = 2000 mysql.max_persistent = -1 mysql.max_links = -1 mysql.default_port = mysql.default_socket = mysql.default_host = mysql.default_user = mysql.default_password = mysql.connect_timeout = 60 mysql.trace_mode = Off [MySQLi] mysqli.max_persistent = -1 mysqli.allow_persistent = On mysqli.max_links = -1 mysqli.cache_size = 2000 mysqli.default_port = 3306 mysqli.default_socket = mysqli.default_host = mysqli.default_user = mysqli.default_pw = mysqli.reconnect = Off [mysqlnd] mysqlnd.collect_statistics = On mysqlnd.collect_memory_statistics = Off [OCI8] [PostgreSQL] pgsql.allow_persistent = On pgsql.auto_reset_persistent = Off pgsql.max_persistent = -1 pgsql.max_links = -1 pgsql.ignore_notice = pgsql.log_notice = [Sybase-CT] sybct.allow_persistent = On sybct.max_persistent = -1 sybct.max_links = -1 sybct.min_server_severity = 10 sybct.min_client_severity = 10 [bcmath] bcmath.scale = [browscap] [Session] session.save_handler = files session.use_strict_mode = session.use_cookies = 1 session.use_only_cookies = 1 session.name = PHPSESSID session.auto_start = session.cookie_lifetime = session.cookie_path = / session.cookie_domain = session.cookie_httponly = session.serialize_handler = php session.gc_probability = 1 session.gc_divisor = 1000 session.gc_maxlifetime = 1440 session.referer_check = session.cache_limiter = nocache session.cache_expire = 180 session.use_trans_sid = session.hash_function = session.hash_bits_per_character = 5 url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" [MSSQL] mssql.allow_persistent = On mssql.max_persistent = -1 mssql.max_links = -1 mssql.min_error_severity = 10 mssql.min_message_severity = 10 mssql.compatibility_mode = Off mssql.secure_connection = Off [Assertion] [mbstring] mbstring.internal_encoding = UTF-8 mbstring.func_overload = [gd] [exif] [Tidy] tidy.clean_output = Off [soap] soap.wsdl_cache_enabled=1 soap.wsdl_cache_dir="/tmp" soap.wsdl_cache_ttl=86400 soap.wsdl_cache_limit = 5 [sysvshm] [ldap] ldap.max_links = -1 [mcrypt] [dba] [curl] [openssl] |
Данный код вставляем в файл php.ini
Скорректированы все параметры под Bitrix
*При условии что сайт работает в кодировке UTF-8, замените: [mbstring] на 1251, если ваш сайт в данной кодировке.
Настройка my.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links= skip-external-locking key_buffer_size = 256M max_allowed_packet = 32M table_open_cache = 256 sort_buffer_size = 1M read_buffer_size = 1M read_rnd_buffer_size = 4M myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size= 16M thread_concurrency = 8 #innodb_use_native_aio = 0 innodb_file_per_table max_connections=200 max_user_connections=50 wait_timeout=10 interactive_timeout=50 long_query_time=5 #slow_query_log=1 #slow_query_log_file=/var/log/mysql-slow-queries.log [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid # # include all files from the config directory # !includedir /etc/my.cnf.d |
Также замените содержимое файла my.conf на то что я указал
Таким образом практически все ошибке в Мониторе и в модуле проверки системы мы исключаем, необходимо еще установить прекомпилятор, чтобы на сервер не было большой нагрузки, устанавливаем zend opcache
Поочереди в терминале (Putty) выполняем установку, просто копируйте построчно и вставляйте в окно терминала, простым нажатием на правую кнопку мыши
1 2 3 4 5 6 7 |
yum install php-pear yum --enablerepo=remi install php-devel gcc wget http://pecl.php.net/get/zendopcache-7.0.4.tgz pecl install zendopcache-7.0.4.tgz echo "zend_extension=/usr/lib64/php/modules/opcache.so" > /etc/php.d/opcache.ini /etc/init.d/httpd restart yum install php-opcache |
Сделано. Идем дальше.
После установки zand opcache в папке (под доступом root) /etc/php.d должен появиться файл 10-opcache.ini, если не появился обновите содержимое папки рефрешем, если и так не появился, то просто создайте такой файл со следующим содержимым:
1 2 3 4 5 6 7 |
zend_extension=opcache.so opcache.enable=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=100000 opcache.revalidate_freq= opcache.blacklist_filename=/etc/php.d/opcache*.blacklist |
Монитор производительности может ругнуться на значение параметра: opcache.max_accelerated_files. Увеличте его до 100000 с вашего значения.
На этом ваш прекомпелятор установлен и настроен, теперь ошибок в системе быть не должно. Монитор производительности Bitrix покажет рекомендуемое количество попугаев.
После редактирования файлов не забудьте перезапустить сервер. Перезагрузку можно запустить прям из терминала командой reboot
После того как запустите проект, зайдите в меню производительность — Сервер БД, все параметры которые окажутся красными вы легко можете отредактировать в файле /etc/my.cnf
Статья будет обновлена чуть позже, сделал заметку чтобы не забыть пока делается проект, да и помочь тем кто нуждается.
Всегда Ваш Ковальски