- HTTP Server. For example: Apache.
- curl and curl php module (php2-curl)
- PHP 5.6+
- MySQL 4+ (Preferred:5.1.10+)
- PDO PHP Module for MySQL
- XML RPC Extension for PHP (for Groups Integration) - Not required for latest version.
You might need to disable the: sql_mode=only_full_group_by which is enabled by default in MySQL 5.7.5+
Note: People are using GrassBlade LRS on Nginx, IIS (on hosts like Azure). So the above requirements are more of recommendations.
Recommendations for IIS/Windows Server:
- You might need to disable WebDAV module. It blocks PUT requests, and some content that send PUT requests will not work. Generally, it can be disabled using web.config file. Sometimes you need to make other adjustments to enable PUT requests.
- There is a sample web.config file included in grassblade-lrs
Recommendations for NGINX:
- NGINX doesn't use .htaccess but uses a nginx.conf file. There is a sample nginx.conf file in grassblade-lrs, you can use it as reference to configure your NGINX server for URL rewrites.
Popular Hosting Services Used for GrassBlade LRS:
WPEngine (Due to recent changes, not recommended for databases with more than 500,000 statements)
For large databases and/or LRS traffic you might need a good Dedicated Server and a good Server Admin, or use GrassBlade Cloud LRS.
Doesn't work on:
Godaddy Managed WordPress Hosting. They won't disable mandatory caching.
The way to fix the "An Internal Error Has Occurred" resulting from "SELECT list is not in GROUP BY clause and contains nonaggregated column ... which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by" errors
is to disable the: sql_mode=only_full_group_by which is enabled by default in MySQL 5.7.5+
However if you do not want to disable this on your mysql server (or cannot) you can set it in the cakephp database config file.
in the file:
after the line:
'datasource' => 'Database/Mysql',
Add the following line:
'settings' => array('@@SESSION.sql_mode' => "(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''))",),