<?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%3AWiki_-_Debugging</id>
	<title>ICT:Wiki - Debugging - 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%3AWiki_-_Debugging"/>
	<link rel="alternate" type="text/html" href="https://mwiki.costasano.club/index.php?title=ICT:Wiki_-_Debugging&amp;action=history"/>
	<updated>2026-07-22T22:09:39Z</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:Wiki_-_Debugging&amp;diff=1644&amp;oldid=prev</id>
		<title>Mngr: Mngr moved page ICT:Debugging to ICT:Wiki - Debugging without leaving a redirect</title>
		<link rel="alternate" type="text/html" href="https://mwiki.costasano.club/index.php?title=ICT:Wiki_-_Debugging&amp;diff=1644&amp;oldid=prev"/>
		<updated>2026-05-14T16:55:06Z</updated>

		<summary type="html">&lt;p&gt;Mngr moved page &lt;a href=&quot;/index.php?title=ICT:Debugging&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;ICT:Debugging (page does not exist)&quot;&gt;ICT:Debugging&lt;/a&gt; to &lt;a href=&quot;/ICT:Wiki_-_Debugging&quot; title=&quot;ICT:Wiki - Debugging&quot;&gt;ICT:Wiki - Debugging&lt;/a&gt; without leaving a redirect&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:55, 14 May 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Mngr</name></author>
	</entry>
	<entry>
		<id>https://mwiki.costasano.club/index.php?title=ICT:Wiki_-_Debugging&amp;diff=6&amp;oldid=prev</id>
		<title>Mngr: Mngr heeft de pagina Debugging hernoemd tot ICT:Debugging zonder een doorverwijzing achter te laten</title>
		<link rel="alternate" type="text/html" href="https://mwiki.costasano.club/index.php?title=ICT:Wiki_-_Debugging&amp;diff=6&amp;oldid=prev"/>
		<updated>2025-12-25T20:26:03Z</updated>

		<summary type="html">&lt;p&gt;Mngr heeft de pagina &lt;a href=&quot;/index.php?title=Debugging&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Debugging (page does not exist)&quot;&gt;Debugging&lt;/a&gt; hernoemd tot &lt;a href=&quot;/index.php?title=ICT:Debugging&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;ICT:Debugging (page does not exist)&quot;&gt;ICT:Debugging&lt;/a&gt; zonder een doorverwijzing achter te laten&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:26, 25 December 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Mngr</name></author>
	</entry>
	<entry>
		<id>https://mwiki.costasano.club/index.php?title=ICT:Wiki_-_Debugging&amp;diff=5&amp;oldid=prev</id>
		<title>Mngr: Nieuwe pagina aangemaakt met &#039;= Troubleshooting Philosophy for MediaWiki &amp; Multi‑Layer Systems =  Maintaining this MediaWiki installation involves several interacting layers:  * IIS ARR (reverse proxy) * Apache * PHP-FPM * MediaWiki * ImageMagick * SELinux * Filesystem permissions * Hashed upload directories * Rewrite rules  When something breaks, it’s tempting to blame the most external or mysterious component — often the reverse proxy. This can lead to “ghost hunting”: chasing…&#039;</title>
		<link rel="alternate" type="text/html" href="https://mwiki.costasano.club/index.php?title=ICT:Wiki_-_Debugging&amp;diff=5&amp;oldid=prev"/>
		<updated>2025-12-24T18:04:08Z</updated>

		<summary type="html">&lt;p&gt;Nieuwe pagina aangemaakt met &amp;#039;= Troubleshooting Philosophy for MediaWiki &amp;amp; Multi‑Layer Systems =  Maintaining this MediaWiki installation involves several interacting layers:  * IIS ARR (reverse proxy) * Apache * PHP-FPM * MediaWiki * ImageMagick * SELinux * Filesystem permissions * Hashed upload directories * Rewrite rules  When something breaks, it’s tempting to blame the most external or mysterious component — often the reverse proxy. This can lead to “ghost hunting”: chasing…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Troubleshooting Philosophy for MediaWiki &amp;amp; Multi‑Layer Systems =&lt;br /&gt;
