<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mwiki.costasano.club/index.php?action=history&amp;feed=atom&amp;title=ICT%3AVisualEditor_installation</id>
	<title>ICT:VisualEditor installation - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mwiki.costasano.club/index.php?action=history&amp;feed=atom&amp;title=ICT%3AVisualEditor_installation"/>
	<link rel="alternate" type="text/html" href="https://mwiki.costasano.club/index.php?title=ICT:VisualEditor_installation&amp;action=history"/>
	<updated>2026-07-22T23:32:08Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://mwiki.costasano.club/index.php?title=ICT:VisualEditor_installation&amp;diff=8&amp;oldid=prev</id>
		<title>Mngr: Nieuwe pagina aangemaakt met &#039;= VisualEditor Integration on AlmaLinux MediaWiki =  == Purpose == This page documents the exact VisualEditor configuration used on the AlmaLinux MediaWiki server behind the IIS reverse proxy.   It is written for future administrators who need to:  * Understand how VisualEditor is enabled * Verify the configuration after upgrades * Troubleshoot REST/Parsoid issues * Avoid historical detours that are no longer relevant  The key point: &#039;&#039;&#039;VisualEditor works out…&#039;</title>
		<link rel="alternate" type="text/html" href="https://mwiki.costasano.club/index.php?title=ICT:VisualEditor_installation&amp;diff=8&amp;oldid=prev"/>
		<updated>2025-12-27T10:23:28Z</updated>

		<summary type="html">&lt;p&gt;Nieuwe pagina aangemaakt met &amp;#039;= VisualEditor Integration on AlmaLinux MediaWiki =  == Purpose == This page documents the exact VisualEditor configuration used on the AlmaLinux MediaWiki server behind the IIS reverse proxy.   It is written for future administrators who need to:  * Understand how VisualEditor is enabled * Verify the configuration after upgrades * Troubleshoot REST/Parsoid issues * Avoid historical detours that are no longer relevant  The key point: &amp;#039;&amp;#039;&amp;#039;VisualEditor works out…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= VisualEditor Integration on AlmaLinux MediaWiki =&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
