WebShop: Unterschied zwischen den Versionen

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen
Zeile 51: Zeile 51:
   ->den Eintrag <Directory= > sollte man auf das gleiche Verzeichnis setzen.
   ->den Eintrag <Directory= > sollte man auf das gleiche Verzeichnis setzen.


  Das sollte fürs erste reichen. Jedoch lassen sich in dieser Datei noch wesentlich mehr Funktionen
*Wir nehmen an, dass PHP auf dem Rechner im Verzeichnis "C:\Programme\PHP" installiert ist (siehe vorheriges Kapitel).
  einstellen, was zu erklä²¥n ?en Umfang dieses HowTos hinausgehen w?  Die einzelnen Einträge sind in englisch kommentiert und erklären sich somit (fast) von selbst.
*Jetzt wird die Apache-Konfigurations-Datei "httpd.conf" im Editor (Notepad) geöffet und
ans Ende werden(für PHP5) diese drei Zeilen eingefügt: 
*LoadModule php5_module "c:/programme/PHP/php5apache2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/Programme/PHP"


  Angenommen PHP ist auf dem Rechner im Verzeichnis "C:\Programme\PHP" installiert (siehe vorheriges Kapitel).
Nach diesen Änderungen sollte PHP unter Apache laufen.
  Jetzt wird ?as Startmen?Apache-Konfigurations-Datei "httpd.conf" im Editor (Notepad) ge?et und
Ob PHP funktioniert, sieht man, wenn man das im Anhang vorhandene Skript "phpinfo.php"
  ans Ende oder unter eine Stelle mit örtlichen Einträgen werden folgende drei Zeilen eingefügt 
aus dem Browser (nicht per Doppelklick) aufruft, während der Apache Server läuft.
Dann wird eine Seite mit allen PHP-Informationen angezeigt. Auch der Pfad in dem PHP die "php.ini" erwartet.


  PHP5:
*Weitere Informationen zur Installation von PHP stehen in der Datei "C:\Programme\PHP\install.txt".
  LoadModule php5_module "c:/programme/PHP/php5apache2.dll"
  AddType application/x-httpd-php .php
  # configure the path to php.ini
  PHPIniDir "C:/Programme/PHP"
 
  Eventuell ist es möglich, dass die mittlere Zeile ("AddModule...") schon an anderer Stelle in der Datei steht,
  dann muss sie nicht mehr eingefügt werden oder kann mit einem "#"-Zeichen als Kommentar unschädlich gemacht werden.
 
  Falls ein Apache 2.0.x-Server benutzt wird muss in der ersten Zeile anstelle von "php{Version}apache.dll" der
  Dateiname "php{Version}apache2.dll" stehen.
 
  Nach diesen Änderungen sollte PHP unter Apache laufen.
  Ob PHP funktioniert, sieht man, wenn man das im Anhang vorhandene Skript "phpinfo.php"
  aus dem Browser (nicht per Doppelklick) aufruft, während der Apache Server läuft.
  Dann wird eine Seite mit allen PHP-Informationen angezeigt. Auch der Pfad in dem PHP die "php.ini" erwartet.
  Sollte dieser sich von dem im vorigen Kapitel angegebenen Windows-Verzeichnis unterscheiden, sollte die .ini
  dorthin verschoben werden.
 
  Weitere Informationen zur Installation von PHP stehen in der Datei "C:\Programme\PHP\install.txt".


== PHP & firebird, interbase.so compilieren ==
== PHP & firebird, interbase.so compilieren ==

Version vom 18. Februar 2006, 14:39 Uhr

Der webshop ruft externe Buchungsfunktionen, Details siehe hier ECommerce.
Der webshop verfügt über umfassende Verwaltungs und Diagnosefunktionen, Details siehe WebShop.Admin.

Den Apache-Webserver installieren

Verwendete diesen Link vom apache 2.0 , da von 2.2 anscheinend noch keine Version für Windows vorliegt: http://apache.easy-webs.de/httpd/binaries/win32/apache_2.0.55-win32-x86-no_ssl.msi

  • Download auf dem Desktop speichern und ausführen.
   ->bei Installation Standarteinstellungen verwenden
   ->der Apache-Webserver sollte jetzt funktionsfähig sein 
 -der Apache-Webserver stellt die Anfrage an den Computer, dass andere Rechner auf diesen
  zugreifen können. Dies wird von der Windows-Firewall möglicherweise verhindert, worüber man
  auch informiert wird. Diese Nachricht beantworte man mit "nicht blocken", damit der Apache-
  Webserver voll funktionsfähig ist.  
  • zum Test ob der Apache-Webserver funktioniert, einfach im Internetexplorer "localhost" ein geben. Wenn der Server funktioniert, erscheint der Schriftzug:"Es klappt! Der Apache-Webserver ist auf dieser Website installiert.


