Apache2 und PHP5
Installation Apache + PHP5
Grundinstallation
Der Webserver Apache und die PHP5-Erweiterung sind relativ einfach zu installieren.
ipkg update ipkg install apache ipkg install php-apache
PHP-Memory Limit
Standardmäßig ist die max. Speichergröße, die PHP-Scripte belegen dürfen auf 8Mb begrenzt. Diese Grenze ist für viele PHP-Anwendungen (Mediawiki, Gallery, ...) zu gering. Deshalb sollte diese Grenze aufgeweitet werden:
vi /opt/etc/php.ini
Den Eintrag memory_limit erhöhen, z.B. auf 16Mb:
memory_limit = 16M ;
Optional: Nützliche PHP-Pakete
Die folgenden Module sind optional. Diese sind nur nötig, wenn PHP-Webseiten auf dem Server betrieben werden sollen. Diese können bei Bedarf auch später nachinstalliert werden.
Installation der PHP-Paketverwaltung "PEAR"
Leider enthält das ipkg-Paket php-pear einen Bug, sodass die Installation scheitert. Deshalb muss dieses Paket "zu Fuss" installiert werden.
cd /tmp wget http://pear.php.net/go-pear mv go-pear go-pear.php chmod 755 /tmp/go-pear.php php -q /tmp/go-pear.php
Die Fragen des PHP-Scripts beantworten (in spitzen Klammern steht die zu drückende <Taste>):
If you wish to abort, press Control-C now, or press Enter to continue: <ENTER> HTTP proxy (http://user:password@proxy.myhost.com:port), or Enter for none:: <ENTER> <1> + <ENTER> (Installation prefix ($prefix) : /tmp) Installation prefix ($prefix) [/tmp] : </opt/share> <ENTER> Would you like to install these as well? [Y/n] :<Y> Would you like to alter php.ini </opt/etc/php.ini>? [Y/n] : <Y> Press Enter to continue: <ENTER>
Wenn nach einigen Minuten nicht der Prompt erscheint, das Script mit <CTR-C> abbrechen
Damit PEAR mittels kommando pear (ohne komplette Pfadangabe) ansprechbar ist, noch einen Link in /opt/sbin anlegen:
ln -s /opt/share/bin/pear /opt/sbin/pear
Update der Paketlisten:
pear update-channels
Wenn hier kein Fehler auftritt ist die Installation von PHP-PEAR abgeschlossen.
PHP-mbstring
Dieses Paket enthält zahlreiche Stringfunktionen, die von vielen PHP-Anwendungen benötigt werden.
ipkg install php-mbstring
IMAP-Pakete
Um einigen PHP-Webseiten (z.B. http://www.egroupware.org) den Zugriff auf einen IMAP-Webserver zu ermöglichen, sind IMAP-Erweiterungen für PHP erforderlich.
ipkg install php-imap pear install Auth_SASL
PHP-GD Library
Graphic-Erweiterung für PHP, das es Webseiten erlaubt, jpg, png, gif, usw. Files zu bearbeiten und Charts zu erstellen.
ipkg install php-gd
Konfiguration
Es sind noch einige kleinere Konfigurationsänderungen nötig, damit alles läuft:
vi /opt/etc/apache2/httpd.conf
Ändern des Ports von 8000 in den Webserverstandardport 80. Setzen des Serveradim (email-adresse des Webseitenverantwortlichen) und des Servernamens (z.B. die Domain).
Listen 80 ServerAdmin admin@domain ServerName domain
Folgende Einträge ans Ende der Datei anfügen, falls diese nicht vorhanden sind. Diese dienen hauptsächlich dazu, Resourcen auf der schmalbrüstigen NSLU zu schonen:
AddType application/x-httpd-php .php .phtml StartServers 1 MaxClients 5 ThreadsPerChild 5 MaxRequestsPerChild 30 DirectoryIndex index.html index.htm index.html.var index.php
Folgende Zeile ergänzen, falls diese nicht enthalten ist, ansonsten auskommentieren:
LoadModule php5_module libexec/libphp5.so
Folgende Module sind nicht unbedingt nötig und verbrauchen nur Resourcen und können deshalb auskommentiert werden:
#LoadModule authn_dbm_module libexec/mod_authn_dbm.so #LoadModule authn_dbd_module libexec/mod_authn_dbd.so #LoadModule authz_dbm_module libexec/mod_authz_dbm.so #LoadModule file_cache_module libexec/mod_file_cache.so #LoadModule cache_module libexec/mod_cache.so #LoadModule disk_cache_module libexec/mod_disk_cache.so #LoadModule mem_cache_module libexec/mod_mem_cache.so #LoadModule ext_filter_module libexec/mod_ext_filter.so #LoadModule deflate_module libexec/mod_deflate.so #LoadModule ldap_module libexec/mod_ldap.so #LoadModule log_forensic_module libexec/mod_log_forensic.so #LoadModule cern_meta_module libexec/mod_cern_meta.so #LoadModule expires_module libexec/mod_expires.so #LoadModule headers_module libexec/mod_headers.so #LoadModule usertrack_module libexec/mod_usertrack.so #LoadModule unique_id_module libexec/mod_unique_id.so #LoadModule version_module libexec/mod_version.so #LoadModule proxy_module libexec/mod_proxy.so #LoadModule proxy_connect_module libexec/mod_proxy_connect.so #LoadModule proxy_ftp_module libexec/mod_proxy_ftp.so #LoadModule proxy_http_module libexec/mod_proxy_http.so #LoadModule proxy_ajp_module libexec/mod_proxy_ajp.so #LoadModule proxy_balancer_module libexec/mod_proxy_balancer.so #LoadModule dav_module libexec/mod_dav.so #LoadModule status_module libexec/mod_status.so #LoadModule autoindex_module libexec/mod_autoindex.so #LoadModule asis_module libexec/mod_asis.so #LoadModule info_module libexec/mod_info.so #LoadModule dav_fs_module libexec/mod_dav_fs.so #LoadModule negotiation_module libexec/mod_negotiation.so #LoadModule actions_module libexec/mod_actions.so #LoadModule speling_module libexec/mod_speling.so #LoadModule userdir_module libexec/mod_userdir.so
Nachdem alle änderungen durchgeführt wurden, sollte der Apache Webserver neu gestartet werden.
kill -9 `pidof httpd` /opt/etc/init.d/S80apache restart
Test des Webservers
Anlegen einer PHP-Testseite
vi /opt/share/www/phpinfo.php
folgende Zeilen eingeben:
<?php phpinfo() ?>
Rechte anpassen:
chmod 777 /opt/share/www/phpinfo.php
Test HTML-Seite
Webbrowser (Firefox/Internet Explorer) starten
Als Adresse die IP-Adresse der NSLU eingeben: http://IP_der_NSLU. Sofern der Webserver Apache korrekt läuft, darf keine Fehlermeldung erscheinen, sondern eine Defaultpage, die abhängig von der Version unterschiedlich sein kann. Z.B. erscheint "It works!" fettgedruckt und mit einem relativ großen Font. Wenn dies funktioniert, ist Apache in der Lage Standard-HTML-Seiten anzuzeigen.
Test PHP
Um die PHP-Fähigkeiten zu testen, folgende Adresse eingeben: http://IP_der_NSLU/phpinfo.php. Eine Webseite in der folgender Art und Weise sollte erscheinen:
Wenn keinerlei Fehler angezeigt werden, funktioniert der Webserver incl. PHP und steht damit für den operationellen Einsatz zur Verfügung.
Verbesserung der PHP-Performance
Um die Performance von PHP-basierten Seiten zu verbessern, ist es empfehlenswert, → eaccelerator zu installieren.