'default_permissions' => array(
'dir_mode' => 1528,
'file_mode' => 432,
'user' => 'apache',
'group' => 'apache',),
Системный администратор, у которого есть доступ к файлам установленной SuiteCRM, имеет дополнительные возможности по настройке системы, описанные в этом разделе.
Если система работает на компьютере под управлением ОС Linux, то вы можете поменять владельца файлов системы, а также контролировать доступ ко всем файлам и папкам системы путём настройки прав пользователя и группы.
Как минимум следующие файлы и папки должны быть доступны для записи веб-серверу:
./config.php
./config_override.php
./sugarcrm.log
./cache/ - включая все подпапки и файлы
./custom/ - включая все подпапки и файлы
./data/ - включая все подпапки и файлы
./modules/ - включая все подпапки и файлы
Файлы и папки SuiteCRM, работающей в ОС Windows и использующей веб-сервер IIS, должны иметь права пользователя IIS (IUSR_[computerName]).
Файлы и папки SuiteCRM, работающей в ОС Linux, должны иметь права пользователя веб-сервера (как правило это пользователь apache или www-data), а также находиться в той же группе.
В системе должны быть установлены следующие права:
2770 на все перечисленные выше папки
660 на файл config.php и на все файлы в перечисленных выше папках
В следующем примере показана настройка прав чтения, записи и выполнения для пользователя и группы Apache, прописанные в массиве default_permissions
файла config.php
:
'default_permissions' => array(
'dir_mode' => 1528,
'file_mode' => 432,
'user' => 'apache',
'group' => 'apache',),
Для параметра dir_mode
можно установить значение 1528, которое является десятичным эквивалентом восьмеричного значения 02770. Для параметра file_mode
можно установить значение 432, которое является десятичным эквивалентом восьмеричного значения 0660.
Если в указанный выше пример ввести восьмеричные значения, то система будет воспринимать их как десятичные и не обеспечит желаемых прав доступа.
Значения user и group определяют владельца созданных файлов. Если эти значения пусты, то для определения владельца файла и каталога будут использоваться настройки Apache. Эти значения должны быть установлены явно для пользователя и группы Apache на вашем сервере, и эти значения могут быть различными в зависимости от используемых вами настроек Apache и / или ОС Linux. Для обновления этих значений отредактируйте файл config_override.php
в корневом каталоге системы, добавив в него следующие строки:
$sugar_config['default_permissions']['user'] = '<пользователь Apache>';
$sugar_config['default_permissions']['group'] = '<группа Apache>';
Все указанные выше настройки будут влиять только на создаваемые файлы. Если необходимо сменить права или владельца для уже существующих файлов - выполните необходимые команды в консоли ОС.
Если вы как системный администратор управляете несколькими копиями SuiteCRM, то вы можете сохранить полный контроль над системами путём запрета внесения изменений в систему всем пользователям с административными правами. (Здесь необходимо отметить, что не следует путать системного администратора, имеющего доступ к базе данных и к файлам системы, и пользователя SuiteCRM с административными правами). Для этого можно заблокировать доступ пользователей к Мастеру обновлений, Конструктору модулей, а также запретить создавать резервные копии файлов системы.
Для выполнения блокировки в файле config_override.php
установите следующий параметр:
['admin_access_control'] => true
Чтобы быть уверенным, что пользователи системы с административными правами (но не имеющие доступа к файлу конфигурации config_override.php
) не могут загружать посторонние модули в систему, вы можете ограничить загрузку файлов рамками конкретной, контролируемой вами папки. Это позволит вам контролировать все загружаемые в систему модули.
Для контроля загрузки модулей выполните следующее:
В файле config_override.php
установите следующие параметры:
'use_common_ml_dir'=>'true',
'common_ml_dir'=>'ml_directory',
где ml_directory - имя папки, из которой будет доступна загрузка модулей в систему.
Чтобы предотвратить атаку по типу межсайтовой подделки запроса (XSRF), SuiteCRM хранит список допустимых сайтов, разрешённых в качестве источника запроса (HTTP referer). Если вы получили сообщение вроде "Possible Cross Site Request Forgery (XSRF) Attack Detected" от доверенного сайта, пытающегося получить доступ к системе, вы можете добавить URL этого сайта в список доверенных ссылок, поместив следующую строку в файл config_override.php
:
$sugar_config['http_referer']['list'][] = 'my-most-trusted-site.com';
Если необходимо добавить несколько сайтов - повторите эту строку для каждого сайта.
Системе требуется как минимум 512MB оперативной памяти, но в некоторых случаях требования к памяти могут быть увеличены. Например, операции импорта или массового обновления могут потребовать значительно большего объёма памяти в зависимости от объёма обновляемой базы данных и настроек системы. Для изменения объёма потребляемой памяти измените следующее значение в файле php.ini
:
memory_limit = 512M
Кроме того, параметр display_errors
должен быть выключен. Включение этого параметра может привести к отображению пользователям нежелательных сообщений. Чтобы отключить этот параметр, пропишите в php.ini
следующее:
display_errors = off
После изменения и сохранения файла php.ini необходимо перезагрузить веб-сервер.
По умолчанию любые обращения к базе данных, требующие выполнения более 1000 запросов, прерываются. Для операций импорта, экспорта, синхронизации и при работе в панели администрирования максимальное число запросов равняется 50000. Таким образом, прерываются все процессы, занимающие слишком много системных ресурсов. Если операции, выполняемые пользователем, требуют большего количества запросов, то появится соответствующее сообщение, например: Error: Query limit of 1000 reached for Leads module.
Вы можете изменить эти настройки по своему усмотрению, указав значения для переменных defaul_limit
, special_query_limit
и special_query_modules
в файле config_override.php
.
Пример увеличения количества запросов для всех модулей до 5000:
$sugar_config['resource_management']['default_limit'] = 5000; // по умолчанию - 1000
Установка переменной default_limit
в ноль снимает ограничение на количество запросов для всех модулей.
При необходимости для определённых модулей можно указать особые значения. В следующем примере ограничения сняты для модулей Контакты и Предварительные контакты, для всех остальных модулей используется значение по умолчанию:
$sugar_config['resource_management']['special_query_modules'][] = 'Leads';
$sugar_config['resource_management']['special_query_modules'][] = 'Contacts';
$sugar_config['resource_management']['special_query_limit'] = 0; // по умолчанию - 50000
Установка указанных переменных в минимальные значения может существенно ограничить пользователей при выполнении основных действий в системе. Установка указанных переменных в максимальные значения может значительно повлиять на производительность системы.
Все задания планировщика SuiteCRM как правило выполняются утилитой cron. Существует несколько параметров, которые можно прописать в файле config_override.php
, гарантирующих, что длительно выполняющиеся или невыполненные задания планировщика не помешают другим заданиям отработать своевременно.
max_cron_runtime
Параметр определяет, как долго может выполняться задание. Если задание превышает указанный лимит, его выполнение прерывается, и такое задание помечается как выполняемое в очереди заданий. При следующем запуске cron пропустит задание, которое превысило указанный лимит времени и будет выполнять следующее задание в очереди. Кроме того, если общее время выполнения по всем текущим заданиям превысит max_cron_runtime, то cron выполнит текущее задание и остановится. При следующем запуске cron будет выполнять следующее задание в очереди. По умолчанию значение max_cron_runtime равно 30 минутам.
$sugar_config['cron']['max_cron_runtime'] = 50
max_cron_jobs
Параметр определяет максимальное количество заданий, выполняющихся через Планировщик.
$sugar_config['cron']['max_cron_jobs'] = 10 // это значение по умолчанию
min_cron_interval
Параметр определяет минимальный интервал в минутах между выполнением заданий.
$sugar_config['cron']['min_cron_interval'] = 30 // это значение по умолчанию
max_retries
Параметр определяет количество повторных попыток выполнить задание, если предыдущая попытка закончилась неудачно.
$sugar_config['jobs']['max_retries'] = 5 // это значение по умолчанию
min_retry_interval
Параметр определяет интервал в минутах для повторного выполнения невыполненного задания
$sugar_config['jobs']['min_retry_interval'] = 30 // это значение по умолчанию
timeout
Параметр определяет интервал в секундах, в течении которого Планировщик будет пытаться выполнить задание. Если по истечении указанного интервала задание не выполнено, то оно будет помечено как невыполненное.
$sugar_config['jobs']['timeout'] = 86400; // это значение по умолчанию
По умолчанию Форма списка каждого модуля запоминает последнее установленное условие фильтрации, выполненное текущим пользователем. Если пользователь выполнит фильтрацию в модуле, затем перейдёт к другому модулю, а затем вновь откроет первый модуль, то будут отображены записи, соответствующие ранее выполненной фильтрации. И хотя это довольно удобно, это не всегда бывает нужно. К тому же такое поведение немного, но всё же снижает производительность системы.
Установите параметр $sugar_config['save_query']
в файле config_override.php
в одно из следующих значений:
Значение | Описание |
---|---|
all |
Система заполняет поля условиями фильтрации и выполняет её (стандартное поведение). |
no |
Система отменяет условия фильтрации и отображает все записи модуля. |
populate_only |
Система заполняет поля условиями фильтрации, но не выполняет её. |
Пример:
$sugar_config['save_query'] = 'populate_only';
Все файлы, загружаемые системой, хранятся в специальной папке загрузок, её расположение задаётся переменной upload_dir
в файле config_override.php
. По умолчанию это папка upload, находящаяся в папке установленной системы.
При необходимости её расположение может быть изменено, для этого в переменной upload_dir
задайте абсолютный путь к новому расположению папки загрузок.
Не забудьте скопировать все файлы из старой папки загрузок в новую.
Новая папка должна быть доступна для записи пользователю, под которым запущен веб-сервер.
В системе активно используется кэширование данных, что значительно повышает её производительность. Для хранения кэшированных данных (скомпилированных шаблонов, данных электронной почты и т.д.) используется специальная папка и её размер может быть достаточно велик. По умолчанию это папка cache, находящаяся в папке установленной системы. При необходимости её расположение может быть изменено, для этого в переменной cache_dir
, расположенной в файле config_override.php
, задайте абсолютный путь к новому расположению папки кэша. При этом на прежнем месте папки cache должна быть размещена ссылка, указывающая на новую папку кэша. Это необходимо для обеспечения доступа к некоторым закэшированным файлам системы.
Новая папка должна быть доступна для записи пользователю, под которым запущен веб-сервер.
В SuiteCRM версии 7.8 вместо Базового и Расширенного поиска был введён более компактный
функционал фильтров.
Если вам все же необходимо постоянное отображение полей фильтра в верхней части Формы списка
определённых модулей (как это было в более ранних версиях системы), добавьте соответствующий
массив по аналогии со следующим примером (для модулей Контрагенты, Пользователи и Сотрудники)
в файл config_override.php
:
'enable_legacy_search' =>
array (
0 => 'Accounts',
1 => 'Users',
2 => 'Employees', ),
либо соответствующие строки в файл config_override.php
, например:
$sugar_config['enable_legacy_search'][] = 'Accounts';
$sugar_config['enable_legacy_search'][] = 'Users';
$sugar_config['enable_legacy_search'][] = 'Employees';
При необходимости можно отображать функции той или иной субпанели не в виде пунктов выпадающего меню, а в виде кнопок. На рисунке ниже показан пример стандартной субпанели Мероприятия с выпадающим меню и изменённой субпанели ИСТОРИЯ в модуле Предварительные контакты:
Для изменения субпанели ИСТОРИЯ выполните следующее:
Создайте файл custom/Extension/modules/Leads/Ext/Layoutdefs/myCustomization.php
Добавьте в него строку:
$layout_defs['Leads']['subpanel_setup']['history']['flat'] = 1;
Выполните Быстрое восстановление.
Если необходимо отредактировать комбобокс, созданный в редакторе комбобоксов, то это можно сделать как при помощи редактора, так и прямым редактирование файла php, что может быть актуально при редактировании больших объёмов данных. Например, для созданных в этом примере динамических комбобоксов, содержащих русскоязычные значения, необходимо отредактировать файл /custom/include/language/ru_ru.lang.php
:
<?php
$GLOBALS['app_list_strings']['planet_list']=array (
'mars' => 'МАРС',
'jupiter' => 'ЮПИТЕР',
);
$GLOBALS['app_list_strings']['satellite_list']=array (
'mars_deimos' => 'ДЕЙМОС',
'mars_phobos' => 'ФОБОС',
'jupiter_io' => 'ИО',
'jupiter_europe' => 'ЕВРОПА',
'jupiter_ganymede' => 'ГАНИМЕД',
'jupiter_callisto' => 'КАЛЛИСТО',
);
По умолчанию пользователи SuiteCRM могут настраивать внешний вид Формы списка любого модуля, добавляя или скрывая те или иные колонки, как это описано в разделе Настройка колонок.
Однако, при необходимости администратор SuiteCRM может запретить пользователям изменять настройки колонок, скрыв кнопку настройки колонок в необходимом модуле.
Например, для скрытия кнопки настройки колонок в модуле Контрагенты добавьте в файл config_override.php
следующие строки:
$sugar_config['hideColumnFilter'] = [
'Accounts' => true,
];
Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.