Apache, PHP and MySQL on Mac OS X
Mac OS X has just been released and after compiling ssh, I went straight on to get Apache, PHP and MySQL working together. After a few tries I got it working fine. Here's how I did it:
Step 1: compiling Apache 1.3.19
Compiling apache proved to be very straightforward. You can find a good recipe at http://www.stepwise.com, Building Apache 1.3.19 for Mac OS X 1.0.
Step 2: compiling MySQL 3.23.35
I used the MySQL 3.23.35 source. This source needed a small bugfix (see below). Newer versions of MySQL (3.23.36 >) probably don't need the patch.
2.1: Fixing the source
I was quite disappointed that MySQL didn't compile straightforward. However,essentially I had to change only one line of code to have it compile flawlessly. The compile-time error occured on line 1232 in file mysqld.cc. My solution was to comment the DARWIN precompiler directives:
//#ifdef HAVE_DARWIN_THREADS
// sa.sa_handler=( void (*)() ) handle_segfault;
//#else
sa.sa_handler=handle_segfault;
//#endif
An other solution I found on the Internet that probably works equally well, but I haven't tried it myself:
#ifdef HAVE_DARWIN_THREADS
sa.sa_handler=( void (*)(int) ) handle_segfault;
#else
sa.sa_handler=handle_segfault;
#endif
This minor change made mysql compile fine. However, later on I experienced problems with this build trying to use it with PHP. The problems seemed to be caused by the zlib-library that couldn't be loaded dynamically (undefined symbols _compress and _uncompress). Therefor, I decided to roll my own static zlib library, in stead of using Apple's shared library.
2.2: Compiling ZLib
I got a copy of zlib from freshmeat. This compiled just as expected (read the instructions). Install (being root!) placed zlib.a build in directory /usr/local/lib.
2.3: Compiling MySQL with a static zlib
I recompiled the fixed MySQL-source with the fresh static zlib library:
./configure --prefix=/usr/local/mysql --with-named-z-libs=/usr/local/libz.a
make
as root (su ...):
make install
Follow the instructions in the MySQL documentation to learn how to install the initial database.
Step 3: Compiling PHP
Compiling PHP can go wrong if you're on a HFS+ disc since it doesn't make a difference between upper and lowercase (unlike normal Unix filesystems like UFS). Since the only module that causes these compile-time problems is pear, which I don't need, so I just disabled it. The rest is straightfoward:
./configure --with-mysql=/usr/local/mysql --with-apxs --disable-pear
make
as root:
make install
The only thing you need to do after compiling and installing php is uncommenting the line
AddType application/x-httpd-php .php
in /etc/httpd/httpd.conf.
Apache, PHP and MySQL on Mac OS X
- wbartels
- netjukebox developer
- Posts: 881
- Joined: Thu Nov 04, 2004 3:12 pm
- Location: Netherlands
- Contact:
Rob,
Thanks very much for you detailed Apache, PHP and MySQL installation procedure.
I don't have an apple computer to test the above steps.
When you have some issues with netjukebox (not installation related) on OSX, I'm glad to make netjukebox Linux/OSX compatible.
But therefore I need your input.
Thanks very much for you detailed Apache, PHP and MySQL installation procedure.
I don't have an apple computer to test the above steps.
When you have some issues with netjukebox (not installation related) on OSX, I'm glad to make netjukebox Linux/OSX compatible.
But therefore I need your input.
- wbartels
- netjukebox developer
- Posts: 881
- Joined: Thu Nov 04, 2004 3:12 pm
- Location: Netherlands
- Contact:
I have made some changes to netjukebox.
It now uses slash or backslash depending on the operating system.
Let me know if streaming and or Winamp + httpQ playback works correctly.
http://www.netjukebox.nl/download/netju ... velop2.zip
PS
Favorites streaming is NOT ready yet.
It now uses slash or backslash depending on the operating system.
Let me know if streaming and or Winamp + httpQ playback works correctly.
http://www.netjukebox.nl/download/netju ... velop2.zip
PS
Favorites streaming is NOT ready yet.