Где хранятся файлы mysql
mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name LIKE "%dir"'
Пример ответа:
mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name LIKE "%dir"'
Пример ответа:
cd -
Подключаем компонент:
composer require symfony/cache
require_once __DIR__ . '/vendor/autoload.php';
// создаём объект для управления кешом в файлах
$cache = new FilesystemAdapter(
// поддиректория в папке кеша
'mySubDirectoryName',
// время жизни кеша по умолчанию
86400,
// путь к папке кеша
__DIR__ . '/cache'
);
// ключ кеша
$cacheKey = 'testKey1';
// получаем по этому ключу данные из кеша
$value = $cache->get(
$cacheKey,
// если актуального кеша нет, то выполнится этот callable:
function () {
// тут мы получаем данные без кеша,
// и отдаём их в return,
// после этого данные сохранятся в кеш
$value = rand();
return $value;
}
);
Есть два места где независимо друг от друга хранятся переговорки:
Инфоблок "Календарь" / "Бронирование переговорных". Каждый раздел это переговорка. Для этих переговорок при создании события в календаре работает бронирование с периодичностью.
Таблица b_calendar_section
. Сюда попадают переговорки, которые добавляютя в попапе по кнопке "Настроить список". И у этих переговорок на уровне ядра отключено бронирование с периодичностью - выводится ошибка: "Бронирование переговорной периодическим событием недоступно".
./bin/console debug:router --show-controllers
Пофиксить её можно так:
В файле:
local/modules/sprint.migration/lib/versionconfig.php:207
добавить условие:
if (strpos($values['migration_dir'], ':') === false) { // @todo fix для windows
$values['migration_dir'] = Module::getDocRoot() . $values['migration_dir'];
}
Код всего блока:
if (empty($values['migration_dir'])) {
$values['migration_dir'] = Module::getPhpInterfaceDir() . '/migrations';
} elseif (empty($values['migration_dir_absolute'])) {
if (strpos($values['migration_dir'], ':') === false) { // @todo fix для windows
$values['migration_dir'] = Module::getDocRoot() . $values['migration_dir'];
}
}
du -s *|sort -nr|cut -f 2-|while read a;do du -hs $a;done
SET GLOBAL general_log = 'ON';
SET GLOBAL general_log = 'OFF';
Добавляем в папку /etc/systemd/system
файл docker-compose-myappname.service
со следующим содержимым:
[Unit]
Description=Docker Compose MyAppName Service
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/home/username/myappname
ExecStart=/usr/local/bin/docker-compose up -d
ExecStop=/usr/local/bin/docker-compose stop
TimeoutStartSec=0
User=username
Group=username
[Install]
WantedBy=multi-user.target
Включаем сервис:
sudo systemctl enable docker-compose-myappname
Устанавливаем apache2-utils, если утилита htpasswd отсутствует:
sudo apt-get install apache2-utils
Выполняем следующее, заменив username и password:
echo $(htpasswd -nbB username "password")
В результате получаем строку, которую можно указать в файле traefik.toml:
username:$2y$05$zBpWD5KcCDxw9durV29ZSOTbhi8Ltef7g/f0C5mLTrd0enQILkBRy
Для использования в файле docker-compose.yml нужно добавить экранирование символа $:
echo $(htpasswd -nbB username "password") | sed -e s/\\$/\\$\\$/g