Posts tagged: php5

MAMP – XAMPP für den Mac

By zer(o_0)ne, 22. November 2009 16:42

Immer wieder gut wenn man PHP/MYSQL oder auch Java Sachen auf seinen Mac entwickeln will und dazu einen einfachen weg sucht sich nen Apache- und MySQL-Server zu installieren. MAMP macht das in der gewohnt einfachen Art von XAMPP. Man lädt sich einfach das Package  von der MAMP Seite herunter ( Link ). In gewohnt einfacher art lässt es sich einfach durch ziehen in den Programme-Ordner installieren. Zu beachten sie, das man das normal MAMP nimmt und nicht die Pro-Version. Dies ist nur gegen Geld zu verwendet, hat aber anfangs eine zwei wöchige Trial. Und eigentlich reicht auch die normale Version. Die Pro bringt nur kleine unwesentlich Gimmicks mit sich, wie DynDNS integration oder einen Config-Editor. Für den Durchschnittsentwickler also kaum interessant.

mampinstall

Installationsdialog von MAMP

Continue reading 'MAMP – XAMPP für den Mac'»

mod_fcgid für Apache 2.2

By zer(o_0)ne, 24. September 2009 11:01

Vorbereitungen:
Ich gehe hierbei davon aus, das PHP5 und Apache bereits installiert sind und schon funktionieren. Wichtig ist noch das bei PHP5 das CGI wie das CLI Modul mit installiert sind. Sonst klappt das ganze nicht. Sind sie das noch nciht installieren wir diese mit apt-get nach:

apt-get install php5-cgi php5-cli

fcgid installieren:
fcgid lässt sich relativ leicht durch das repository installieren. Dazu reicht ein einfaches apt-get aus.

apt-get install libapache2-mod-fcgid

Nach dem sollte es nun noch konfiguriert werden. Dazu nehmen wir aus der Apache2 Konfiguration erstmal das bisherige PHP5-Modul raus. Dazu entfernen wir einfach die LoadModul Aufforderung in der apache2.conf/httpd.conf oder wie bei Debian/Ubuntu-Systemen, dort löschen wir einfach die php5.conf und php5.load aus dem Verzeichnis “/etc/apache2/modules-enabled/”. Da es sich dabei nur um Symlinks handelt bleiben die eigentlichen Dateien also für den Notfall oder ein Rollback erhalten.

Nachdem wir nun das alte php5-Modul entfernt haben binden wir das neue ein. Dies tun wir durch die Direktive

LoadModule fcgid_module /usr/lib/apache2/modules/mod_fcgid.so

Das Modul muss natürlich an dieser Stelle auch liegen! Nutzen wir Ubuntu oder Debian wurde die Konfiguration schon nach “modules-enabled” geschrieben. So sollte das Modul schon einmal geladen werden. Jetzt muss es natürlich noch konfiguriert werden. Allgemein kann man wieder in der httpd.conf/apache2.conf folgenden Block einfügen oder diesen unter “modules-enabled/fcgid.conf” bearbeiten:

< IfModule mod_fcgid.c >
AddHandler fcgid-script .fcgi
SocketPath /var/lib/apache2/fcgid/sock
IdleTimeout 600
IdleScanInterval 200
BusyTimeout 300
BusyScanInterval 120
ErrorScanInterval 6
ZombieScanInterval 3
ProcessLifeTime 1200
# SpawnScoreUpLimit 10
# SpawnScore 1
# TerminationScore 2
MaxProcessCount 250
DefaultMaxClassProcessCount 10
DefaultMinClassProcessCount 0
IPCConnectTimeout 20
IPCCommTimeout 200
MaxRequestsPerProcess 500
< /IfModule >

Damit ist das fcgid-Modul schon mal grundsätzlich einsatz bereit. Fehlen nur noch 2 kleine Sniplets und wir sind fertig! Nach den Apache-Konfigurations-Anpassungen muss nun noch ein Wrapper-Skript her um die PHP-Prozesse zu steuern. Dies legen wir uns an einen beliebigen Ort, aber dort wo der Apache2 es auch lesen kann und machen es ausführbar. Ich habe meins z.B. dort abgelegt: “/etc/php5/php-procs.sh”. Der Inhalt des Skripts ist wie folgt:

#!/bin/sh
PHP_FCGI_CHILDREN=5
PHP_FCGI_MAX_REQUESTS=100
export PHP_FCGI_CHILDREN
export PHP_FCGI_MAX_REQUESTS
exec /usr/lib/cgi-bin/php5 "$@"

Zu beachten sei noch der Pfad zum php5-cgi Binary. Dieser sollte noch überprüft werden, da das Ding ja auch mal woanders installiert sein kann oder einen anderen Namen haben kann. Die Anzahl der Kinder kann man je nach Last auf dem System noch hoch oder runter stellen. Genauso wie die Maximalen Requests pro Kind, bevor dieses zerstört wird. Haben wir das alles nun getan, fehlt uns nur noch ein Eintrag im jeweiligen VHost, welcher mit PHP arbeiten soll. Dazu fügen wir in diesen zwei Directory-Kontainer ein oder bearbeiten Vorhandene dementsprechend.

< Directory / >
Options +FollowSymLinks
AllowOverride all
< /Directory >
< Directory /var/customers/webs/Zombie/ >
AddHandler fcgid-script .php
FCGIWrapper /etc/php5/php-procs.sh .php
Options Indexes +FollowSymLinks MultiViews ExecCGI
AllowOverride None
Order allow,deny
allow from all
< /Directory >

FollowSymlinks ist für Anwendungen außerhalb des Webroots gedacht. Das nutz ich meist um phpMyAdmin in verschiedenen Domains zu nutzen, ohne es X-Mal installieren zu müssen. Ist dies dann auch getan, sind wir fertig und geben noch ein finales

/etc/init.d/apache2 reload

ein. Damit werden all unsere Änderungen aktiv und wir können gucken ob sie auch funktionieren. Das sollten sie eigentlich auch ;-)

PHP auf Gentoo

By zer(o_0)ne, 24. Januar 2009 02:33

puhh, dachte eben ich hab mir meine gesamte apache config zerschossen, weil ich für ein wordpress plugin php neu compilierte. das ging auch alles gut, bis auf das ich meine apache-config dann hab automatisch verändern lassen. sah eigentlich alles auch ganz normal aus. blos der apache jagte php code nicht mehr durch den interpreter. alles durch gesehen und überprüft und getestet. aber nichts ging. also dann die config stück für stück auseinander genommen. am ende war es dann das, das es ein IfDefine zuviel war, der apache das ganze zwar angenommen hatte, aber nicht wirklich mit den direktiven umgehen konnte. alles sah normal aus, aber ging ebend nicht. dann hab ich die gesamte php config, aus ihrerer module.conf rausgenommen und alles einzeln nacheinander ohne IfDefine in die main config httpd.conf reingetan und was soll ich sagen? jetzt ging alles wie von zauberhand wieder…. scheiss scripte XD

Panorama theme by Themocracy