PHP und MySQL in lighttpd unter Mac OS X einrichten

Achtung: Diese Seite ist nur noch Teil eines Archivs und wird in Zukunft entfernt.

Nachdem ich schon hier gezeigt habe, wie man lighttpd unter Mac OS X installiert, geht es nun um die Konfiguration von PHP und MySQL, da sie praktisch für Webauftritte essentiell sind.

Ich gehe hier davon aus, dass lighttpd nach der verlinkten Anleitung oben erstellt wurde. Daher gehe ich auf die Installation von Xcode und MacPorts nicht mehr ein, welche für mein Tutorial benötigt werden.
Demnach muss man für die Installation erst folgenden Code ausführen:

Quellcode

  1. sudo port install php5 +fastcgi +pear && sudo port install php5-mysql && sudo port install php5-xsl && sudo port install php5-gd && sudo port install php5-mbstring && sudo port install php5-iconv && sudo port install php5-curl && sudo port install php5-soap && sudo port install mysql5-server
Damit installiert man ein gutes Grundgerüst an Funktionen für PHP und MySQL.

Danach muss man erst einmal PHP in der Webserver-Konfiguration von lighttpd aktivieren. Dazu werden einfach die entsprechenden Konfigurationsdateien bearbeitet:

Quellcode

  1. sudo pico /opt/local/etc/lighttpd/lighttpd.conf
  2. sudo pico /opt/local/etc/lighttpd/conf.d/fastcgi.conf
Man findet in der lighttpd.conf folgende Zeilen:

Quellcode

  1. ##
  2. ## bind to a specific IP
  3. ##
  4. #server.bind = "localhost"
  5. ##
  6. ## Run as a different username/groupname.
  7. ## This requires root permissions during startup.
  8. ##
  9. server.username = "_www"
  10. server.groupname = "_www"
Alles anzeigen
Hier entfernt man in Zeile 4 die # am Anfang und fügt sie in Zeile 10 und 11 hinzu, damit der Webserver mit root-Rechten läuft (ansonsten gab es bei mir ein 403 - Permission denied). Hier möchte ich nochmals zu bedenken geben, dass das nur ein Testsystem werden soll. Für ein Produktivsystem ist diese Einstellung schlecht.

In die Datei fastcgi.conf muss man folgendes hinzufügen:

Quellcode

  1. fastcgi.server = ( ".php" =>
  2. ( "localhost" =>
  3. (
  4. "socket" => "/var/run/lighttpd/php-fastcgi.socket",
  5. "bin-path" => "/opt/local/bin/php-cgi"
  6. )
  7. )
  8. )
Jetzt muss man noch die php.ini selbst anpassen. Dazu muss man sie erst einmal anlegen. Es werden zwei Dateien schon mitgeliefert:
php.ini-production
php.ini-development

Im Grunde entscheiden sie sich gar nicht start, deshalb ist es egal, welche man als Basis nimmt. Für ein Produktivsystem sowieso. ;) Ich nehme in meinem Beispiel die php.ini-development. Mit einem einfachen Befehl wird sie kopiert und geöffnet:

Quellcode

  1. sudo cp /opt/local/etc/php5/php.ini-development /opt/local/etc/php5/php.ini && sudo pico /opt/local/etc/php5/php.ini
Neben den gewünschten Änderungen ist es wichtig, dass folgende Änderungen in dieser Datei durchgeführt werden:
Das Semikolon vor dieser Zeile entfernen:

Quellcode

  1. ;cgi.fix_pathinfo=1
Damit wird FastCGI aktiviert, womit man unter Mac OS X gut bedient ist.
Mittlerweile wichtig ist es auch, eine Zeitzone anzugeben. Demnach muss man folgende Zeile suchen:

Quellcode

  1. ;date.timezone =
und zu dieser ändern:

Quellcode

  1. date.timezone = Europe/Berlin
Für MySQL ist es dann noch wichtig, dass die "default_socket" entsprechend gesetzt werden. Dazu muss man folgende drei Zeilen suchen (sind nicht hintereinander, daher nach jeder Zeile einzeln suchen):

Quellcode

  1. pdo_mysql.default_socket =
  2. mysql.default_socket =
  3. mysqli.default_socket =
Hier muss man jeweils hinter dem = folgendes Eintragen:

Quellcode

  1. /opt/local/var/run/mysql5/mysqld.sock
Damit ist PHP erfolgreich für den Einsatz mit MySQL konfiguriert und man kann den Webserver starten, wenn man möchte.

