November 14, 2005

Apache, MySQL and Darwin (1)


Ever tried to quickly install and configure MySQL on OS X? Then maybe you have experienced one of your first happy moments typing command-lines into your terminal. Agreed, I'm not a programmer-guy, but maybe you'll find this instructions somewhat helpful to get your Apache and MySQL up and running.
Read more...

Apache, MySQL und Darwin (1)
Schonmal versucht, auf die Schnelle MySQL auf OS X zu installieren und zu konfigurieren? Vielleicht war das ja für euch der erste glückliche Moment, den ihr mit eurem Terminal-Programm verbracht habt. Na gut, ich bin selber auch kein Programmierer, aber vielleicht ist die folgende Anleitung eine kleine Hilfe, wenn ihr Apache und MySQL zum Laufen bringen wollt.
Mehr davon...


Boot Apache and PHP
No need to install Apache on a Mac, you already got 2 distributions on your machine. Unfortunately, folder-structures on Darwin a bit "different", so the usual tutorials are not helpful. This one is for OS X 10.3x.

Apache is pre-installed but deactivated. To boot the server, you got to edit httpd.conf. This file is placed in one of the "hidden" folders--these folders can be made visible with a tool such as Cocktail with a single click. You'll find the httpd-file in the folder /etc/httpd/. Please make sure to first backup the file. Then find the lines
#AddHandler cgi-script .cgi
#LoadModule php4_module
#AddModule mod_php4
and delete the #, now save. Apache is now ready to be started. We need a single command-line in the terminal-bash to do this. Type in:
sudo apachectl graceful
Eventually bash will ask you to enter your OS X admin-password to execute the command. Then (hopefully) Apache is booted, and you'll receive some information about that. Now you can run PHP-scripts. They need to be located in your folder /Library/Web-Server/Documents, to be found under 127.0.0.1/ or localhost/ with your favorite browser.

If you want to run a self-test for PHP, enter these lines into a texteditor

<?php
phpinfo();
?>
and save them in /Web-Server/Documents/ (for example as info.php). Open a browser, type in 127.0.0.1/info.php, enjoy...

Globals on
Maybe you want to set register_globals = on in PHP? This is often a prerequisite for older scripts. But beware: there is a reason why register_globals are off in newer PHP-versions. They can pose a security-threat.
Darwin has no regular php.ini like on a PC. We need to care about this in httpd.conf again. Scroll to the end and enter the following lines, then save.
<IfModule mod_php4.c>
php_admin_flag register_globals on
</IfModule>


Apache und PHP starten
Apache braucht man auf dem Mac nicht zu installieren, es sind breits 2 Distributionen aufgespielt. Leider sind die Verzeichnisse in Darwin ein bischen "anders", deshalb sind herkömmliche Konfigurationsanleitungen hier wenig hilfreich. Diese hier gelten für OS X 10.3x.

Apache ist zwar vorhanden, per Voreinstellung aber abgeschaltet. Um den Server zu starten, muss die httpd.conf-Datei editiert werden. Die liegt in einem der "versteckten" Ordner -- zunächst mal muss man also diese Dateien sichtbar machen (kann man z.B. mit Cocktail oder einem anderen Dienstprogramm per Knopfdruck erledigen). Die httpd-Datei liegt im Ordner /etc/httpd. Am besten macht ihr erstmal eine Sicherheitskopie davon. Danach muss in den folgenden Zeilen das # gelöscht werden:
#AddHandler cgi-script .cgi
#LoadModule php4_module
#AddModule mod_php4
Dann die Datei abspeichern. Jetzt können wir den Apache-Server starten, dazu müssen wir eine Kommandozeile im Terminal-Bash eintippen. Den Terminal findet ihr unter Programme/Dienstprogramme. Im entsprechenden Eingabefenster folgende Zeile eingeben:
sudo apachectl graceful
Unter Umständen müsst ihr euer OS X-Admin-Password eingeben, bevor der Befehl ausgeführt wird. Dann bekommt ihr (hoffentlich) das Hochfahren des Servers quittiert. Das war es schon, nun können PHP-Scripte ausgeführt werden. Diese müssen im Ordner /Library/Web-Server/Documents/ abgelegt werden und lassen sich im Browser mit eurer localhost-Adresse aufrufen: 127.0.0.1/ oder localhost/.

PHP lässt sich am besten mit der folgenden kleinen Datei testen:

<?php
phpinfo();
?>
Diese Zeilen in einen Texteditor einfügen, in reinen Text umwandeln und dann im Verzeichnis /Web-Server/Documents abspeichern (z.B. als info.php). Browser öffnen, 127.0.0.1/info.php eintippen und freuen.

Globals On
Vielleicht möchtet ihr die register_globals in PHP einschalten? Besonders für ältere Skripte müssen diese z.B. aktiviert sein. Aber Achtung: es gibt einen Grund, warum die register_globals in neuen PHP-Distributionen abgeschaltet sind -- sie stellen ein potentielles Sicherheitsrisiko dar.
Da es in Darwin keine reguläre php.ini wie auf dem PC gibt, müssen wir nochmal die httpd.conf aufrufen und ändern. Einfach am Ende folgende Zeilen anfügen und dann abspeichern.
<IfModule mod_php4.c>
php_admin_flag register_globals on
</IfModule>

:) <- Lutz

4 comments:

Anonymous said...

Lutz, Du Held! Danke für Deine - bestimmt schweisstreibende und zeitintensive - Vorarbeit. Ich glaub, jetzt trau ich mich auch (werde aber zur Sicherheit die Macdame meines Vertrauens fragen, ob sie telefonisch erreichbar ist ;)

Lutz_W said...

Hihi, ja, das war mein komplettes vorletztes Wochenende... ;P
In den nächsten Tagen schreibe ich dann nochmal was zu MySQL -- ist mir dieses Mal zuviel geworden. Das hat es nämlich auch nochmal in sich, vor allem die Kombi aus PHP4 und MySQL 4.x

:) <- Lutz

Anonymous said...

Falls ihr beiden mit der MySQL-Version 4.1 leben könnt, hätte ich noch ein nettes grafisches Frontend im Angebot:

http://cocoamysql.sourceforge.net/

Die Version die es mit 4.1 kann gibt es hier:

http://www.theonline.org/cocoamysql/

Ist ein Segen gegenüber phpMyAdmin

Lutz_W said...

Danke Yves, ich habe das direkt mal im Teil 2 mit aufgeführt...
;) <- Lutz