<?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>Tech4Him - Technology with Integrity &#187; php</title>
	<atom:link href="http://blog.tech4him.com/tags/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tech4him.com</link>
	<description>A Christian technology chaos wrangler and his thoughts</description>
	<lastBuildDate>Fri, 27 Jan 2012 02:08:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Drupal 5 to 6 Form Migration #TREE Attribute</title>
		<link>http://blog.tech4him.com/2010/03/drupal-5-to-6-form-migration-tree-attribute/</link>
		<comments>http://blog.tech4him.com/2010/03/drupal-5-to-6-form-migration-tree-attribute/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 04:12:23 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=910</guid>
		<description><![CDATA[Today was spent working on creating a Drupal 6 version of a custom Drupal 5 module as part of a Drupal upgrade project. This module is similar to the image_attach...]]></description>
			<content:encoded><![CDATA[<p><a href="http://farm1.static.flickr.com/72/183313765_12a606d998.jpg"><img class="alignright" title="Tree" src="http://farm1.static.flickr.com/72/183313765_12a606d998.jpg" alt="" width="350" height="199" /></a>Today was spent working on creating a Drupal 6 version of a custom Drupal 5 module as part of a Drupal upgrade project. This module is similar to the image_attach module that is a contrib module package with the <a href="http://drupal.org/project/image">Image module</a>. The difference is that the module allows you to designate categories for images by content_type and allows for the upload, selection, removal and ordering of images in each &#8220;image category&#8221;.<span id="more-910"></span></p>
<p><a href="http://blog.tech4him.com/wp-content/uploads/20100310-images_attach-screenshot.png"><img class="alignleft size-medium wp-image-913" style="border: 1px solid black; margin: 8px;" title="20100310 images_attach screenshot" src="http://blog.tech4him.com/wp-content/uploads/20100310-images_attach-screenshot-212x300.png" alt="" width="212" height="300" /></a>Now, one of the biggest challenges is that there are multiple instances of the &#8220;image_attach&#8221; sections on a single content edit form, one for each category. The Drupal 5 version handled this by naming these by appending the category name to the fields. This allows the submitted form value for &#8220;iids&#8221; to be an array of categories. Each category itself being an array of image iid values.</p>
<p>For the life of me, my Drupal 6 version of this functionality failed to maintain the category arrays. After some frustrated hair pulling (hmmm&#8230;. no wonder my hair is so short), I remembered to take a look at the <a href="http://api.drupal.org/api/drupal/developer--topics--forms_api.html/6">FAPI docs</a>.</p>
<p>http://api.drupal.org/api/drupal/developer&#8211;topics&#8211;forms_api.html/6</p>
<blockquote><p><span style="color: #800080;"><em>An important thing to note:</em> notice that <code>$form['access']</code> has a <code>'#tree' =&gt; TRUE</code> attribute. this setting retains  the full tree structure for all elements under it when it is passed to <code>$form_state['values']</code>.  you must explicitly declare this anywhere you wish to retain an array&#8217;s  full hierarchy when it is passed.</span></p></blockquote>
<p>So, Drupal 6 collapses form elements where possible by default. By adding the #tree attribute, the hierarchy of form elements is maintained in the form_state submitted. Eureka!</p>
<p>Here&#8217;s an example of what I was getting without the #tree attribute:</p>
<p><a href="http://blog.tech4him.com/wp-content/uploads/20100310-Drupal-Without-Form-Tree.png"><img class="aligncenter size-medium wp-image-911" title="20100310 Drupal Without Form Tree" src="http://blog.tech4him.com/wp-content/uploads/20100310-Drupal-Without-Form-Tree-300x281.png" alt="form_state values without #tree" width="300" height="281" /></a></p>
<p>And now with the #tree attribute set to true, the form hierarchy is retain and not collapsed:</p>
<p><a href="http://blog.tech4him.com/wp-content/uploads/20100310-Drupal-With-Form-TREE-on.png"><img class="aligncenter size-medium wp-image-912" title="20100310 Drupal With Form TREE on" src="http://blog.tech4him.com/wp-content/uploads/20100310-Drupal-With-Form-TREE-on-285x300.png" alt="form_state values with #tree" width="285" height="300" /></a></p>
<p>I&#8217;m sure most of you doing Drupal development are saying &#8220;Duh!&#8221;. Well, let&#8217;s just say I really didn&#8217;t know. <img src='http://blog.tech4him.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Thought I&#8217;d throw it on the blog so I don&#8217;t forget.</p>
<p>Blessings.</p>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=910&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2010/03/drupal-5-to-6-form-migration-tree-attribute/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing APC on MediaTemple DV 3.5 for Drupal</title>
		<link>http://blog.tech4him.com/2009/12/installing-apc-on-mediatemple-dv-3-5-for-drupal/</link>
		<comments>http://blog.tech4him.com/2009/12/installing-apc-on-mediatemple-dv-3-5-for-drupal/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 19:16:13 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[apc]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[mediatemple]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=870</guid>
		<description><![CDATA[We have a few sites that exist on a MediaTemple DV 3.5 server. We&#8217;ve long been concerned about the lack of performance we are getting on this DV versus sites...]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.tech4him.com/wp-content/uploads/3815370381_4dde638066.jpg"><img class="alignleft size-medium wp-image-871" style="margin: 8px;" title="3815370381_4dde638066" src="http://blog.tech4him.com/wp-content/uploads/3815370381_4dde638066-224x300.jpg" alt="3815370381_4dde638066" width="224" height="300" /></a>We have a few sites that exist on a MediaTemple DV 3.5 server. We&#8217;ve long been concerned about the lack of performance we are getting on this DV versus sites on a smaller <a href="http://linode.com" target="_blank">Linode.com</a> DV. We are not here to debate that today.</p>
<p>What we have done is to install APC on the MediaTemple DV in order to improve performance to some degree by taking advantage of op_code caching.  Now, this is not a silver bullet for performance folks. This is just one piece of a total tuning exercise. Be forewarned.</p>
<p><span id="more-870"></span>[<em>Note: You are on your own as with anything we present. We do not warranty nor represent explicitly nor implied that this will actually work for you. In fact, you might just hose things up badly. Don't call us, we warned you.  <img src='http://blog.tech4him.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  </em>]</p>
<h2>1. Install Developer Tools and Enable Root Access</h2>
<p>Log into your MediaTemple Account Center and go to the “Root Access &amp; Developer Tools” page. If Root access is not enabled, you&#8217;ll need to enable it. Be sure to set a massively secure password on this!</p>
<p>Also, if the developer tools have not yet been installed, then click the button to install them. Wait until the installation has finished before proceeding.</p>
<h2>2. Install APC</h2>
<p>Use your favorite SSH client to log into your server via SSH. Once you have logged in, you will perform the following commands:</p>
<ul>
<li>cd /usr/local/src</li>
<li>wget http://pecl.php.net/get/APC-3.0.19.tgz</li>
<li>gunzip -c APC-3.0.19.tgz | tar xf -</li>
<li>cd APC-3.0.19</li>
<li>/usr/bin/phpize</li>
<li>./configure –enable-apc –enable-apc-mmap –with-apxs2=/usr/sbin/apxs –with-php-config=/usr/bin/php-config</li>
<li>make</li>
<li>make install</li>
</ul>
<h2>3. Let PHP know about APC</h2>
<p>Now perform the following actions to modify your APC installation. (Thanks to <a href="http://www.timlinden.com/blog/server/installing-apc-cache-on-media-temple/" target="_blank">TimLinden</a> for the details)</p>
<ul>
<li>vi +/extension_dir /etc/php.ini</li>
<li>press i</li>
<li>press enter to start a new line</li>
<li>type extension = “apc.so”</li>
<li>press esc and then type :wq to exit and save (if you mess up type :q! to quit without saving)</li>
</ul>
<h2>4. Drupal APC customization</h2>
<p>Thanks to an <a href="http://2bits.com/articles/high-php-execution-times-drupal-and-tuning-apc-includeonce-performance.html" target="_blank">article from 2bits</a>, we made the following modifications to the php.ini to set some specific APC configuration options.</p>
<ul>
<li>vi +/extension_dir /etc/php.ini</li>
<li>press down arrow</li>
<li>press down arrow</li>
<li>press i</li>
<li>press enter to start a new line</li>
<li>type apc.apc.stat = 0</li>
<li>press enter</li>
<li>type apc.include_once_override = 1</li>
<li>press enter</li>
<li>type apc.shm_size = 64</li>
<li>press enter</li>
<li>press esc and then type :wq to exit and save (if you mess up type :q! to quit without saving)</li>
<li>service httpd stop</li>
<li>service httpd start</li>
</ul>
<p>For those that don&#8217;t need key press by key press instructions for the php.ini, here is what we added to the php.ini</p>
<pre>extension = “apc.so”
apc.apc.stat = 0
apc.include_once_override = 1
apc.shm_size = 64</pre>
<p>Hopefully this will help you get things started. Obviously, we are still testing and tweaking but this has provided some good improvements for a few sites that are located on a MediaTemple DV 3.5 server.</p>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=870&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/12/installing-apc-on-mediatemple-dv-3-5-for-drupal/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Creating a Related Pages Block with Views 2 and Drupal 6</title>
		<link>http://blog.tech4him.com/2009/08/creating-a-related-pages-block-with-views-2-and-drupal-6/</link>
		<comments>http://blog.tech4him.com/2009/08/creating-a-related-pages-block-with-views-2-and-drupal-6/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 20:02:53 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[related]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=646</guid>
		<description><![CDATA[I was working on a Drupal site and decided that a &#8220;related content&#8221; block was needed. Since this site has already been up and running for some time, manually reference...]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-649" href="http://blog.tech4him.com/2009/08/creating-a-related-pages-block-with-views-2-and-drupal-6/988453859_0132e42482_m/"><img class="alignleft size-full wp-image-649" style="margin: 8px;" title="Yay! Related Terms with Views 2 and Drupal 6. Hooray!" src="http://blog.tech4him.com/wp-content/uploads/988453859_0132e42482_m.jpg" alt="Yay! Related Terms with Views 2 and Drupal 6. Hooray!" width="240" height="160" /></a>I was working on a Drupal site and decided that a &#8220;related content&#8221; block was needed. Since this site has already been up and running for some time, manually reference other nodes would be painstaking. What I needed was the ability to show related node based upon the content of the node.<span id="more-646"></span></p>
<p>At first I began thinking about something using the Drupal search collections to perform a search and then show node results. This might be nice on a more commercial and large content site. In this case, this is a niche site and they are already doing a good job of tagging content with terms.</p>
<p>Thanks to a quick Google search, I found an <a href="http://drupaleasy.com/blogs/ryanprice/2008/06/using-views-2-drupal-6-create-a-related-pages-block">excellent article</a> over at <a href="http://drupaleasy.com">DrupalEasy</a> for creating a related nodes by term block using Views 2. (Yay! one of my favorite modules.)</p>
<p>For those who don&#8217;t want to type the argument code, here it is. This loads the current node object and create a string of terms. This is used to find other nodes with the same terms.</p>
<p><code><br />
$node = node_load(arg(1));<br />
if($node &amp;&amp; $node-&gt;taxonomy) {<br />
foreach($node-&gt;taxonomy as $term) { $terms[] = $term-&gt;tid; }<br />
return implode('+', $terms);<br />
} else { return; }<br />
</code></p>

<p>Now in my case, I also did not want the currently viewed node to show up in the list. (That would be weird.) So, add another argument for Node: nid. Set the option to provide a default argument if argument is not present. Then set the default argument type to Node ID from URL and finally check the box to exclude the argument.</p>
<p>That check box can be misread. It is not saying that it is going to exclude the argument such that the argument has no bearing on the query. Instead it means that it will use the argument to exclude results with this argument value. (Just a little something with the words used.)</p>
<p>Really, the only other changes I made was to add the node type to the fields displayed and I wanted to be sure we didn&#8217;t always see the same results for each node. So, I added a &#8220;Global: Random&#8221; sort criteria to the view. This way I get a random set of nodes to display as related content. Keeps things a little more fresh that way.</p>
<p>13 minutes later, my block is showing related content by term.</p>
<p>Now, if you only want to consider a particular vocabulary, the PHP argument code is different.</p>
<p><code><br />
$node = node_load(arg(1));<br />
if ($node) {<br />
$terms = taxonomy_node_get_terms_by_vocabulary($node, 1);<br />
return $terms[1]-&gt;tid;<br />
}<br />
return false;<br />
</code></p>
<p>Blessings.</p>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=646&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/08/creating-a-related-pages-block-with-views-2-and-drupal-6/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Developer Blog Â» Check if external image exists</title>
		<link>http://blog.tech4him.com/2009/07/developer-blog-%c2%bb-check-if-external-image-exists/</link>
		<comments>http://blog.tech4him.com/2009/07/developer-blog-%c2%bb-check-if-external-image-exists/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 18:51:47 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Links/Resources]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=628</guid>
		<description><![CDATA[Photo by bas:ilSo, we have a website that displays images from an external source based upon a URL. For various reasons, sometimes the external source does not have a valid...]]></description>
			<content:encoded><![CDATA[<p><span class="wp-decoratr-image"><img class="alignright" style="margin: 5px;" src="http://farm2.static.flickr.com/1260/613318387_b63618f419_m.jpg" alt="Maria Birnbaum" width="240" height="155" /><br />
<a rel="external nofollow" href="http://www.flickr.com/photos/98224643@N00/613318387">Photo by bas:il</a></span>So, we have a website that displays images from an external source based upon a URL. For various reasons, sometimes the external source does not have a valid image for the request. In order not to show a broken image to the use, we need to validate that the image is valid.</p>
<p>Thanks to Google (NOT Bing. haha) we found a <a href="http://www.zann-marketing.com/developer/20051128/check-if-external-image-exists.html">great little approach</a> that was quickly placed into a Drupal template file.</p>
<pre><code>
if (@GetImageSize("http://www.testdomain.com/testimage.gif")) {
  echo "image exists";
} else {
  echo "image does not exist";
}
</code></pre>
<p>And according to the site, if you do not have GD installed you can try this code:</p>
<pre><code>if (@fclose(@fopen("http://www.testdomain.com/testimage.gif", "r"))) {
  echo "image exists";
} else {
  echo "image does not exist";
}
</code></pre>
<p>We took the concept of the GetImageSize function to handily render web thumb shots from an external service, only if a valid image exists. This way we don&#8217;t show broken images to those Internet Explorer users.</p>
<p>via <a href="http://www.zann-marketing.com/developer/20051128/check-if-external-image-exists.html">Developer Blog Â» Check if external image exists</a>.</p>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=628&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/07/developer-blog-%c2%bb-check-if-external-image-exists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Architect/Developer Position for Bible Translation Organization</title>
		<link>http://blog.tech4him.com/2009/05/web-architectdeveloper-position-for-bible-translation-organization/</link>
		<comments>http://blog.tech4him.com/2009/05/web-architectdeveloper-position-for-bible-translation-organization/#comments</comments>
		<pubDate>Wed, 27 May 2009 02:30:15 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[position]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=610</guid>
		<description><![CDATA[I didn&#8217;t write the job post below but it spells out most of what is being looked for. Location is in Arlington, Texas (Dallas, Fort Worth area). No contract services...]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-514" href="http://blog.tech4him.com/2009/04/christian-non-profit-seeks-dbadeveloperreport-writer/logo/"><img class="alignright size-full wp-image-514" title="TheSeedCompany.org Logo" src="http://blog.tech4him.com/wp-content/uploads/logo.gif" alt="TheSeedCompany.org Logo" width="238" height="74" /></a>I didn&#8217;t write the job post below but it spells out most of what is being looked for. Location is in Arlington, Texas (Dallas, Fort Worth area). No contract services need apply. This is for a full time staff position only. Drupal is the primary framework for two externally facing sites. <span id="more-610"></span>Looking for more internal business application development as well. Drupal, php, ajax, mysql, UX design, .Net Framework and other web technologies appear to be highly desirable.</p>
<p>PLEASE NOTE: Inquiries are via email to Dave Mutchler (<a href="mailto:dave_mutchler@tsco.org">dave_mutchler@tsco.org</a>)</p>
<p>Responsibilities: Manage existing websites: <a href="http://www.theseedcompany.org" target="_blank">www.theseedcompany.org</a> ; <a href="http://www.oneverse.org">www.oneverse.org</a>. Collaborate with other team members to revise and extend capability of the website and email communications in ways that strengthen partnership between investors and translation projects. Deliver and maintain content management system to improve quality and scalability of web, print and email communications. Develop and execute strategies for web-based tools that improve staff productivity.Â  Degree in Computer Science or equivalent experience. MCSD certification recommended. Experience with web development technologies. Competencies in MS Office applications and/or Open Office.</p>
<p>1. Work experience in e-communications design and programming.<br />
2. Experience integrating content management/workflow.<br />
3. Knowledgeable about back-end database programming for a database driven website.<br />
4. Ability to plan and manage project delivery.<br />
5. Knowledge of commonly used concepts, practices, and procedures in information systems.<br />
6. Good communicator in person, on phone, and by email.<br />
7. Responsive to organizational needs.</p>
<p>Minimum one year experience developing web applications. Experience with php, ajax, MySQL, and/or Drupal is a plus.</p>
<p>Contact Info: Email resume and cover letter to:Â  <a href="mailto:dave_mutchler@tsco.org">dave_mutchler@tsco.org</a></p>
<p>Comments: The Seed Company is an affiliate of Wycliffe Bible Translators and seeks to make employment decisions in accordance with applicable federal and state employment discrimination laws and regulations. As a religious organization, The Seed Company is entitled to make employment decisions on the basis of religious beliefs and practices of the applicant or employee. All positions require a personal commitment to Christ, evidenced by personal testimony and identification with a local church.</p>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=610&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/05/web-architectdeveloper-position-for-bible-translation-organization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MediaTemple Grid Server, Drupal and the Zend Optimizer</title>
		<link>http://blog.tech4him.com/2008/11/mediatemple-grid-server-drupal-and-the-zend-optimizer/</link>
		<comments>http://blog.tech4him.com/2008/11/mediatemple-grid-server-drupal-and-the-zend-optimizer/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 04:43:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[mediatemple]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Today was a great day. First off, the good Lord gave me another day on Earth to do His work. That's a good start. I also came across a <a href="http://kb.mediatemple.net/questions/232/How+can+I+Enable+Zend+Optimizer+(php4%7B47%7D5)+on+the+(gs)+Grid-Service%3F">KB article from MediaTemple</a> that provide great hope of some performance improvement on our grid service (gs) account. Now I came across this as a result of researching performance optmizations for Drupal on their dedicated virtuals (dv) that some of my clients sites run on.

]]></description>
			<content:encoded><![CDATA[<p><a rel="external nofollow" href="http://www.flickr.com/photos/18263075@N00/2081905148"><img class="alignright" style="border: 0pt none; margin-left: 8px; margin-right: 8px;" src="http://farm3.static.flickr.com/2282/2081905148_9bd4f8b133_m.jpg" border="0" alt="Krimson - Drupal Module Development Training" hspace="8" width="240" height="161" align="left" /></a>Today was a great day. First off, the good Lord gave me another day on Earth to do His work. That&#8217;s a good start. I also came across a <a href="http://kb.mediatemple.net/questions/232/How+can+I+Enable+Zend+Optimizer+(php4%7B47%7D5)+on+the+(gs)+Grid-Service%3F">KB article from MediaTemple</a> that provide great hope of some performance improvement on our grid service (gs) account. Now I came across this as a result of researching performance optmizations for Drupal on their dedicated virtuals (dv) that some of my clients sites run on.</p>
<p>I was so excited, I couldn&#8217;t wait to try it out. So, nothing too empirical other than firebug net download times with my browser cache cleaned out.</p>
<p>Test Instance with 8 blocks making up a single node page with 100 generated users.<br />
* Before the optimizer was enabled: avg. 4.4 secs total<br />
* After the optimizer was enabled: avg. 2.9 secs total</p>
<p>The change boils down to this:</p>
<p>Open your php.ini file for editing (KB: (gs) HOWTO: edit php.ini). Add these lines:</p>
<p>For PHP4 (Replace the x.x-x with the version number you want to use.)</p>
<p>&gt; zend_optimizer.optimization_level=15<br />
&gt; zend_extension=&#8221;/usr/local/php-4.x.x-x/zend/ZendOptimizer.so&#8221;</p>
<p>For PHP5 (Replace the x.x-x with the version number you want to use.)</p>
<p>&gt; zend_optimizer.optimization_level=15<br />
&gt; zend_extension=&#8221;/usr/local/php-5.x.x-x/zend/ZendOptimizer.so&#8221;</p>
<p>Save the changes and quit.</p>
<p>That&#8217;s a decent improvement with all things considered. There are plenty of other optimization items that can be done, but since this site provide zero income, I&#8217;m not ready to pay any more for some of those non-free options. <img src='http://blog.tech4him.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>I guess that leaves me with Drupal caching support, ZendOptimizer and MySQL Table optimization and indexing. No MySQL containers for me. If I ever move, it will probably be straight to a (dv).</p>
<p>Blessings!</p>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=40&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2008/11/mediatemple-grid-server-drupal-and-the-zend-optimizer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

