FIX Error 500 on api if cache is on and directory does not exists

This commit is contained in:
Laurent Destailleur
2025-10-31 16:59:09 +01:00
parent 57e1c22753
commit 6145bcc449

View File

@@ -59,6 +59,18 @@ class DolibarrApi
$this->db = $db;
$production_mode = getDolGlobalBool('API_PRODUCTION_MODE');
if ($production_mode) {
// Create the directory Defaults::$cacheDirectory if it does not exists. If dir does not exists, using production_mode generates an error 500.
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
if (!dol_is_dir(Defaults::$cacheDirectory)) {
dol_mkdir(Defaults::$cacheDirectory, DOL_DATA_ROOT);
}
if (getDolGlobalString('MAIN_API_DEBUG')) {
dol_syslog("Debug API construct::cacheDirectory=".Defaults::$cacheDirectory, LOG_DEBUG, 0, '_api');
}
}
$this->r = new Restler($production_mode, $refreshCache);
$urlwithouturlroot = preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root));