PHP installieren

  • PHP ist von der Seite "www.php.net" zu beziehen.
   -> http://www.php.net/downloads.php  -> Downloadadresse Stand: 18.02.06
  • Am besten die neuste Version (in unserem Fall 5.1.2) als .zip Datei herunterladen (auch falls eine .exe Datei vorliegen sollte).
  • Nach dem Download die Datei nach "C:\Programme\Php" entpacken.

Die Datei "C:\Programme\Php\php.ini-dist" oder besser "C:\Programme\Php\php.ini-recommended" wird ins "Windows"-Verzeichnis kopiert und in "php.ini" umbenannt. ->Wird ein Apache 2.0.x Server benutzt, müssen keine Dateien kopiert werden, sondern der Pfad zur ini-Datei kann dem Apache in dessen conf-Datei angegeben werden,-> siehe nächstes Kapitel

Fraglich, BITTE PRÜFEN: Ausserdem muss "register_argc_argv = On" gesetzt werden. Dies ist in der "php.ini-recommended" auf "Off" gesetzt, um die Performance zu verbessern.

!!Fertig!!

  • Weitere Informationen zur Installation von PHP stehen in der Datei "C:\Programme\Php\install.txt".

PHPEdit installieren

  ->Angabe von E-Mail, Name oder Nickname sind nicht nötig
  • nach dem Downloaden einfach installieren und Lizenz downloaden, zu was automatisch bei der Installation aufgefordert wird
  • PHPEdit sollte nun einwandfrei funtionieren

Apache & PHP konfigurieren

  • Nach der Installation der Apache Software ist das Startmenü um einen Eintrag reicher.
 ->Dort kann man unter anderem die Apache-Konfigurations Datei "httpd.conf" editieren.
 ->die "httpd.conf"-Datei ist unter "Startmenü\Alle Programme\Apache HTTP Server(z.B.)2.0.55   \Configure Apache Server" zu finden.
  • den Eintrag "DocumentRoot=" sollte man auf das Verzeichnis setzen in dem die "index.html"

oder eine andere Index-Datei der Homepage liegt, die geservt werden soll.

 ->den Eintrag <Directory= > sollte man auf das gleiche Verzeichnis setzen.
  • Wir nehmen an, dass PHP auf dem Rechner im Verzeichnis "C:\Programme\PHP" installiert ist (siehe vorheriges Kapitel).
  • Jetzt wird die Apache-Konfigurations-Datei "httpd.conf" im Editor (Notepad) geöffet und

ans Ende werden(für PHP5) diese drei Zeilen eingefügt:

  • LoadModule php5_module "c:/programme/PHP/php5apache2.dll"

AddType application/x-httpd-php .php PHPIniDir "C:/Programme/PHP"

Nach diesen Änderungen sollte PHP unter Apache laufen. Ob PHP funktioniert, sieht man, wenn man das im Anhang vorhandene Skript "phpinfo.php" aus dem Browser (nicht per Doppelklick) aufruft, während der Apache Server läuft. Dann wird eine Seite mit allen PHP-Informationen angezeigt. Auch der Pfad in dem PHP die "php.ini" erwartet.

  • Weitere Informationen zur Installation von PHP stehen in der Datei "C:\Programme\PHP\install.txt".

PHP & firebird, interbase.so compilieren

Linux.firebird

Interbase-Extension f? laden

Damit PHP auf Interbase/Firebird Datenbanken zugreifen kann, m?die Routinen, die das erm?chen, beim Start von PHP als Erweiterung geladen werden. Dies geschieht mit Hilfe zweier Eintr䧥 in der "php.ini". Erstens muss der Eintrag "extension_dir= " auf das Verzeichnis mit den Extension-Dlls gesetzt werden. Diese befinden sich standardm䟩g im Verzeichnis "extensions". Falls PHP zum Beispiel in "C:\Programme\Php" installiert wurde, liegen die Erweiterungs-Dlls im Verzeichnis "C:\Programme\Php\extensions". Der Eintrag in der "php.ini" lautet dann:

  Win32
  extension_dir = "C:\Programme\Php\extensions"
  Linux
  extension_dir = "/usr/lib/php/extension"

Zweitens gibt es in der "php.ini" einen Abschnitt, der sich "Dynamic Extensions" nennt. Dort sind alle Erweiterungen in der Form ";extension=php_....dll" aufgef?Da ein Semikolon am Anfang steht, beachtet PHP diese Zeile nicht als Eintrag sondern als Kommentar. In der Zeile ";extension=php_interbase.dll" muss dieses Semikolon nun entfernt werden.

  Win32
  extension=php_interbase.dll
  Linux
  extension=interbase.so

Der WebShop erfordert, dass Timestamps im richtigen Format ?ben werden. Dies geschieht durch folgende zwei Zeilen, die am besten ans Ende der "php.ini" gestellt werden:

  [Interbase]
  ibase.timestampformat=%m-%d-%Y %H:%M:%S

