Closed stevegrunwell closed 7 years ago
In the WordPress.org thread, the user confirmed that his site is running libxml 2.7.6, so it appears that the second condition is the case. I've advised he reach out to his host and inquire about an update, considering libxml 2.7.6 was released in October of 2009.
When I mentioned an older version of libxml being out in the wild, @jasondewitt pointed out that the server was likely running CentOS 6, which ships with an outdated version (specifically, 2.7.6) of libxml. There are ways to update it, but it will be dependent upon what the host is willing to do.
Heard back from Steve in the support thread, and it appears that a) CentOS 6 was indeed the culprit and b) his host was unable/unwilling to update to CentOS 7, a different distribution, and/or upgrade libxml. As a result, Steve will stick with HTML exports from Airstory and pasting them into WordPress.
While this answers the question of why it wasn't working for him (outdated version of libxml), it raises the question of should it work, even on an outdated version of libxml?
Some high-level numbers, powered by W3Techs:
I haven't been able to find solid numbers regarding the percentage of CentOS 6 vs 7 in the wild (at least, during a cursory Google search), but considering CentOS 7 was released in July of 2014, I'd expect a non-negligible chunk of that 4% of WordPress sites are running an up-to-date version of libxml.
If even 50% of CentOS-backed WordPress sites are still running CentOS 6, that's a maximum of 2% of WordPress sites, only a fraction of which are currently or likely to become Airstory users. In those rare cases, like Mr. Williams, users are still able to export from Airstory to plain HTML, then paste that content into WordPress. It's not as cool as "click a button and automatically send content from Airstory to WordPress," but users are still able to write in Airstory and publish in WordPress.
The plugin won't be useful for this small subset of users, but between the new compatibility check introduced in #49 (along with noting the requirement in the README files) and the fact that users are still able to manually move content between platforms, I recommend that we focus our attention elsewhere.
From the WordPress.org repo:
Looking at the issue, it seems like it could be one of two things:
DOMDocument::loadHTML()
to choke, causing it to misinterpret the arguments. This would be addressed by the code merged in #45.LIBXML_HTML_NODEFDTD
and/orLIBXML_HTML_NOIMPLIED
constants not being defined.The fact that only
LIBXML_HTML_NODEFDTD
appears on both of the lines referenced in the error log leads me to think that an outdated version of libxml be the culprit, since PHP has this nasty habit of "oh, that constant's undefined so let's interpret it as a string literal" (which is consistent with the error messages).According to the PHP documentation, the
LIBXML_HTML_NODEFDTD
constant is only defined in libxml 2.7.8, which was released in November of 2010. While I'd hope that the server isn't that far behind, it is worth adding the libxml version to the compatibility check within Airstory.