To help anyone to come after me, I believe this is due to using MariaDB instead of MySQL.
I suspect it may be because MySQL stores JSON data type as a binary format, instead of the more performant LONGTEXT alias that MariaDB uses.
https://mariadb.com/kb/en/incompatibilities-and-feature-differences-between-mariadb-11-4-and-mysql-8-/
Hi Synergy6666,
Sorry to hear that you encountered that problem.
I'm afraid we don't often Zenario with MariaDB. As you know, it ought to be compatible but there are a few differences, and we don't have the time to adapt Zenario to handle them nicely at the moment.
I would suggest you try using MySQL 8.0 and please feel free to share any further queries or issues here.
thank you,
Tony
I'm trying to use a reverse proxy for SSL offloading. It looks like zenario puts in the protocol for all the links for scripts and resources. This means the browser blocks loading mixed (http and https) content.
Is there a way to configure zenario to use protocol relative links (//) instead of protocol specific links (http://) during page generation?
Failing that, can we overwrite the site URL with HTTPS?
For example, how about
<base href="//zenario.example.com/">
instead of
<base href="http://zenario.example.com/">
Interesting question, but I could do with a bit more information.
When Zenario makes internal links (e.g. one page links to another page), you should find by looking in the source code that these are relative links (e.g. a href="about-us.html" or similar.)
So I believe it should be your browser adding the https part at the beginning.
Are you able to be more specific about where these links are, that contain http?
Please use the contact form to send me info that you don't want to post in the forum publicly.
Just in case anyone else finds this post, and you're using a load balancer or reverse proxy, you need to set USE_FORWARDED_IP constant in the zenario_siteconfig.php file.
define('USE_FORWARDED_IP',TRUE);
I spent some time going through the code to try to figure out what is happening.
Zenario will only bother to check HTTP_X_FORWARDED_PROTO headers your proxy sends if you set USE_FORWARDED_IP config constant first.
I'm not sure if there is a reason to have protocol checking disabled by default.
A suggestion for improvement would be to not rely on USE_FORWARDED_IP constant before checking the protocol.
Or, maybe an option in the installer to ask if this installation will be used behind a load balancer or proxy, then the installer could set the USE_FORWARDED_IP constant automatically during install. The initial installer would still not work with a https proxy until that setting is set.
My preference would just be to return '//' instead of 'http://' or 'https://' when building absolute links in \ze\link::absolute() or \ze\link::absoluteIfNeeded() which is a bit cleaner and doesn't require any checks. There may be other places in the application that require knowing the protocol, but I didn't check. For generating HTML, '//' should work for any situation.
const absoluteFromTwig = true;
public static function absolute() {
return '//'. \ze\link::host(). SUBDIRECTORY;
}
public static function absoluteIfNeeded($cookieFree = true) {
if ($cookieFree && $cookieFreeDomain = \ze\link::cookieFreeDomain()) {
return $cookieFreeDomain;
} elseif (\ze::$mustUseFullPath) {
return '//'. \ze\link::host(). SUBDIRECTORY;
} else {
return '';
}
}
New installation of Zenario 9.7.61188
Debian Bookworm. PHP v8.2 Mariadb 11.4 (like MySQL 8.0)
The Organizer page seems to work fine.
The home page just shows a white screen and returns a 500 error to the browser.
These lines in the error log that seem to correspond with trying to access the home page.