<?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>Building the Web &#187; troubleshooting</title>
	<atom:link href="http://www.filonov.com/blog/tags/troubleshooting/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.filonov.com/blog</link>
	<description>Web development notes, tips, tricks, ideas, thoughts</description>
	<lastBuildDate>Fri, 04 Mar 2011 15:43:16 +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>Nightmare of PHP programmer: include_once fails</title>
		<link>http://www.filonov.com/blog/2011/03/04/nightmare-of-php-programmer-include_once-fails/</link>
		<comments>http://www.filonov.com/blog/2011/03/04/nightmare-of-php-programmer-include_once-fails/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 15:43:16 +0000</pubDate>
		<dc:creator>Andrei Filonov</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[troubleshooting]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.filonov.com/blog/?p=63</guid>
		<description><![CDATA[For a moment it was looking like our project got haunted. Suddenly we started getting errors from the libraries being included twice, function exists and class exits kind of error. First few times it was written off as a &#8220;honest&#8221; mistake and fixed on spot, but it continued to happen again and again. Of course, [...]]]></description>
			<content:encoded><![CDATA[<p>For a moment it was looking like our project got haunted. Suddenly we started getting errors from the libraries being included twice, function exists and class exits kind of error. First few times it was written off as a &#8220;honest&#8221; mistake and fixed on spot, but it continued to happen again and again. Of course, it was only showing up on production sites, none of the test sites had this issue.</p>
<p>Some digging in the code and pulling hairs out lead to the issue: include_once was failing us. Yes, it was doing include of the same file again! One little detail &#8211; that only happened when we used both relative and absolute include path, something like:</p>
<p><code>include_once("../includes/fancyLibrary.php");<br />
and<br />
include_once("/absolute/path/to/document/root/includes/fancyLibrary.php");</code></p>
<p>Of course that should not be an issue, according to the PHP documentation.<br />
When I started troubleshooting those includes calling<br />
<code>realpath("../includes/fancyLibrary.php");</code><br />
the truth popped out &#8211; realpath was not returning anything. And then we found why &#8211; there was missing &#8220;read&#8221; attribute on the document root directory, it only had executable bit set (711). Changing permissions to 755 (added read attribute&#8217;s bit) fixed the issue. </p>
<p>So, problems with realpath or include_once PHP functions? Check folders permissions!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.filonov.com/blog/2011/03/04/nightmare-of-php-programmer-include_once-fails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP ftp_connect causing Segmentation Fault (core dumped)</title>
		<link>http://www.filonov.com/blog/2010/12/27/php-ftp_connect-causing-segmentation-fault-core-dumped/</link>
		<comments>http://www.filonov.com/blog/2010/12/27/php-ftp_connect-causing-segmentation-fault-core-dumped/#comments</comments>
		<pubDate>Mon, 27 Dec 2010 21:02:48 +0000</pubDate>
		<dc:creator>Andrei Filonov</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[troubleshooting]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.filonov.com/blog/?p=57</guid>
		<description><![CDATA[Pretty strange issue and I had hard time to Google it up, so here you go, fellow PHP developers. PHP script which was doing ftp_connect was failing on some installations with Segmentation Fault (core dumped) message. After quite a bit of time wasted looking for answers why, I found that problem was with the FTP [...]]]></description>
			<content:encoded><![CDATA[<p>Pretty strange issue and I had hard time to Google it up, so here you go, fellow PHP developers.</p>
<p>PHP script which was doing ftp_connect was failing on some installations with Segmentation Fault (core dumped) message. After quite a bit of time wasted looking for answers why, I found that problem was with the FTP host name having trailing line break. Well, that host name was coming from config and technically only developers had access to it, so looks like we assumed that variable &#8220;safe&#8221; and were not doing standard checks on special characters. To make things worse that line break is hard to see with debug output, because that line break is too easy to miss when you check variable value in debugger.</p>
<p>I am still not sure why Segmentation Fault (instead of proper message) &#8211; must be some PHP bug (and that server has Solaris OS).</p>
<p>Anyway, hope that helps somebody <img src='http://www.filonov.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.filonov.com/blog/2010/12/27/php-ftp_connect-causing-segmentation-fault-core-dumped/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Error 400: Size of a request header field exceeds server limit</title>
		<link>http://www.filonov.com/blog/2009/11/07/error-400-size-of-a-request-header-field-exceeds-server-limit/</link>
		<comments>http://www.filonov.com/blog/2009/11/07/error-400-size-of-a-request-header-field-exceeds-server-limit/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 17:33:33 +0000</pubDate>
		<dc:creator>Andrei Filonov</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[troubleshooting]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.filonov.com/blog/?p=50</guid>
		<description><![CDATA[If you get error like this one Error 400 Your browser sent a request that this server could not understand. Size of a request header field exceeds server limit. That means that your browser is trying to send too much at once. Probably, it&#8217;s size of the cookies. The easy way to fix it &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>If you get error like this one</p>
<p><code>Error 400<br />
Your browser sent a request that this server could not understand.<br />
Size of a request header field exceeds server limit.</code></p>
<p>That means that your browser is trying to send too much at once. Probably, it&#8217;s size of the cookies. The easy way to fix it &#8211; delete cookies. Of course, you lose all info in the cookies, but at least you can access site again.</p>
<p>If you develop/manage web site and your customers complain of this error message &#8211; there are two things to do: </p>
<ul>
<li>Review cookies and limit the size of cookies your application stores in the browser. </li>
<li>Increase allowed request size in web server configuration</li>
</ul>
<p>To increase request size in Apache, add directive  LimitRequestFieldSize to the configuration file. Default value is 8190 bytes. To increase it 2 times add<br />
<code>LimitRequestFieldSize 16380</code><br />
Apache restart is required.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.filonov.com/blog/2009/11/07/error-400-size-of-a-request-header-field-exceeds-server-limit/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SQLSTATE[HY000] [2003] Can&#8217;t connect to MySQL server on &#8216;xxx.xxx.xxx.xxx&#8217; (13)</title>
		<link>http://www.filonov.com/blog/2009/08/07/sqlstatehy000-2003-cant-connect-to-mysql-server-on-xxx-xxx-xxx-xxx-13/</link>
		<comments>http://www.filonov.com/blog/2009/08/07/sqlstatehy000-2003-cant-connect-to-mysql-server-on-xxx-xxx-xxx-xxx-13/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 14:34:44 +0000</pubDate>
		<dc:creator>Andrei Filonov</dc:creator>
				<category><![CDATA[Web development]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[selinux]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[troubleshooting]]></category>

		<guid isPermaLink="false">http://www.filonov.com/blog/?p=45</guid>
		<description><![CDATA[One of the things I wish I had found in Google faster when trying to figure out why PHP script refuses to connect to remote MySQL server issuing an error SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'xxx.xxxx.xxx.xxx' (13) I am able to connect from local shell, so first thought was if something wrong [...]]]></description>
			<content:encoded><![CDATA[<p>One of the things I wish I had found in Google faster when trying to figure out why PHP script refuses to connect to remote MySQL server issuing an error<br />
<code>SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'xxx.xxxx.xxx.xxx' (13)</code></p>
<p>I am able to connect from local shell, so first thought was if something wrong with recent Zend Framework upgrade, but after a while I figured out that answer is very simple &#8211; SELinux was blocking remote connections from PHP scripts executed by Apache web server. The error code (13) at the end of error message means &#8220;permission denied&#8221;, so that&#8217;s the indication to see if you have similar issue or not.</p>
<p>Anyway, login as root and do<br />
<code>setsebool -P httpd_can_network_connect=1</code><br />
to make it work.</p>
<p>Of course, think twice because you make web server a bit less secure, so don&#8217;t do that unless you are sure you need it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.filonov.com/blog/2009/08/07/sqlstatehy000-2003-cant-connect-to-mysql-server-on-xxx-xxx-xxx-xxx-13/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

