Apache2 und PHP5

Aus Wiki
Zur Navigation springen Zur Suche springen

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: PHP-Testseite.JPG

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.