diff --git a/htdocs/api/class/api.class.php b/htdocs/api/class/api.class.php index 6561355edbe..445f7493e88 100644 --- a/htdocs/api/class/api.class.php +++ b/htdocs/api/class/api.class.php @@ -58,6 +58,18 @@ class DolibarrApi $this->db = $db; $production_mode = (empty($conf->global->API_PRODUCTION_MODE) ? false : true); + + if ($production_mode) { + // Create the directory Defaults::$cacheDirectory if it does not exist. If dir does not exist, 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)); diff --git a/htdocs/core/class/utils.class.php b/htdocs/core/class/utils.class.php index ed0a98d63ec..849e5021d72 100644 --- a/htdocs/core/class/utils.class.php +++ b/htdocs/core/class/utils.class.php @@ -177,7 +177,7 @@ class Utils } // Recreate temp dir that are not automatically recreated by core code for performance purpose, we need them - if (!empty($conf->api->enabled)) { + if (isModEnabled('api')) { dol_mkdir($conf->api->dir_temp); } dol_mkdir($conf->user->dir_temp);