&lt;br /&gt;
Maintaining this MediaWiki installation involves several interacting layers:&lt;br /&gt;
&lt;br /&gt;
* IIS ARR (reverse proxy)&lt;br /&gt;
* Apache&lt;br /&gt;
* PHP-FPM&lt;br /&gt;
* MediaWiki&lt;br /&gt;
* ImageMagick&lt;br /&gt;
* SELinux&lt;br /&gt;
* Filesystem permissions&lt;br /&gt;
* Hashed upload directories&lt;br /&gt;
* Rewrite rules&lt;br /&gt;
&lt;br /&gt;
When something breaks, it’s tempting to blame the most external or mysterious component — often the reverse proxy. This can lead to “ghost hunting”: chasing symptoms that look like proxy failures but originate elsewhere.&lt;br /&gt;
&lt;br /&gt;
This page outlines a disciplined approach that avoids that trap.&lt;br /&gt;
&lt;br /&gt;
== 1. Start with direct, observable facts ==&lt;br /&gt;
&lt;br /&gt;
Before forming a hypothesis, gather concrete evidence:&lt;br /&gt;
&lt;br /&gt;
* Can the file be read on disk?&lt;br /&gt;
* Does &amp;lt;code&amp;gt;curl -I&amp;lt;/code&amp;gt; return a status code?&lt;br /&gt;
* Does Apache log the request?&lt;br /&gt;
* Does MediaWiki show a specific error?&lt;br /&gt;
* Does the file exist in the hashed directory?&lt;br /&gt;
&lt;br /&gt;
This prevents assumptions from steering the investigation.&lt;br /&gt;
&lt;br /&gt;
== 2. Test each layer independently ==&lt;br /&gt;
&lt;br /&gt;
A multi-layer system fails in multi-layer ways. Always test each layer in isolation:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Filesystem:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;ls -lZ&amp;lt;/code&amp;gt;, verify ownership and SELinux&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Apache:&amp;#039;&amp;#039;&amp;#039; direct URL tests, static file serving&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Rewrite rules:&amp;#039;&amp;#039;&amp;#039; confirm exceptions for static files&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;MediaWiki:&amp;#039;&amp;#039;&amp;#039; file page metadata, thumbnail generation&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ImageMagick:&amp;#039;&amp;#039;&amp;#039; command-line conversion&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Reverse proxy:&amp;#039;&amp;#039;&amp;#039; external vs internal URL behavior&lt;br /&gt;
&lt;br /&gt;
This reveals where the failure actually occurs.&lt;br /&gt;
&lt;br /&gt;
== 3. Avoid the “reverse proxy reflex” ==&lt;br /&gt;
&lt;br /&gt;
Reverse proxies are often blamed first because they sit at the edge and feel like the “gatekeeper.”  &lt;br /&gt;
But many failures originate deeper:&lt;br /&gt;
&lt;br /&gt;
* Apache rewrite rules&lt;br /&gt;
* MediaWiki switching from GD → ImageMagick&lt;br /&gt;
* SELinux blocking read access&lt;br /&gt;
* PHP-FPM socket issues&lt;br /&gt;
* Incorrect &amp;lt;code&amp;gt;$wgUploadPath&amp;lt;/code&amp;gt;&lt;br /&gt;
* Missing static-file exceptions&lt;br /&gt;
&lt;br /&gt;
Only blame the proxy when evidence points there.&lt;br /&gt;
&lt;br /&gt;
== 4. Prefer reproducible tests over assumptions ==&lt;br /&gt;
&lt;br /&gt;
A single &amp;lt;code&amp;gt;curl&amp;lt;/code&amp;gt; test can eliminate entire categories of hypotheses:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -I https://mwiki.example.com/images/x/xy/file.png&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Interpretation:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;200 OK&amp;lt;/code&amp;gt; → routing works&lt;br /&gt;
* &amp;lt;code&amp;gt;404&amp;lt;/code&amp;gt; → proxy or rewrite issue&lt;br /&gt;
* &amp;lt;code&amp;gt;403&amp;lt;/code&amp;gt; → permissions or SELinux&lt;br /&gt;
* &amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt; → PHP/ImageMagick&lt;br /&gt;
* blank page → rewrite rule catching static files&lt;br /&gt;
&lt;br /&gt;
This is faster and more reliable than guesswork.&lt;br /&gt;
&lt;br /&gt;
== 5. Remember that MediaWiki changes behavior when ImageMagick is installed ==&lt;br /&gt;
&lt;br /&gt;
This is a subtle but important point:&lt;br /&gt;
&lt;br /&gt;
* With &amp;#039;&amp;#039;&amp;#039;GD&amp;#039;&amp;#039;&amp;#039;, MediaWiki reads images directly from disk.&lt;br /&gt;
* With &amp;#039;&amp;#039;&amp;#039;ImageMagick&amp;#039;&amp;#039;&amp;#039;, MediaWiki validates images via URL and MIME type.&lt;br /&gt;
&lt;br /&gt;
This means:&lt;br /&gt;
&lt;br /&gt;
* A misconfigured rewrite rule may be invisible under GD.&lt;br /&gt;
* The same misconfiguration becomes catastrophic under ImageMagick.&lt;br /&gt;
&lt;br /&gt;
This explains why image failures sometimes appear “out of nowhere.”&lt;br /&gt;
&lt;br /&gt;
== 6. Document the fix, not just the cause ==&lt;br /&gt;
&lt;br /&gt;
Future admins benefit from:&lt;br /&gt;
&lt;br /&gt;
* The symptom&lt;br /&gt;
* The root cause&lt;br /&gt;
* The exact fix&lt;br /&gt;
* The reasoning behind it&lt;br /&gt;
&lt;br /&gt;
This prevents rediscovering the same issue years later.&lt;br /&gt;
&lt;br /&gt;
== 7. Stay calm and methodical ==&lt;br /&gt;
&lt;br /&gt;
The most important principle:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Don’t let any single hypothesis dominate before the evidence supports it.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This avoids tunnel vision and keeps the investigation grounded.&lt;/div&gt;</summary>
		<author><name>Mngr</name></author>
	</entry>
</feed>