XAMMP - Apache/MySQL/PHP5/Perl

From AwkwardTV
Jump to: navigation, search

XAMPP is a simple, most practical and most complete webserver solution. The XAMPP for OS X distribution provides an Apache 2 web server, integrated with MySQL, PHP and Perl. It requires no dependencies.

This is an alternative to enabling the Mac OS Apache server and installing Perl CPAN which can be ported from a Mac running V10.4 "Tiger".

Note

The XAMPP package gets installed in /Applications which is in the partition /dev/disk3 (named OSBoot) and requires it to be mounted with write permissions.

In contrast, the /Users folder is linked to /mnt/Scratch/Users and as such is in the partition /dev/disk4 (named Media) which is mounted on /mnt/. This allows the system to be located on a read-only partition and as such to be more immune to unproper power off.

If you want to keep the OSBoot mounted read-only, shutdown XAMPP and move the Applications folder to /mnt/Scratch and symlink the folder on root.

Anyway: once you've installed SSH on the AppleTV, you've decided to make a server out of it and you're going to treat it the right way.

Prerequisites

XAMPP package

The XAMPP package can be downloaded from their website. Choose the tar version.

Unzip binaries

Unzip binaries will be used on your AppleTV to extract the XAMPP package, but aren't found on the AppleTV base installation.

  • Download the binary Darwin for Intel distribution from the Opensource pages.
    This contains many useful files.
  • Untar the file (Double click in Mac OS X)
  • Mount the disk image (Double click in Mac OS X)
  • In the Terminal:
scp /Volumes/Darwin8_i386/usr/bin/zip frontrow@AppleTV.local:/Users/frontrow/Documents
scp /Volumes/Darwin8_i386/usr/bin/unzip frontrow@AppleTV.local:/Users/frontrow/Documents
scp /Volumes/Darwin8_i386/usr/bin/gzip frontrow@AppleTV.local:/Users/frontrow/Documents
scp /Volumes/Darwin8_i386/usr/bin/gunzip frontrow@AppleTV.local:/Users/frontrow/Documents
scp /Volumes/Darwin8_i386/usr/bin/bzip2 frontrow@AppleTV.local:/Users/frontrow/Documents
scp /Volumes/Darwin8_i386/usr/bin/bunzip2 frontrow@AppleTV.local:/Users/frontrow/Documents
ssh frontrow@AppleTV.local
sudo -s
mount -uw /
mv /Users/frontrow/Documents/* /usr/bin/
chown root:wheel /usr/bin/*

You might want to install further binaries...

Installing XAMPP on the Apple TV

To Install the XAMPP package on the Apple TV follow this steps :

On your Mac

  • Copy the .tar.gz file to your Apple TV (the way you prefer, AFP, SCP, etc...).
    Fugu provides a graphical interface for this purpose.
    Having installed a Samba service on the AppleTV is another option.
  • Open a SSH connection to your Apple TV.
ssh frontrow@AppleTV.local

On the AppleTV

  • Navigate to the download folder.
  • Get the required privileges:
sudo -s
mount -uw /
  • Extract the downloaded file:
tar -xvzpf xampp-macosx-0.7.2.tar.gz -C /
  • Start your XAMPP:
/Applications/xampp/xamppfiles/mampp start

You should see the following:

Starting XAMPP for MacOS X 0.7.2...
XAMPP: File permissions are being checked... this may take a while.
XAMPP: Starting Apache with SSL (and PHP5)...
XAMPP: Starting MySQL...
XAMPP: Starting ProFTPD...
XAMPP for MacOS X started.
  • Try your installation by surfing to http://AppleTV.local and choose a language.
    Tip - If you get PHP errors, it's because you didn't extract it with the 'p' parameters. Re-extract it with the exact command.
  • Assuming it's working, it's time to secure your XAMPP installation.
/Applications/xampp/xamppfiles/mampp security

Tip - If you give an SQL root password, the demos won't work any more.

Configuring Apache

Find the Apache configuration file:

find /Applications/xampp/ -iname httpd.conf

Mine is /Applications/xampp/etc/httpd.conf

Find the location of the web pages:

cat /Applications/xampp/etc/httpd.conf | grep ^ServerRoot

Mine is /Applications/xampp/xamppfiles/htdocs/

You can modify the location of the web pages in httpd.conf and put your files at the proper location.

Configuring ProFTPD

Find the ProFTPD configuration file:

find /Applications/xampp/ -iname proftpd.conf

Mine is /Applications/xampp/etc/proftpd.conf

Once the configuration file has been modified, ProFTPD has to be restarted:

/Applications/xampp/xamppfiles/mampp restart

Using Perl

Using Perl scripts with the usual shebang

#!/usr/bin/perl

will start the already existing version of Perl.

If you want to use the one coming with xampp, you will have to:

export PATH=/Applications/xampp/xamppfiles/bin:$PATH

and use the following shebang in the Perl scripts

#!/usr/bin/env perl

Enabling at boot time

Enabling the Apple way

Apple provides a page on how to create a Startup Item.

Enabling using the AppleTV base installation

The AppleTV already ships with an Apache startup file: /System/Library/StartupItems/Apache/Apache which will need some modifications.

If not done already, get the required privileges:

sudo -s
mount -uw /

Optional: set new host name

scutil --set ComputerName NewName
scutil --set LocalHostName NewName

Make your root partition to be mounted read/write at startup (XAMPP requires this):

touch /.readwrite

Edit the file /System/Library/StartupItems/Apache/Apache and add the following lines after the line . /etc/rc.common

export PATH="/Applications/xampp/xamppfiles/bin:$PATH"
alias apachectl='/Applications/xampp/xamppfiles/mampp'

Edit the file /etc/hostconfig and

  • replace WEBSERVER=-NO- with WEBSERVER=-YES-

Test it:

SystemStarter restart "Web Server"

and surf to http://AppleTV.local

Enabling with the help of AFP

Assuming you have enabled AFP (AppleShare) to start at boot, you can add the line:

/Applications/xampp/xamppfiles/mampp start

to the file /System/Library/StartupItems/AppleShare/AppleShare after the If statement in the StartService function, and then XAMPP will startup at boot time.

Adding XAMPP to the AppleShare startup item is not recommended.