<?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>php&#124;architect - The site for PHP professionals &#187; apache</title>
	<atom:link href="http://www.phparch.com/tag/apache/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phparch.com</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Fri, 10 Feb 2012 15:11:29 +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>Modsecurity: Why it matters to PHP</title>
		<link>http://www.phparch.com/2010/07/modsecurity-why-it-matters-to-php/</link>
		<comments>http://www.phparch.com/2010/07/modsecurity-why-it-matters-to-php/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 13:00:14 +0000</pubDate>
		<dc:creator>Orlando Medina</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Modsecurity]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.phparch.com/?p=5614</guid>
		<description><![CDATA[ModSecurity Handbook:The Complete Guide to the Popular Open Source Web Application Firewall by Ivan Ristic.</strong> </a>What is ModSecurity in the first place? Why does it matter to you? What makes this book important to the practice of web application design?]]></description>
			<content:encoded><![CDATA[<p><a href="http://beta.phparch.com/wp-content/uploads/2010/07/41TKjdQ90QL._SL500_AA300_.jpg"><img src="http://www.phparch.com/files/2010/06/41TKjdQ90QL._SL500_AA300_-150x150.jpg" alt="" title="41TKjdQ90QL._SL500_AA300_" width="150" height="150" class="alignleft size-thumbnail wp-image-5713" /></a>There is a new book released that should be in the libraries of web application developers everywhere. The title?<a href="http://www.amazon.com/ModSecurity-Handbook-Ivan-Ristic/dp/1907117024/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1278678726&#038;sr=8-1"><strong> ModSecurity Handbook:The Complete Guide to the Popular Open Source Web Application Firewall by Ivan Ristic.</strong> </a>What is ModSecurity in the first place? Why does it matter to you? What makes this book important to the practice of web application design?</p>
<p>ModSecurity is a web application firewall. It can live in and out of the Apache web server environment, one of the most popular web servers around. ModSecurity is infinitely customizable and extremely powerful. The philosophy of ModSecurity can be summed up in a few words. Look, and only modify if I tell you to. It sports a custom rule engine that makes it extremely powerful. The syntax takes a little bit of work to wrap your head around, but the learning curve is not terrible. It’s an efficient system that aims  to cut out unnecessary logic and expressions and focus solely on the job of security. That being said, the rule language is rich and extensible. It is quite possible to make use of external scripts (such as php) to do specific security tasks. Additionally, the use of <a title="Lua" href="http://www.lua.org" target="_blank">Lua</a> is extremely useful. According to the author, the rule system will cover about 80% of the needs for most tasks. The last 20% or so where you need a ‘real’ programming language is covered by Lua and its tight integration with ModSecurity. Now, as a disclaimer, ModSecurity is not an excuse to make you a lazy programmer.  You still need to use good, secure programming practices to make your clients’ applications secure as well as useful.</p>
<p>Now, the book. Why is this book so important? It is <strong><em>THE</em></strong> source for ModSecurity if you care at all about the application. This book covers everything from download and install to configuration and to creating your own rule sets. Additionally, this book was written by the author  that created ModSecurity, Ivan Ristic. The book reads like your best programmer friend sitting right next to you guiding you as to what to do step by step. I am going to be extremely honest with you though, ModSecurity isn’t the easiest thing in the  world to implement at first glance, but the rewards are  well worth it. This book teaches you step by step how to reap those rewards and build a reasonably secure system for your clients. Seeing the steps on how to block basic attacks such as XSS attacks, and brute force attacks were intriguing and educational. It made me think about how I could implement these same techniques into my programming. Additionally, the comprehensive reference manual was a great touch and welcome addition. A lot of books just give tutorials, but sometimes a simple paragraph or bullet point is needed to explain a component.</p>
<p>The book itself takes some time and digestion. I am convinced that this book needs more than one read to get all the benefits from it. That being said, the additional reads will make you a better programmer and put you ahead the pack.  <a title="Feisty Duck" href="http://www.feistyduck.com" target="_blank">Feisty Duck</a> publishes a hardcopy of the book and a digital version.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phparch.com/2010/07/modsecurity-why-it-matters-to-php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Bing Powered 404 for non-WordPress websites</title>
		<link>http://www.phparch.com/2010/06/bing-powered-404-for-non-wordpress-websites/</link>
		<comments>http://www.phparch.com/2010/06/bing-powered-404-for-non-wordpress-websites/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 11:00:47 +0000</pubDate>
		<dc:creator>Cal Evans</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[bing]]></category>
		<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://www.phparch.com/?p=5336</guid>
		<description><![CDATA[Ok, after my last post on using the Bing Search Wrapper for handing 404 errors in WordPress I had several people tell me that while they liked the idea, they didn&#8217;t want to install WordPress just so they can have intelligent 404 errors. Several other people pinged me and suggested a way that you could [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, after my last post on <a href="http://blog.calevans.com/2010/06/01/bing-search-api-wrapper-for-php/">using the Bing Search Wrapper for handing 404 errors in WordPress</a> I had several people tell me that while they liked the idea, they didn&#8217;t want to install WordPress just so they can have intelligent 404 errors. Several other people pinged me and suggested a way that you could use the Bing Search API to handle 404&#8242;s without WordPress. As a public service, I am going to try and bridge the gap between these two groups. Going on leads provided by friends, I have hammered out a solution that works with Apache and PHP.</p>
<h2>Step 1: Write a 404 Handler page.</h2>
<p>This technique is predicated on the fact that Apache lets you define your own pages for handling every error. In this example We will define a script, name it 404.php and place it in the web root.</p>
<p>You will notice that this is a very plain, black and white page. Feel free to decorate it to taste. The one on my personal site actually designed using my WordPress template so it matches my blog. (you can see it by clicking here, <a href="http://calevans.com/bing-rocks">http://calevans.com/bing-rocks</a>)</p>
<p>If you want to skip this step, here is a simple one, just copy and paste it. Make sure you put in your domain name and your <a href="http://www.bing.com/developers/createapp.aspx">Bing App Id</a></p>
<pre lang="php">
&lt;?PHP
function __autoload($className)
{
   $fileName = strtr($className,'_',DIRECTORY_SEPARATOR).".php";
   include $fileName;
   return;
}

   $o = new Msft_Bing_Search('BING APP ID GOES HERE');
   $o-&gt;setQuery('')
     -&gt;setWebCount(10)
     -&gt;setSource('web')
     -&gt;setSite('YOUR DOMAIN GOES HERE')
     ;

   $raw    = $o-&gt;search();
   $result = json_decode($raw);

?&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"&gt;

&lt;head profile="http://gmpg.org/xfn/11"&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;

&lt;title&gt;calevans dot com 404 page&lt;/title&gt;

&lt;/head&gt;
&lt;body&gt;
&lt;h3&gt; I'm sorry, we couldn't find what you are looking for.&lt;/h3&gt;
&lt;p&gt;However, here are the top 10 links from &lt;a href="http://bing.com"&gt;Bing&lt;/a&gt; for this site. I hope one of them is what you are looking for.&lt;/p&gt;
&lt;ol&gt;
&lt;?PHP
       foreach($result-&gt;SearchResponse-&gt;Web-&gt;Results as $value) {
           printf('&lt;li&gt;&lt;a href="%s"&gt;%s&lt;/a&gt;&lt;/li&gt;',$value-&gt;Url,$value-&gt;Title);
       }
?&gt;
&lt;/ol&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<h2>Step 2: Configure Apache</h2>
<p>If you are not familiar with Apache config files, this one is going to be a bit tricky. The only generic advice I can give you is, back everything up, they are only text files. Unless you delete things without backups, it&#8217;s really hard to do permanent damage. Oh and if you do manage to do permanent damage, I am not responsible.</p>
<p>My Apache is configured with <a href="http://httpd.apache.org/docs/2.1/vhosts/name-based.html">name based virtual hosts</a>. As such I have a separate Apache conf file for each domain and all the settings go in those files. As such, inside my <code> &lt;VirtualHost</code> tag I place the line:</p>
<pre lang="conf">
ErrorDocument 404 /404.php
</pre>
<p>Now restart Apache and you too can type in:</p>
<p>http://example.com/bing-rocks</p>
<p>and get something that looks like this:<br />
<a href="http://beta.phparch.com/wp-content/uploads/2010/05/404-1.png"><img src="http://www.phparch.com/files/2010/05/404-1-300x220.png" alt="" title="404-1" width="300" height="220" class="alignnone size-medium wp-image-5347" /></a></p>
<p>Or, if you are lucky enough to have a designer like <a href="http://kathyevans.biz">the lovely and talented Kathy</a> Then you may have something that looks like this:<br />
<a href="http://beta.phparch.com/wp-content/uploads/2010/05/404-2-e1273524502241.png"><img src="http://www.phparch.com/files/2010/05/404-2-e1273524502241-300x239.png" alt="" title="404-2" width="300" height="239" class="alignnone size-medium wp-image-5348" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.phparch.com/2010/06/bing-powered-404-for-non-wordpress-websites/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Apache CouchDB hits 0.11.0, drops &quot;alpha&quot; and &quot;beta&quot;</title>
		<link>http://www.phparch.com/2010/03/apache-couchdb-hits-0-11-0-drops-alpha-and-beta/</link>
		<comments>http://www.phparch.com/2010/03/apache-couchdb-hits-0-11-0-drops-alpha-and-beta/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 12:30:49 +0000</pubDate>
		<dc:creator>Carl Anderson</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[couchdb]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[db]]></category>
		<category><![CDATA[nosql]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.phparch.com/?p=4634</guid>
		<description><![CDATA[The popular document-oriented database hits version 0.11.0, and this time shows up without "alpha" or "beta" status.]]></description>
			<content:encoded><![CDATA[<p><a href="http://couchdb.apache.org/"><img class="alignleft size-full wp-image-4636" title="CouchDB logo" src="http://beta.phparch.com/wp-content/uploads/2010/03/couchdb-logo.png" alt="" width="220" height="200" /></a>Today, Noah Slater, release manager of the Apache CouchDB project, <a href="http://mail-archives.apache.org/mod_mbox/couchdb-user/201003.mbox/%3C4783d2a41003290845p78d6f57fw88cfe98066d79fe4@mail.gmail.com%3E">announced the release of CouchDB 0.11.0</a>.  CouchDB is a document-oriented database and is one of the poster children of the NoSQL movement.</p>
<p>The latest release of <a href="http://couchdb.apache.org/">CouchDB</a> has a long list of changes, including:</p>
<ul>
<li>Added support for building a Windows installer as part of &#8220;make dist&#8221;</li>
<li>Added optional &#8220;raw&#8221; binary collation for faster view builds where Unicode collation is not important</li>
<li>Improved view information objects</li>
<li>Improved speed and concurrency of config lookups</li>
<li>Various improvements to the Futon UI</li>
</ul>
<p>CouchDB 0.11.0 is the first release of the software that does not carry the &#8220;alpha&#8221; or &#8220;beta&#8221; tag.  Whether this means the product can be considered production-ready is up to you, but the CouchDB wiki <a href="http://wiki.apache.org/couchdb/CouchDB_in_the_wild">lists quite a number of projects</a> already using the software.</p>
<p>I recently sat down and started playing with CouchDB, trying to wrap my head around this new way of &#8220;doing databases.&#8221;  The <a href="http://wiki.apache.org/couchdb/FrontPage">CouchDB Wiki</a> is a good place to start, although I found that it seems to presume a decent amount of prior knowledge (a definite hindrance to me, since I lack some of that prior knowledge!).</p>
<p>There&#8217;s also an <a href="http://books.couchdb.org/relax/">online version</a> of O&#8217;Reilly&#8217;s <em>CouchDB: The Definitive Guide</em>, and I found this useful to get myself started—although you should note that a few places were a tad out-of-date relative to the latest release (at least, that&#8217;s how it appeared to me).  Nothing critical, though.</p>
<p>If you haven&#8217;t yet tried CouchDB, I recommend you do so; it&#8217;s definitely a different way of doing things than traditional relational databases, and it takes some getting used to, but it feels very natural after a while.  Of course, it&#8217;s not necessarily going to outright replace your existing SQL-based data stores, but for the right project, it&#8217;ll surely be useful.</p>
<p>You can download CouchDB 0.11.0 from the <a href="http://couchdb.apache.org/downloads">CouchDB downloads page</a>.  You&#8217;ll also find a list of the changes incorporated in 0.11.0 there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phparch.com/2010/03/apache-couchdb-hits-0-11-0-drops-alpha-and-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP on IBM i servers</title>
		<link>http://www.phparch.com/2010/03/php-on-ibm-i-servers/</link>
		<comments>http://www.phparch.com/2010/03/php-on-ibm-i-servers/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 14:30:13 +0000</pubDate>
		<dc:creator>Marco Tabini</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[zeev suraski]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[zend server]]></category>
		<category><![CDATA[zend studio]]></category>

		<guid isPermaLink="false">http://www.phparch.com/?p=4405</guid>
		<description><![CDATA[Zend has announced via its CTO the availability of Zend Server and Zend Studio for the IBM i platform, enhancing PHP support on IBM servers.]]></description>
			<content:encoded><![CDATA[<p>Zeev Sura<a href="http://beta.phparch.com/wp-content/uploads/2010/03/IBM_i.png"><img class="alignleft size-thumbnail wp-image-4407" title="IBM i platform logo" src="http://www.phparch.com/files/2010/03/IBM_i-150x150.png" alt="" width="150" height="150" /></a>ski, co-founder and CTO of Zend, <a title="Zeev Suraski comments" href="http://tec20ten.wordpress.com/2010/03/16/zeev-suraski-comments-on-php-and-zend/">has been interviewed</a> on the <a title="Toronto Users Group fro Power Systems" href="http://www.tug.ca/">TEC 2010</a> conference&#8217;s blog about the involvement of Zend with the IBM i operating system and its renewed PHP support. <a title="IBM i article on Wikipedia" href="http://en.wikipedia.org/wiki/IBM_i">IBM i</a> is one of the three operating systems officially supported on IBM Power Systems, the others being AIX and Linux.</p>
<p>The proposed solution involves the (now complete) porting of Zend Studio IDE and of the full-stack platform <a title="Zend Server official page" href="http://www.zend.com/products/server/">Zend Server</a> as packages for the IBM i platform. Zend Server is a complete stack of products that comprises Apache as the web server, PHP as the script engine and a set of database drivers for it.</p>
<p>In particular, this Zend Server edition is notable for its capability of totally replacing the older Zend Core and Zend Platform products for IBM i, and will be shipped in its Community Edition in the maintenance updates of IBM i, along with Zend Studio and the IBM products. Zend Server Community Edition will be freely available with one year of support, and the correspondent enterprise edition will also be immediately available for upgrading. The full edition comprehends caching and monitoring features, and is intended for use in production servers.</p>
<p>On the technical side, Zend Server does not require more than one Apache instance running at the same time (unlike the older products providing PHP for IBM i), happily integrating with the existing IBM i Apache installation. It also includes an IBM i-specific toolkit for the management in the PHP environment of RPG queues, data queues and spooled files. Thanks to the optimization and integration work, the overall performance on IBM i is now widely improved from the era of Zend Core and Zend Platform, up to a 3x factor.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phparch.com/2010/03/php-on-ibm-i-servers/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

