<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DreamNetwork.it &#187; httpd</title>
	<atom:link href="http://www.dreamnetwork.it/tag/httpd/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dreamnetwork.it</link>
	<description>&#34;Salva un albero, uccidi un castoro!&#34;</description>
	<lastBuildDate>Tue, 18 Jan 2011 23:01:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Faulting application httpd.exe in php5ts.dll</title>
		<link>http://www.dreamnetwork.it/2009/07/faulting-application-httpd-exe-in-php5ts-dll/</link>
		<comments>http://www.dreamnetwork.it/2009/07/faulting-application-httpd-exe-in-php5ts-dll/#comments</comments>
		<pubDate>Sat, 25 Jul 2009 12:21:59 +0000</pubDate>
		<dc:creator>Xseven</dc:creator>
				<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[fault]]></category>
		<category><![CDATA[httpd]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php5ts.dll]]></category>

		<guid isPermaLink="false">http://www.dreamnetwork.it/?p=46</guid>
		<description><![CDATA[Nel mettere su un ambiente di test per script php su piattaforma Windows2003 server mi sono imbattuto in un errore che non avevo ancora avuto modo di affrontare ma che tuttosommato sembra abbastanza diffuso e infimo se non si ha la fortuna o furbizia immediata di pensare alla delicatezza degli elementi in gioco. Nello specifico [...]]]></description>
			<content:encoded><![CDATA[<p>Nel mettere su un ambiente di test per script php su piattaforma Windows2003 server mi sono imbattuto in un errore che non avevo ancora avuto modo di affrontare ma che tuttosommato sembra abbastanza diffuso e infimo se non si ha la fortuna o furbizia immediata di pensare  alla delicatezza degli elementi in gioco. Nello specifico l&#8217;ambiente di test era un Apache 2.2.11, un PHP 5.2.10 e un MySQL 5.1.36 che al momento della messa in opera del server consistevano nelle ultime versioni disponibili stabili. Il problema si è verificato nell&#8217;eseguire script con direttive che facessero riferimento alle <strong>funzioni di MySQL</strong> come ad esempio la semplice <em>mysql_connect()</em> e simili. Bastavano in effetti <strong>due righe di codice stringate per causare il crash di apache</strong> e relativo errore nell&#8217;EventLog di Windows. Badate bene, il servizio crashava ma nei log del programma non compariva proprio per via del crash, ma ovviamente si notava il problema in quanto il browser non caricava le pagine. L&#8217;errore dell&#8217;EventLog era una cosa così:</p>
<p><em>&#8220;<strong>Faulting application httpd.exe, version 2.2.11.0, faulting module php5ts.dll, version 5.2.10.10, fault address xxx</strong>&#8220;</em></p>
<p>La stessa problematica si verificava <strong>anche con IIS</strong>, il che in effetti mi portava ad escludere problemi tra versioni di Apache e PHP. Dopo essermi ricretinito per un pò a passare in lurgo e in largo i file di configurazione di Apache,PHP e MySQL in cerca di eventuali errori o dimenticanze di configurazione che potessero aver portato all&#8217;evidente crash del server ho avuto un&#8217;illuminazione ( sotto forma di messaggio mandatomi dal newsgroup dedicato di php <img src='http://www.dreamnetwork.it/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ). Php ha bisogno di una libreria di mysql per lavorare (<em>libmysql.dll</em>), libreria che si trova nella cartella di php che in genere viene aggiunta alla Windows Path e che quindi viene pescata automaticamente senza problemi. <strong>Problema</strong>: questa libreria esiste anche nella directory di MySQL stesso, e giustamente è quasi sicuramente una versione diversa da quella utilizzata da php. Che succede se si installa php e mysql sullo stesso server o pc che sia e si aggiunge sia php che mysql (l&#8217;installer stesso chiede se farlo o meno) alla Windows Path? <strong>Risposta</strong>: in base all&#8217;ordine di inserimento dei due, php caricherà la sua legittima libreria o quella distribuita con mysql, che per quanto legittima non corrisponde a quella che si aspetterebbe di caricare e che porta all&#8217;inevitabile crash del modulo di php php5ts.dll. Tuttosommato abbastanza semplice, ma difficilmente avrei pensato a una cosa simile senza il suggerimento di qualche esperto di php che magari ha già affrontato il problema, anche perchè ero impegnato nella configurazione iniziale e più portato a pensare ad una errata configurazione da parte mia o a un bug di quella specifica versione <img src='http://www.dreamnetwork.it/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Comunque sia, <strong>la risoluzione del problema</strong> è abbastanza semplice, basta <strong>invertire l&#8217;ordine nella Windows Path</strong> mettendo <strong>prima</strong> la directory di php e riavviare il server. Nel mio caso essendo che la directory di MySQL non mi serviva perchè la gestione veniva fatta da remoto e non avevo bisogno del comando mysql nel terminale <strong>ho direttamente rimosso la voce nella Windows Path</strong> <img src='http://www.dreamnetwork.it/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.dreamnetwork.it/2009/07/faulting-application-httpd-exe-in-php5ts-dll/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

