# Requirements

* ExpressionEngine 6.4 or greater
* MySQL 5.7 - 8.0 or MariaDB 10.2+ (InnoDB engine preferred. Install may fail if database engine is MyISAM)
* PHP 8.2 or greater
* php-xml module installed if importing from an XML file. If you see an error such as "Call to undefined function xml\_parser\_create()", [then this is likely the issue](https://stackoverflow.com/questions/45912836/call-to-undefined-function-xml-parser-create).
* cURL extension installed and enabled
* PCNTL extension installed and enabled

DataGrab will also attempt to set some PHP variables to improve it's performance and hopefully avoid errors. Below is a list of the variables it will set. For this reason, it is best to make sure `ini_set()` is not in PHP's `disabled_functions` directive (some shared hosting providers will disable `ini_set()`)

### **error\_log**

DataGrab will log its import status. This is used for self debugging, and when reporting support issues. [Read more about the logging options](/datagrab/docs/troubleshooting.md).

### **auto\_detect\_line\_endings**

When using the CSV import type, DataGrab will attempt to enable the `auto_detect_line_endings` option.

### **pcre.backtrack\_limit**

When using the Wordpress import type, DataGrab will attempt to set the `pcre.backtrack_limit` to `250000`.

### **memory\_limit**

When the import process runs, DataGrab will attempt to set the PHP `memory_limit` to `1G` for the duration of the import to help ensure the import is successful.&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.boldminded.com/datagrab/docs/requirements.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
