Webserver lighttpd + php

Dieser Artikel beschreibt wie man einen Webserver für das NGW100 compiliert und einrichtet.

PHP

Schritt 1 (Vorbereitung):
– Installieren der notwendigen Software-Pakete „flex“ und „bison“
# apt-get install flex bison

– PHP Sources Herunterladen
http://downloads.openwrt.org/sources/php-5.1.6.tar.bz2

– Dateien entpacken
# tar jxv php-5.1.6.tar.bz2

Anmerkung: Zusätzlich müssen noch die Pakete „GD“ und „zlib“ im Buildroot installiert sein.
make menuconfig

Schritt 2 (Configure):
# CC=avr32-linux-gcc ./configure --host=avr32-linux --prefix=/home/oxygen/NGW100-Projekt/webserver/php-dist --enable-fastcgi --with-gd --enable-sockets --enable-discard-path --enable-force-redirect --with-config-file-path=/tmp --disable-ipv6 --without-iconv --disable-xml --without-pear --disable-xmlreader --disable-xmlwriter --disable-libxml --disable-dom --disable-simplexml --with-jpeg-dir=/home/oxygen/NGW100-Projekt/buildroot-avr32-v2.3.0/build_avr32/staging_dir/ --with-zlib-dir=/home/oxygen/NGW100-Projekt/buildroot-avr32-v2.3.0/build_avr32/staging_dir

Schritt 3 (make):
# CC=avr32-linux-gcc ARCH=avr32 make CROSS=avr32-linux-
Build complete… 🙂
(Warnungen bezüglich ‚tempnam‘ und ‚tmpnam‘ können ignoriert werden).

Schritt 4 (make install):
# make install

Installing PHP SAPI module: cgi
Installing PHP CGI into: /home/oxygen/NGW100-Projekt/webserver/php-dist/bin/
Installing build environment: /home/oxygen/NGW100-Projekt/webserver/php-dist/lib/php/build/
Installing header files: /home/oxygen/NGW100-Projekt/webserver/php-dist/include/php/
Installing helper programs: /home/oxygen/NGW100-Projekt/webserver/php-dist/bin/
program: phpize
program: php-config
Installing man pages: /home/oxygen/NGW100-Projekt/webserver/php-dist/man/man1/
page: phpize.1
page: php-config.1
Installing PDO headers: /home/oxygen/NGW100-Projekt/webserver/php-dist/include/php/ext/pdo/

Schritt 5 (Dateien Kopieren):
Die nun erstellten Dateien in dem Verzeichnis „/home/oxygen/NGW100-Projekt/webserver/php-dist“ müssen auf die SD-Karte kopiert werden.

Lighttpd

Schritt 1 (Vorbereiten):
Herrunterladen der Webserver-Sources:
# wget -c http://downloads.openwrt.org/sources/lighttpd-1.4.15.tar.bz2

Entpacken:
# tar jxvf lighttpd-1.4.15.tar.bz2

Schritt 2 (patchen):
Patch-File:
#####configfile.c.patch
— lighttpd-1.4.15.orig/src/configfile.c 2006-02-08 13:39:29.000000000 +0100
+++ lighttpd-1.4.15/src/configfile.c 2006-03-15 15:32:12.000000000 +0100
@@ -863,8 +863,12 @@
int ret;
buffer *source;
buffer *out;
+#ifdef PATH_MAX
char oldpwd[PATH_MAX];
-
+#else
+ char oldpwd[4096];
+#endif
+
if (NULL == getcwd(oldpwd, sizeof(oldpwd))) {
log_error_write(srv, __FILE__, __LINE__, “s”,
“cannot get cwd”, strerror(errno));
———end here —–

# patch -p1 < configfile.c.patch patching file src/configfile.c

Schritt 3 (Configure):
# CC=avr32-linux-gcc ./configure --host=avr32-linux --prefix=/home/oxygen/NGW100-Projekt/webserver/lighttpd_dist/ --disable-ipv6

Schritt 4 (make):
# CC=avr32-linux-gcc make CROSS_COMPILE=avr32-linux-

Schritt 5 (make install):
# make install

Schritt 6 (Dateien kopieren):
Step 7 : Copy the result to the root fs of ngw 100

# cd lighttpd_dist/
# cp -rv bin/ /nfs/
# cp -rv sbin/ /nfs/
# cp -rv lib/ /nfs/

Schritt 7 (lighttpd.conf anpassen):
*.conf Datei herrunterladen
lighttpd_org.conf

- Nach eigenen wünschen bearbeiten

Schritt 8 (lighttpd starten):
- Einloggen auf dem NGW100 und folgende Zeile ausführen:

# lighttpd -f /etc/lighttpd.conf

Schritt 9 (PHP testen):
- Erstelle eine Datei in dem Ordner /www
# touch test.php
- Bearbeite die Datei "test.php"
# vi test.php
- Füge folgenden Text ein
<?php echo phpinfo() ; ?>

- Öffne den Browser und gehe auf http://<IP-vom-NGW100>:<port>/test.php

Nun sollte eine Seite mit den PHP-Einstellungen angezeigt werden!

Quellen: OpenThinkLabs
http://wildanm.wordpress.com/2007/07/09/compiling-php-for-avr32/