the future is unwritten

Archive for July, 2007

Running multiple php versions on a single Apache install

Saturday, July 21st, 2007

This is a very strange topic: even though a cursory google search using the words “multiple php versions apache” spits out a considerable amount of informative howtos and blog entries, when I recently mentioned in a mailing list that it is in fact quite easy to have multiple php installs running in parallel using Apache virtual hosts, I immediately received a private request for my configuration.
Well, here it is, along with a few details on how to set up the complete environment.

The desired goal is having “alot” of php installations running in parallel, so that php scripts can be quickly tested against as many versions of php as possible. It is very useful f.e. when

  • you are migrating an existing app from php 4 to version 5
  • you are deploying your applications on a large base of servers where different versions of php are installed, but develop all the different apps on the same workstation
  • you develop a popular open source php library or shrink wrapped application, and want to make sure that it runs smoothly in every possible user setup
  • you want to test an application against different sets of php.ini configurations, to check for possible problems in areas such as output buffering, opcode caches etc…
  • you are into integration testing

There are many different setups that can be used to achieve this result (a big list is available on Gentoo docs, courtesy of Andreas Korthaus).
My preferred setup is: use a single apache instance, with a single php version installed as module, and many versions installed as cgi applications. Advantages:

  • no need to rename any php file to run it with different php versions
  • no need to restart the webserver or run any kind of script to switch php version
  • uses less memory than multiple apache installs

The main disadvantages are:

  • only 1 php version can run as an apache module, the others must limit themselves to cgi
  • a very misbehaved php application can in rare cases hog or crash the webserver, and it will have to be reset before testing with other php versions

The instructions below are geared to a windows environment with Apache 2, but converting them to linux is left as trivial exercise for the sysadmin.

(more…)

Setting up a DocBook Toolchain for documenting PHP code The Right Way (TM)

Thursday, July 5th, 2007

A simple question: why is the word “docbook” always followed by “toolchain” instead of “editor”? Why can’t I just write my documentation in xml as easily as I do with Ms Word and be happy with the results?

The answer is unfortunately not so simple. The core of the problem lies in the flexibility provided by the docbook format. After all, it is an xml dialect, which can be used to write (almost) any kind of technical documentation and produce (almost) any kind of output. Existing graphical editing and conversion tools either cater only to a specific category of documents or suffer from a generic interface that does not introduce significant productivity gains.

What I needed to document my php project was:

  • A free (at least as in beer) docbook editor with a decent wysiwyg interface that would not force me to learn the intricacies of every single docbook tag
  • some way to automatically convert the docbook file to a nicely formatted XHTML version
  • some way to automatically convert the docbook file to a similarly formatted PDFversion
  • nice-to-have but not required: php syntax highlighting in the final output, generation of (parts of) the docbook manual from javadoc embedded in the php source code, conversion of docbook to OpenOffice format, etc…

After struggling with a couple of buggy/incomplete editing and conversion tools, being somewhat of a coder myself, I decided to roll my own solution.

Here’s how I set up my toolchain:

(more…)

Chi sono? Statistiche…

Wednesday, July 4th, 2007

Per fare un po’ di pubblicita’ occulta a siti ueb duezero…

42%How Addicted to Blogging Are You?

65% Geek

E inoltre: il mio cadavere vale $5725, ho 87% nello spelling, 27% di possibilita’ di sopravvivere ad un’apocalisse zombi, 67% di dipendenza dal caffe’ e prenderei 96% in un quiz di scienza a livello di liceo americano…