<?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>Gargleblaster.org &#187; PHP</title>
	<atom:link href="http://www.gargleblaster.org/tag/php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.gargleblaster.org</link>
	<description></description>
	<lastBuildDate>Wed, 16 Jun 2010 08:34:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>APC.php</title>
		<link>http://www.gargleblaster.org/2010/06/06/apc-php.html</link>
		<comments>http://www.gargleblaster.org/2010/06/06/apc-php.html#comments</comments>
		<pubDate>Sun, 06 Jun 2010 09:40:04 +0000</pubDate>
		<dc:creator>Merlijn</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[APC]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.gargleblaster.org/2010/06/06/apc-php.html</guid>
		<description><![CDATA[if you google for &#8220;apc.php?SCOPE&#8221; you get 202.000 hits. I opened at random (more or less) 10 of those. All giving a shitload of information about the host and file structure. Seems pretty unsafe for me to have that information stored in Google.]]></description>
			<content:encoded><![CDATA[<p>if you google for &#8220;apc.php?SCOPE&#8221; you get 202.000 hits. I opened at random (more or less) 10 of those. All giving a shitload of information about the host and file structure.</p>
<p>Seems pretty unsafe for me to have that information stored in Google.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gargleblaster.org/2010/06/06/apc-php.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Memcache(d)</title>
		<link>http://www.gargleblaster.org/2010/06/03/memcached.html</link>
		<comments>http://www.gargleblaster.org/2010/06/03/memcached.html#comments</comments>
		<pubDate>Thu, 03 Jun 2010 18:49:45 +0000</pubDate>
		<dc:creator>Merlijn</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[memcache]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.gargleblaster.org/2010/06/03/memcached.html</guid>
		<description><![CDATA[Recently I started (finally) with implementing caches for our php projects. I extended the database class with additional query methods utilizing memcache. While writing some unittests, i was confused by the documentation of php regarding memcache. I always wondered why there was a pecl/memcache and a pecl/memcached. I assumed one was the client API, the [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I started (finally) with implementing caches for our php projects. I extended the database class with additional query methods utilizing memcache.</p>
<p>While writing some unittests, i was confused by the documentation of php regarding memcache.<br />
I always wondered why there was a pecl/memcache and a pecl/memcached. I assumed one was the client API, the other the server API (or something similar).</p>
<p>BEEEP! WRONG!</p>
<p>Seems that both are libraries providing methods for accessing the memcached (memcache daemon). </p>
<p>You have to choose one! or&#8230; use them both&#8230; but have to be very aware which one you are using :)</p>
<p>I have chosen to use memcached. Primarly because it&#8217;s only a wrapper to libmemcached (which is a big plus in my eyes).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gargleblaster.org/2010/06/03/memcached.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>duh :)</title>
		<link>http://www.gargleblaster.org/2010/03/09/duh-2.html</link>
		<comments>http://www.gargleblaster.org/2010/03/09/duh-2.html#comments</comments>
		<pubDate>Tue, 09 Mar 2010 08:03:05 +0000</pubDate>
		<dc:creator>Merlijn</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[epic fail]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.gargleblaster.org/2010/03/09/duh-2.html</guid>
		<description><![CDATA[Someone on chat asked me what switches he had to use to execute php on the command-line. He tried to execute a php script, and all the command returned was the contents of the script, instead of executing it. At least&#8230; that was what he claimed. I don&#8217;t use php on the cli a lot, [...]]]></description>
			<content:encoded><![CDATA[<p>Someone on chat asked me what switches he had to use to execute php on the command-line. He tried to execute a php script, and all the command returned was the contents of the script, instead of executing it.</p>
<p>At least&#8230; that was what he claimed. I don&#8217;t use php on the cli a lot, so just to be sure i wrote a quick test script, which executed flawless.</p>
<p>So I took a look at the script he tried to execute:</p>
<pre>
echo html_entities_decode(file_get_contents($argv[0]));
</pre>
<p>So the script did exactly what was asked ;) outputting the content of the script itself, instead of outputting the content of the file given as 1st argument to the script.</p>
<p>hi hi.<br />
He overlooked the fact that the 0-key of the argv array holds the name of the script itself, instead of the 1st argument given on the cli :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gargleblaster.org/2010/03/09/duh-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thoughts on the take over of MySQL AB by Sun.</title>
		<link>http://www.gargleblaster.org/2008/01/17/thoughts-on-the-take-over-of-mysql-ab-by-sun.html</link>
		<comments>http://www.gargleblaster.org/2008/01/17/thoughts-on-the-take-over-of-mysql-ab-by-sun.html#comments</comments>
		<pubDate>Thu, 17 Jan 2008 17:37:26 +0000</pubDate>
		<dc:creator>Merlijn</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Open-Source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Sun]]></category>

		<guid isPermaLink="false">http://www.gargleblaster.org/2008/01/17/thoughts-on-the-take-over-of-mysql-ab-by-sun.html</guid>
		<description><![CDATA[The buzz in the blogosphere yesterday could hardly be missed. MySQL AB and Sun Microsystems announced they reached a final agreement for the acquisition of MySQL AB by Sun Microsystems. First of all, I think that it is very important that there is a difference between MySQL AB (the company) and MySQL the open source [...]]]></description>
			<content:encoded><![CDATA[<p>The buzz in the blogosphere yesterday could hardly be missed. MySQL AB and Sun Microsystems announced they reached a final agreement for the acquisition of MySQL AB by Sun Microsystems. First of all, I think that it is very important that there is a difference between MySQL AB (the company) and MySQL the open source Database engine.<br />
MySQL doesn&#8217;t &#8220;own&#8221; MySQL. Mysql is an open source project, so the source is free to modify and use etc according to <a href="http://www.gnu.org/copyleft/gpl.html">the GPL license</a>.</p>
<p>The people of MySQL AB seem to be very happy with the take-over. I can imagine that. It will give for sure some financial  ease of mind for the company and his employees and access to a large source of knowledge and resources. Somehow many people, including myself, have a suspicion against &#8220;the big corporations&#8221;. With the exception of Apple computers ofc :).<br />
Don&#8217;t forget however that Sun has a decent and reliable history with Open Source. Open Office and making Java open source to name 2 big achievements of Sun.<br />
I use MySQL now for close to 9 years. I have learned to love this database engine, discovering the more advanced features of SQL step by step. I only have used MySQL directly or interfaced by PHP.<br />
I can only express my hope that Sun will support the continuous development of the MySQL API as used by the MySQLi or mysqlnd extensions of PHP.<br />
Some analysts suspect that Sun is busy to build his &#8220;own&#8221; alternative to the classic LAMP (Linux, Apache, MySQL, PHP) stack. The Sun-Stack would be SAMJ (Solaris (opensourced!), Apache, MySQL, Java).<br />
People should have the freedom to use and code the language they prefer.<br />
I really hope it won&#8217;t be soon that if you want to have the full support for the capabilities of MySQL, you have to use a Java interface to interact with the database engine from a web-environment.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gargleblaster.org/2008/01/17/thoughts-on-the-take-over-of-mysql-ab-by-sun.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OOP programming for webapplications usefull?</title>
		<link>http://www.gargleblaster.org/2005/08/31/oop-programming-for-webapplications-usefull.html</link>
		<comments>http://www.gargleblaster.org/2005/08/31/oop-programming-for-webapplications-usefull.html#comments</comments>
		<pubDate>Wed, 31 Aug 2005 20:13:25 +0000</pubDate>
		<dc:creator>Merlijn</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[oop]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://www.gargleblaster.org/?p=172</guid>
		<description><![CDATA[While coding (php5) on a new project today, I found myself struggling with the question to fit a collection of functions in a class or not. Or in other words, to maintain a procedural style, or more object orientated. I only learned recently how to use objects and classes in php5 and I find myself [...]]]></description>
			<content:encoded><![CDATA[<p>While coding (php5) on a new project today, I found myself struggling with the question to fit a collection of functions in a class or not. Or in other words, to maintain a procedural style, or more object orientated.<br />
I only learned recently how to use objects and classes in php5 and I find myself mixing objects and procedural style within scripts. For instance, html templates and database abstraction is fitted in classes, while handling a form (collection -> validating ->processing) is done in a procedural style in my scripts.</p>
<p>I think that webapplication-coding is by nature more suitable for a procedural style. You have a very clear starting point and end. So the timeline in your script is very linear. Compare this with java, where applets mostly run in a loop waiting for userevents. The fundamental difference in nature (begin->end against looping) explains my struggle to code completely  OOP with PHP.</p>
<p>Off course OOP has lots of advantages with PHP (execption handling, code reusability to name a few) but I think when coding webapplications, you will always find yourself coding a more or less procedural timeline within your script.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gargleblaster.org/2005/08/31/oop-programming-for-webapplications-usefull.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entering the world of version control</title>
		<link>http://www.gargleblaster.org/2005/08/20/entering-the-world-of-version-control.html</link>
		<comments>http://www.gargleblaster.org/2005/08/20/entering-the-world-of-version-control.html#comments</comments>
		<pubDate>Sat, 20 Aug 2005 08:42:46 +0000</pubDate>
		<dc:creator>Merlijn</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[freeBSD]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://www.gargleblaster.org/?p=170</guid>
		<description><![CDATA[Doing PHP development for several years now, I never really understood version control and how to integrate it with my web-application development. For &#8220;traditional&#8221; programming, it is clear. You create a repository, all the developers keep in sync and commit their updates. But being the whole development team yourself and have code that for 100% [...]]]></description>
			<content:encoded><![CDATA[<p>Doing PHP development for several years now, I never really understood version control and how to integrate it with my web-application development. For &#8220;traditional&#8221; programming, it is clear. You create a repository, all the developers keep in sync and commit their updates. But being the whole development team yourself and have code that for 100% depends on the database stopped me from  even try to set up a version control system.<br />
Until last week. I just finished a project and was starting a new one, when I decided that this was the ideal moment for fiddling around with version control. I happened to have a golden oldie compaq proliant 1850R with RAID 5 disks AND a fresh install of freeBSD 5.4. Ideal for the task of becoming a CVS server&#8230;.eh&#8230; cvs? subversion? </p>
<p>Being a total version control newbie, I did my googling and reading.<br />
In one sentence: CVS is old and insecure, Subversion is hot and the talk of the town. CVS compares to Subversion as telnet to ssh.<br />
And the fun thing? installing and setting up took me 1,5 hour. Using ports<br />
there are basically two ports to install: Apache2 and Subversion.<br />
Below are links to the pages I used for setting up my subversion server, but here are some hints/notes: (not a howto or tutorial! read the pages!)</p>
<p>Create a svn user and group, and adjust the umask of that user. I used: umask 002.</p>
<p>Build apache2 with WITH_BERKELEYDB=db42.<br />
I have changed httpd.conf to have apache2 runs as svn user and group, this spares you from read/write issues when using Subversion with webdav.</p>
<p>Build Subversion with -DWITH_SVNSERVE_WRAPPER -DWITH_MOD_DAV_SVN.</p>
<p>Su -l to the SVN user, create the repository and import your initial project layout, confiure apache to serve the repository with webDAV and&#8230;you&#8217;re free to go!</p>
<p>It kicks ass!<br />
I do my webdevelopment on my mac offcourse and I found svnX to be a fantastic client wrapper. 2, 3 hours after installing and setting up my first version control, I found myself wondering how I ever lived (eh..ok developed) without it.</p>
<p>The links I used:<br />
<a href="http://www.onlamp.com/pub/a/bsd/2005/05/12/FreeBSD_Basics.html">onlamp &#8211; Setting up a Secure Subversion Server</a><br />
<a href="http://svnbook.red-bean.com/"> the SVN book (free!)<a /></p>
<p></a><a href="http://www.macdevcenter.com/pub/a/mac/2004/08/10/subversion.html"> macdev center- making the jump to subversion</a><br />
<a href="http://www.onlamp.com/pub/a/onlamp/2004/08/19/subversiontips.html">onLamp &#8211; top ten tips for Subversion users</a><br />
<a href="http://www.uncc.org/svntools/clients/macosx/">OS X Subversion client package</a> (you need this for being able to use a gui front-end as svnX.<br />
<a href="http://www.lachoseinteractive.net/en/community/subversion/svnx/features/"> svnX </a><br />
<a href="http://phiki.waterwave.ch/phiki.php3?VersionsSystems">Versions Systems link collection</a></p>
<p>And because I always forget the exact procedure:<br />
<a href="http://www.bsdguides.org/guides/freebsd/webserver/apache_ssl_php_mysql.php">Apache+SSL on freeBSD</a></p>
<p>Recent addition is this article from RedHat, a introduction suited for both CVS users and those new to version control.</p>
<p><a href="http://www.redhat.com/magazine/010aug05/features/subversion/">CVS is out, Subversion is in</a> found with <a href="http://digg.com/linux_unix/Get_rid_of_CVS,_replace_it_with_Subversion">digg.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gargleblaster.org/2005/08/20/entering-the-world-of-version-control.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual Programming with Java</title>
		<link>http://www.gargleblaster.org/2005/07/23/visual-programming-with-java.html</link>
		<comments>http://www.gargleblaster.org/2005/07/23/visual-programming-with-java.html#comments</comments>
		<pubDate>Sat, 23 Jul 2005 12:53:34 +0000</pubDate>
		<dc:creator>Merlijn</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[oop]]></category>
		<category><![CDATA[open university]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.gargleblaster.org/?p=158</guid>
		<description><![CDATA[For my Open University course I have started with &#8220;Visual Programming with Java&#8221;. I know it&#8217;s more fun as Discrete Math :) And it&#8217;s quite fun to finally &#8220;learn&#8221; programming, as I&#8217;m a autodidact. The level is very very basic, but that doesn&#8217;t matter to me. In the last years my experience is that it [...]]]></description>
			<content:encoded><![CDATA[<p>For my Open University course I have started with &#8220;Visual Programming with Java&#8221;.<br />
I know it&#8217;s more fun as Discrete Math :)<br />
And it&#8217;s quite fun to finally &#8220;learn&#8221; programming, as I&#8217;m a autodidact. The level is very very basic, but that doesn&#8217;t matter to me. In the last years my experience is that it can be very helpfull to really learn the basics. </p>
<p>The real fun is that I have to use windows again. The course uses Borland Jbuilder 8, with a license which only runs on windows XP according to the manual, but I use it on my very old windows98 machine without any problems.<br />
And oh boy, what is an IDE fun. Programming like playing with LEGO.</p>
<p>&#8220;You have forgotten a semi-colon right here&#8221;.<br />
Oh&#8230;thanks :)</p>
<p>Instead of digging through 2500 lines of code where that missing T_SPACE is&#8230;<br />
Java is also fun to work with. Very straightforward and easier than C (no memory management / garbage collection needed). I really can tell know where PHP has it&#8217;s roots. It really helps me getting some insight in OOP concepts, which are used in PHP 5 as well. </p>
<p>btw&#8230;writing this on windows, WordPress really looks better in Firefox as in Safari&#8230;damn.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gargleblaster.org/2005/07/23/visual-programming-with-java.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Migrated to PHP5</title>
		<link>http://www.gargleblaster.org/2005/04/10/migrated-to-php5.html</link>
		<comments>http://www.gargleblaster.org/2005/04/10/migrated-to-php5.html#comments</comments>
		<pubDate>Sun, 10 Apr 2005 08:05:15 +0000</pubDate>
		<dc:creator>Merlijn</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[JPGraph]]></category>
		<category><![CDATA[oop]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.gargleblaster.org/?p=152</guid>
		<description><![CDATA[I did it! For over a year I glanced at PHP5, but put it aside as too unstable/experimental (a year ago) or too dangerous to migrate due to incompatibility issues. Some of my projects where however advancing to a point, that procedural programming became to limited. And more and more I found myself looking at [...]]]></description>
			<content:encoded><![CDATA[<p>I did it! </p>
<p>For over a year I glanced at PHP5, but put it aside as too unstable/experimental (a year ago) or too dangerous to migrate due to incompatibility issues.</p>
<p>Some of my projects where however advancing to a point, that procedural programming became to limited. And more and more I found myself looking at (Object Orientated Programming) OOP.<br />
And being a absolute rookie in OOP, I decided that if I had to learn OOP, I wanted it to learn in PHP5 rightaway, instead of starting in PHP4.</p>
<p>Well, 2 weeks ago, I decided that the time has come. I downloaded php5, installed it on my development server and&#8230;.it just worked?!</p>
<p>A closer look learned that JPgraph -scripts broke and some my legacy code also.<br />
Fortunately, there are two configuration options who both can be set in a htaccess or virtualhost configuration:<br />
zend.ze1_compatibility_mode<br />
and<br />
register_long_arrays</p>
<p>Enabling those two directives in the appropiate virtualhost config made all the scripts 100% working again!(yeah yeah I know, ditch the legacy code and wait for jpgraph 2.0, but we don&#8217;t live in a perfect world, do we?)</p>
<p>The last week I find myself coding in PHP5 OOP style for the first time, using the new mysqli extension (prepared statements kick ass!) and enjoying php5 very very much!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gargleblaster.org/2005/04/10/migrated-to-php5.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MyFirstWidget&#8482;</title>
		<link>http://www.gargleblaster.org/2005/03/29/myfirstwidget.html</link>
		<comments>http://www.gargleblaster.org/2005/03/29/myfirstwidget.html#comments</comments>
		<pubDate>Tue, 29 Mar 2005 16:25:28 +0000</pubDate>
		<dc:creator>Merlijn</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[dashboard]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://www.gargleblaster.org/?p=150</guid>
		<description><![CDATA[Having an ADC-select account, I have access to the latest release builds of Tiger. On Easter-Sunday, I decided to do something usefull with my tiger-seed and downloaded the Dashboard SDK. Being used to PHP, it took some frustrating tries with javascript, but some hours later I was looking at my first widget. It basically uses [...]]]></description>
			<content:encoded><![CDATA[<p>Having an ADC-select account, I have access to the latest release builds of Tiger.<br />
On Easter-Sunday, I decided to do something usefull with my tiger-seed and downloaded the Dashboard SDK.</p>
<p>Being used to PHP, it took some frustrating tries with javascript, but some hours later I was looking at my first widget.<br />
It basically uses Curl to fetch  PHP generated content over a HTTPS connection.<br />
Shown are the last five lines of a access-log from a webapplication.<br />
It works like a charm and refreshes every time dashboard shows up, or with the command+r keycombo.</p>
<p>If Tiger is released and the NDA is lifted, I&#8217;ll probably post the widget for download&#8230;untill then, some screenshots:<br />
<img src="http://www.gargleblaster.org/images2/widget_front.jpg" alt="widget front"/><br />
<i>the front, some content blurred for privacy reasons</i></p>
<p><img src="http://www.gargleblaster.org/images2/widget_back.jpg" alt="widget backside"/><br />
<i>and the backside, i simply love the animation :)</i></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gargleblaster.org/2005/03/29/myfirstwidget.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgrading mysql on OS X 10.3 Server</title>
		<link>http://www.gargleblaster.org/2005/03/13/upgrading-mysql-on-os-x-103-server.html</link>
		<comments>http://www.gargleblaster.org/2005/03/13/upgrading-mysql-on-os-x-103-server.html#comments</comments>
		<pubDate>Sun, 13 Mar 2005 14:57:13 +0000</pubDate>
		<dc:creator>Merlijn</dc:creator>
				<category><![CDATA[OS X]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.gargleblaster.org/?p=147</guid>
		<description><![CDATA[With the latest discovery of some remote vulnerabilities in mysql and PHP, I had to upgrade my production server. And to be clear, I don&#8217;t like updates. Esp. not on mission critical apps. Updates tend to break things, you see:) But running php 4.3.6 and mysql 4.0.20 was getting&#8230;unwise. Upgrading PHP is easy, with the [...]]]></description>
			<content:encoded><![CDATA[<p>With the latest discovery of some <a href =" http://www.securityfocus.com/bid/12781" >remote vulnerabilities</a> in mysql and PHP, I had to upgrade my production server.<br />
And to be clear, I don&#8217;t like updates.<br />
Esp. not on mission critical apps. Updates tend to break things, you see:)</p>
<p>But running php 4.3.6 and mysql 4.0.20 was getting&#8230;unwise.</p>
<p>Upgrading PHP is easy, with the (imho) great installer of entropy.ch.<br />
<code><br />
installer -verboseR -pkg ~/php-4.3.10.pkg -target /<br />
</code><br />
Don&#8217;t forget afterwards to restore your httpd.conf and to edit /usr/local/php/httpd.conf.php to add:<br />
<code><br />
AddType application/x-httpd-php .php<br />
AddType application/x-httpd-php .html<br />
AddType application/x-httpd-php-source .phps<br />
</code></p>
<p>MySQL is somewhat more tricky.<br />
The version supplied by Apple is well&#8230;historic.<br />
I like to compile MySQL from source (esp. because that takes 8,5 minute on my Xserve :) and install it to /usr/local/mysql-(version).<br />
After that I create a symlink from /usr/local/mysql-(version) to /usr/local/mysql.<br />
Take some care replacing the apple supplied mysql-binaries with symlinks to the up2date /usr/local/mysql/bin/ counterparts.<br />
After this, upgrading mysql from source is painless.</p>
<p>The most recent upgrade:<br />
<code><br />
# cd /usr/local/src<br />
# gnutar -xzvf mysql-4.1.10a.tar.gz<br />
# cd mysql-4.1.10a<br />
# ./configure --with-openssl \<br />
--prefix=/usr/local/mysql-4.1.10_a \<br />
--localstatedir=/usr/local/mysql-4.1.10_a/data\<br />
--mandir=/usr/local/share/man/\<br />
--with-mysqld-user=mysql<br />
# make<br />
# make install<br />
# cd /usr/local/<br />
# mysqladmin -u root -p shutdown<br />
# cp -R mysql/data mysql-4.1.10_a/data<br />
# chown -r mysql:wheel mysql-4.1.10_a/data<br />
# ln -s /usr/local/mysql-4.1.10_a /usr/local/mysql<br />
# mysqld_safe &#038;<br />
</code></p>
<p>That&#8217;s all. If something goes wrong, just restore the symlink to the &#8220;old&#8221; mysql-(version) and you&#8217;re safe.<br />
Be aware of the new password hashing mysql uses from 4.1.1 of. I used the &#8211;old-password switch untill I&#8217;ve upgraded all my clients.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gargleblaster.org/2005/03/13/upgrading-mysql-on-os-x-103-server.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