Jetzt sollten die PHP-Routinen f? Interbase-Anbindung zur Verf?stehen. Falls dies nicht so ist, liegt es vielleicht daran, das die "php.ini" im falschen Verzeichnis liegt (L?g siehe Ende vorletztes Kapitel) oder der Pfad im Eintrag "extension_dir=" falsch gesetzt ist.

Session Verzeichnis

  Verzeichnis namens "Sess" in C:\Programme\Apache Group\Apache\" oder im selben Verzeichnis wie "DocumentRoot" anlegen.
  In der Datei "php.ini" den Eintrag "session.save_path = " auf im ersten Falle
  session.save_path = C:/Programme/Apache Group/Apache/Sess
  
  ab䮤ern.


XML-Remote-Procedure-Calls f? und DELPHI/KYLIX

  Grundsä´ºliche Infos zu xml-rpc: http://www.xmlrpc.com
  
  a) Aus dem Anhang die php-xmlrpc.zip entpacken und die Datei "xmlrpc.inc" ins 
     Webverzeichnis unter "xmlrpc.inc.php" abspeichern.
  b) Link zum Download der Delphi/Kylix Komponente xml-rpc: http://www.codepunk.com/


Virtual Hosts unter Confixx Webserver

joe /etc/httpd/confixx_vhosts.conf

die entsprechende php direktive open_basedir muss auskommentiert werden.

#php_admin_value open_basedir ...

Verzeichnisschutz für den Admin-Bereich

Der Admin-Bereich des TWebShops sollte geschützt sein.

Dazu liefert TWebShop ab Rev 1.074 die nötigen Dateien:

 .htaccess
 .htpasswd

Diese müssen nun noch angepasst werden.

Inhalt .htaccess:

 AuthType Basic
 AuthName "Zugang zum WebShop-Admin-Bereich" 
 AuthUserFile "/srv/www/htdocs/twebshop/admin/.htpasswd"
 require user admin

In der Datei .htaccess muss eventuell der Pfad zur Datei .htpasswd (AuthUserFile) korrigiert werden. Wichtig dabei ist, dass der Pfad in Anführungszeichen steht. Bei Bedarf kann auch der Username (admin) geändert werden.

Das Passwort befindet sich mit dem zugehörigen Usernamen in der Datei .htpasswd. Es lautet standardmäßig "xxxx".

Dieses muss zur Sicherheit in jedem Fall geändert werden. Die mitgelieferte Datei .htpasswd sollte also nicht unverändert benutzt werden und ist als reine Testmöglichkeit zur korrekten Funktion des Verzeichnisschutzes anzusehen. Zum Neuerstellen der Datei liefert Apache unter Windows das Helferlein "htpasswd.exe."

 \Apache2\bin\htpasswd.exe

Dieses erstellt über folgenden Befehl in der Eingabezeile eine neue .htpasswd Datei.

 htpasswd.exe -cb .htpasswd user passwort

Hierbei "user" durch den Benutzernamen (z.B. admin) und "passwort" durch das neue Passwort ersetzt werden.

Beide .ht* Dateien werden im "/twebshop/admin"-Verzeichnis des TWebShops abgelegt.

Nun muss noch die Datei httpd.conf (Windows) bzw. die Datei default-server.conf (Linux) angepasst werden.

Die Dateien sind zu finden unter (bei Standardinstallation des Apache2):

 Windows: C:\Programme\Apache Group\Apache2\conf\httpd.conf
 Linux:   /etc/apache2/default-server.conf

Darin muss beim <Directory> Eintrag zum DocumentRoot-Verzeichnis des Apache eine Änderung der Direktive AllowOverride vorgenommen werden. Nach "AllowOverride" sollte "All" oder besser noch "AuthConfig" stehen.

 <Directory "/srv/www/htdocs">
   ...
   AllowOverride AuthConfig
   ...
 </Directory>

Fertig !!

Anmerkung für Perfektionisten:

Besser noch wäre für das "/admin"-Verzeichnis einen separaten <Directory> Eintrag vorzunehmen:

 <Directory "/srv/www/htdocs/twebshop/admin">
   ...
   AllowOverride AuthConfig
   ...
 </Directory>

Dies hat den Vorteil, das Apache nicht in jedem Unterverzeichnis seiner DocumentRoot nach vorhandenen .htaccess Dateien sucht, sondern nur im "/twebshop/admin"-Verzeichnis, was unnötigen Aufwand spart.

Systemanforderungen beim Benutzer/Client

  + Der benutzte Browser muss Cookies akzeptieren und annehmen. Ansonsten ist ein Login nicht m?ch.
    Die Einstellungen findet man z.B. im IE unter Extras->Internetoptionen->Datenschutz
    Hier sollte die Stufe "Mittel" eingestellt sein.