This page documents the exact VisualEditor configuration used on the AlmaLinux MediaWiki server behind the IIS reverse proxy.  &lt;br /&gt;
It is written for future administrators who need to:&lt;br /&gt;
&lt;br /&gt;
* Understand how VisualEditor is enabled&lt;br /&gt;
* Verify the configuration after upgrades&lt;br /&gt;
* Troubleshoot REST/Parsoid issues&lt;br /&gt;
* Avoid historical detours that are no longer relevant&lt;br /&gt;
&lt;br /&gt;
The key point: &amp;#039;&amp;#039;&amp;#039;VisualEditor works out of the box&amp;#039;&amp;#039;&amp;#039; because the stack is now clean, predictable, and standard.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
* VisualEditor: &amp;#039;&amp;#039;&amp;#039;enabled and working&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* REST/Parsoid: handled by MediaWiki’s built‑in REST interface&lt;br /&gt;
* Reverse proxy: no VisualEditor‑specific rules required&lt;br /&gt;
* AlmaLinux Apache: standard MediaWiki rewrite rules only&lt;br /&gt;
* No Synology/WebStation/nginx interference anymore&lt;br /&gt;
&lt;br /&gt;
If MediaWiki works with clean URLs, VisualEditor works too.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Actual Configuration Snippet =&lt;br /&gt;
&lt;br /&gt;
This is the exact snippet currently active in &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
#---VisualEditor -----------&lt;br /&gt;
&lt;br /&gt;
wfLoadExtension( &amp;#039;VisualEditor&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
$wgDefaultUserOptions[&amp;#039;visualeditor-enable&amp;#039;] = 1;&lt;br /&gt;
$wgVisualEditorEnableWikitext = true;&lt;br /&gt;
&lt;br /&gt;
$wgVisualEditorRestbaseURL = &amp;#039;/rest.php&amp;#039;;&lt;br /&gt;
$wgVisualEditorFullRestbaseURL = &amp;#039;https://mwiki.costasano.club/rest.php&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
$wgVirtualRestConfig[&amp;#039;modules&amp;#039;][&amp;#039;parsoid&amp;#039;] = [&lt;br /&gt;
    &amp;#039;url&amp;#039; =&amp;gt; &amp;#039;http://localhost/rest.php&amp;#039;,&lt;br /&gt;
    &amp;#039;domain&amp;#039; =&amp;gt; &amp;#039;localhost&amp;#039;,&lt;br /&gt;
    &amp;#039;forwardCookies&amp;#039; =&amp;gt; true&lt;br /&gt;
];&lt;br /&gt;
&lt;br /&gt;
#---end VisualEditor --------------&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Explanation of Each Setting =&lt;br /&gt;
&lt;br /&gt;
== Extension loading ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;wfLoadExtension( &amp;#039;VisualEditor&amp;#039; );&amp;lt;/source&amp;gt;&lt;br /&gt;
Loads the VisualEditor extension.&lt;br /&gt;
&lt;br /&gt;
== Enable VisualEditor for all users ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;$wgDefaultUserOptions[&amp;#039;visualeditor-enable&amp;#039;] = 1;&amp;lt;/source&amp;gt;&lt;br /&gt;
Ensures VisualEditor is enabled by default.&lt;br /&gt;
&lt;br /&gt;
== Enable wikitext mode inside VisualEditor ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;$wgVisualEditorEnableWikitext = true;&amp;lt;/source&amp;gt;&lt;br /&gt;
Allows switching between VisualEditor and wikitext.&lt;br /&gt;
&lt;br /&gt;
== RESTBase / Parsoid endpoints ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgVisualEditorRestbaseURL = &amp;#039;/rest.php&amp;#039;;&lt;br /&gt;
$wgVisualEditorFullRestbaseURL = &amp;#039;https://mwiki.costasano.club/rest.php&amp;#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These define where VisualEditor finds the REST interface:&lt;br /&gt;
&lt;br /&gt;
* Relative URL for internal calls&lt;br /&gt;
* Full URL for browser‑side calls&lt;br /&gt;
&lt;br /&gt;
== Virtual REST configuration ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgVirtualRestConfig[&amp;#039;modules&amp;#039;][&amp;#039;parsoid&amp;#039;] = [&lt;br /&gt;
    &amp;#039;url&amp;#039; =&amp;gt; &amp;#039;http://localhost/rest.php&amp;#039;,&lt;br /&gt;
    &amp;#039;domain&amp;#039; =&amp;gt; &amp;#039;localhost&amp;#039;,&lt;br /&gt;
    &amp;#039;forwardCookies&amp;#039; =&amp;gt; true&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This works because:&lt;br /&gt;
&lt;br /&gt;
* MediaWiki calls Parsoid internally via &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;&lt;br /&gt;
* No HTTPS or hostname mismatch&lt;br /&gt;
* No reverse proxy involvement&lt;br /&gt;
* Cookies are forwarded for logged‑in editing&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Why This Works Now =&lt;br /&gt;
VisualEditor is sensitive to:&lt;br /&gt;
&lt;br /&gt;
* protocol mismatches  &lt;br /&gt;
* hostname mismatches  &lt;br /&gt;
* broken reverse proxy rewrites  &lt;br /&gt;
* missing REST endpoints  &lt;br /&gt;
* inconsistent &amp;lt;code&amp;gt;$wgServer&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Your environment is now:&lt;br /&gt;
&lt;br /&gt;
* clean  &lt;br /&gt;
* consistent  &lt;br /&gt;
* predictable  &lt;br /&gt;
* free of Synology nginx overrides  &lt;br /&gt;
* free of DSM regeneration side effects  &lt;br /&gt;
&lt;br /&gt;
So VisualEditor finally behaves exactly as documented.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Verification Checklist =&lt;br /&gt;
After upgrades or changes, verify:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/rest.php&amp;lt;/code&amp;gt; loads&lt;br /&gt;
* &amp;lt;code&amp;gt;/api.php&amp;lt;/code&amp;gt; loads&lt;br /&gt;
* Editing a page opens VisualEditor&lt;br /&gt;
* Saving works&lt;br /&gt;
* No errors in browser console&lt;br /&gt;
* No 403/404/502 errors in logs&lt;br /&gt;
&lt;br /&gt;
If all of these pass, VisualEditor is healthy.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting (for future admins) =&lt;br /&gt;
&lt;br /&gt;
== VisualEditor stuck on loading ==&lt;br /&gt;
* Check browser console for REST errors&lt;br /&gt;
* Verify &amp;lt;code&amp;gt;/rest.php&amp;lt;/code&amp;gt; is reachable externally&lt;br /&gt;
* Verify &amp;lt;code&amp;gt;http://localhost/rest.php&amp;lt;/code&amp;gt; is reachable internally&lt;br /&gt;
&lt;br /&gt;
== 403 or 404 errors ==&lt;br /&gt;
* Check Apache vhost&lt;br /&gt;
* Check SELinux (if enforcing)&lt;br /&gt;
* Check IIS reverse proxy rules&lt;br /&gt;
&lt;br /&gt;
== Mixed content errors ==&lt;br /&gt;
* Ensure &amp;lt;code&amp;gt;$wgServer&amp;lt;/code&amp;gt; uses &amp;lt;code&amp;gt;https://mwiki.costasano.club&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Change History =&lt;br /&gt;
&lt;br /&gt;
; 2025‑12‑27 — VisualEditor re‑enabled  &lt;br /&gt;
: The VisualEditor snippet was restored after the MediaWiki environment was stabilized with clean URLs and a simplified reverse proxy.  &lt;br /&gt;
: It worked immediately without any additional changes.&lt;/div&gt;</summary>
		<author><name>Mngr</name></author>
	</entry>
</feed>