Mit folgenden Befehlen kann man zudem das Vorhandensein von PHP als CGI-Modul überprüfen (jeweils Befehl und Ausgabe):

Quellcode

  1. $ php -v
  2. PHP 5.3.10 (cli) (built: Feb 27 2012 10:50:11)
  3. Copyright (c) 1997-2012 The PHP Group
  4. Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

Quellcode

  1. php-cgi -v
  2. PHP 5.3.10 (cgi-fcgi) (built: Feb 27 2012 10:50:10)
  3. Copyright (c) 1997-2012 The PHP Group
  4. Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

Nun fehlt noch MySQL. Das muss man erst einmal mit folgendem Befehl einrichten:

Quellcode

  1. sudo mysql_install_db5
Die Ausgabe sollte in etwa die folgende sein:

Quellcode

  1. WARNING: The host 'speedport_w723_v_typ_a_1_00_090' could not be looked up with resolveip.
  2. This probably means that your libc libraries are not 100 % compatible
  3. with this binary MySQL version. The MySQL daemon, mysqld, should work
  4. normally with the exception that host name resolving will not work.
  5. This means that you should use IP addresses instead of hostnames
  6. when specifying MySQL privileges !
  7. Installing MySQL system tables...
  8. OK
  9. Filling help tables...
  10. OK
  11. To start mysqld at boot time you have to copy
  12. support-files/mysql.server to the right place for your system
  13. PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
  14. To do so, start the server, then issue the following commands:
  15. /opt/local/lib/mysql5/bin/mysqladmin -u root password 'new-password'
  16. /opt/local/lib/mysql5/bin/mysqladmin -u root -h speedport_w723_v_typ_a_1_00_090 password 'new-password'
  17. Alternatively you can run:
  18. /opt/local/lib/mysql5/bin/mysql_secure_installation
  19. which will also give you the option of removing the test
  20. databases and anonymous user created by default. This is
  21. strongly recommended for production servers.
  22. See the manual for more instructions.
  23. You can start the MySQL daemon with:
  24. cd /opt/local ; /opt/local/lib/mysql5/bin/mysqld_safe &
  25. You can test the MySQL daemon with mysql-test-run.pl
  26. cd /opt/local/mysql-test ; perl mysql-test-run.pl
  27. Please report any problems with the /opt/local/lib/mysql5/bin/mysqlbug script!
Alles anzeigen
Wie hier gewünscht, sollte man danach folgenden Befehl ausführen, um das Passwort zu ändern:

Quellcode

  1. /opt/local/lib/mysql5/bin/mysqladmin -u root password 'new-password'
Das "new-password" wäre dann das neue Passwort.

Um den Start und das Stoppen von MySQL zu vereinfachen, kann man noch folgende Aliases eintragen:

Quellcode

  1. alias mysqlstart='sudo /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper start';
  2. alias mysqlstop='sudo /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper stop';
  3. alias mysqlrestart='sudo /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper restart';
Damit kann man MySQL mit folgendem Befehl starten: mysqlstart
Mit folgendem Befehl beenden: mysqlstop
Und mit folgendem Befehl neu starten: mysqlrestart
Die Befehle kann man natürlich auch beliebig ändern, wie man es selbst gerne möchte.

Nun kann man den MySQL-Server auch starten und mit folgendem Befehl überprüfen, ob alles funktioniert:

Quellcode

  1. mysqladmin5 -u root -p ping
Die Ausgabe sollte dann folgendermaßen sein:

Quellcode

  1. $ mysqladmin5 -u root -p ping
  2. Enter password:
  3. mysqld is alive
Man sollte sich zudem mit folgendem Befehl nun über die Konsole in MySQL einloggen können:

Quellcode

  1. mysql5 -u root -p

Ich hoffe, dass dieses Tutorial hilfreich ist!
Falls Fragen aufkommen oder es Probleme gibt, einfach melden. Es ist relativ schwer, alle Änderungen durch den einfachen Log der Konsole (vor allem in den Dateien) später nochmals nachzuvollziehen.
Über den Autor
Ich bin Webentwickler in Stuttgart und administriere Server seit vielen Jahren. In diesem Blog erstelle ich hauptsächlich Tutorials für andere Webentwickler, Webdesigner und Serveradministratoren.
-------------------------------------------------------------------------------------------------------------------------------------
I’m a web developer in Stuttgart, Germany, and server administrator since many years. This blog mainly contains a tutorial set for other web developer, web designer and server administrators.

706 mal gelesen

Kommentare 0

Es wurden keine Einträge gefunden.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen