General

I'll try to give you some advice on how to set up a small development / testing environment using OpenSource software. Remember that this reflects my personal opinion and is just one possible way.

Server software

The most important part before you can begin to work with PHP scripts is a well configured and running webserver with PHP support. For Joomla!/Mambo you will also need a running MySQL server.

You can get all those parts bundled into one distribution - pre-configured and ready for running - that's the easiest way.

Windows Environment

The easiest way to have Joomla up and running - even on an USB-Stick - is to download XJ!. It has all you need plus various Joomla! versions (full distirbution, eCommerce Edition). You just unpack it, start the application and run Mambo. You can also change the language to english in the settings.

Another way is to download the XAMPP for Windows, which is the distribution, XAMPPMambo was built on. This package runs on my computer. It can be enhanced by many modules like PERL, Python, Tomcat or Cocoon. The XAMPP project regularly updates their distributions with the latest versions of all the software. The default document root of your server will be c:\XAMPP\htdocs.

Linux Environment

Many Linux distributions already come shipped with an Apache webserver / PHP / MySQL installation. I chose not to use that software, but installed XAMPP for Linux. It needs nearly no configuration efforts and you know where all the software is (/opt/lampp). The default document root for the webserver is /opt/lampp/htdocs.

IDE / Editor

There is SO many software available for Software Development that one can't list all these. This site gives a good overview of available IDEs and Editors for PHP (for all OS): www.php-editors.com. I'm using the Zend Development Environment at the moment.

Windows Environment

I have tried many IDEs and Editors. But my favourite is still SciTE. It's quicker than every IDE and is so small! It's a text editor with Syntax Highlighting for nearly all programming languages - including PHP, HTML, CSS, JS, VBS. It supports code folding, brackets highlighting, fast search & replace and many more features.

Linux Environment

I'm using SciTE for editing PHP & HTML & CSS source files on Linux as well. Quanta Plus is a good Editing environment.

SVN

I've found a good site which lists some SVN programs: onlamp.com (a little bit outdated).

On Windows and Linux I'm using SmartSVN to maintain the source code for VirtueMart. It's easy to use and free in the "foundation version".

Documentation

PHP

The PHP documentation is the most important part for PHP development. Without it I wouldn't know that there are built-in functions that do, what I just were about to write a function for.

PHP online documentation

Download PHP documentation (take the chm file!).

The HTML Help format (.chm) is so easy to use - even on Linux. You can search it and see the User Notes (only in this version).

For Linux Users: After you have installed a version equal or later than Wine 20050725, you can use the built-in support for Windows HTMLHelp and show the chm file by running this command:

wine hh.exe d:\\Documents\\php-manual\\php_manual_en.chm

Please change the path according to your virtual windows drives configuration!

HMTL / CSS / JS

A good web developer MUST know about HTML basics. The best start is

SELFHTML

You can browse their documentation in 5 languages and even download it.