Installation.Internetablage
Dabei werden auf dem OrgaMon WebServer virtuelles Host eingerichtet, einer für jeden Auftraggeber.
virtuelle Hosts
listen.conf
NameVirtualHost *
Zugriffschutz bei Apache2
.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.
Anlage weiterer Nutzer
domadd
domadd ~UserName~ ~Passwort~
Quelltext des PRogrammes [[1]]:
manueller Weg
- Anlegen des Benutzers ~SubDomain~
Der Benutzername sollte der TopLevelDomain Prefix des Auftraggebers sein. Die Auftraggeber sei eine Zahnradfabrik. Deren Domain ist http://www.zf.com. Somit ist unser SubDomain zf. Zukünftiger Datenaustausch erfolgt über die Adresse http://zf.orgamon.de. Erster Schritt ist die Anlage des Benutzers zf. Um die Erklärung allgemein zu halten verwenden wir ab jetzt anstelle von "zf" immer ~SubDomain~.
yast Sicherheit und Benutzer->Benutzer anlegen un bearbeiten <ALT>&<H> für "Hinzufügen" Bei "Benutzername": ~SubDomain~ eintragen Bei "Passwort": Das generierte Passwort aus dem Orgamon eintragen <ALT>&<D> für Details Bei "Homeverzeichnis": /srv/www/htdocs/~SubDomain~ Bei "Leeres Home": eine Haken machen! Bei "Login-Shell": /bin/false Bei "Standardgruppe": "ftp" auswählen Bei "weitere Gruppen": nur "www", "ftp" darf angehakt sein! <ALT>&<W> für weiter. <ALT>&<E> für Anlegen. yast Verlassen
- Internetablage vor-befüllen
# # Sicherstellen, dass samba Vollzugriff auf die Ablage # hat. chmod 777 /srv/www/htdocs/~SubDomain~ # folgenden Dateien müssen aus einer anderen Ablage kopiert werden # # index.php # sort.txt # ampel-horizontal.gif # chmod 666 sort.txt
- PHP - Script zur Dateianzeige
<?php define(SortOrderFileName,"sort.txt"); function save($s) { $fp = fopen(SortOrderFileName,"w"); fputs($fp,$s); fclose($fp); } function load() { $fp = fopen(SortOrderFileName,"r"); $s = trim(fgets($fp,10)); fclose($fp); return $s; } // Beim allerersten Skriptaufruf if (!file_exists(SortOrderFileName) AND !isset($sortorder)) { $sortorder = "name"; // Standard-Einstellung save($sortorder); } // Beim jeweils ersten Skriptaufruf if (file_exists(SortOrderFileName) AND !isset($sortorder)) { $sortorder = load(); } // Beim erneuten Skriptaufruf if (file_exists(SortOrderFileName) AND isset($sortorder)) { save($sortorder); } ?> <html> <HEAD> <Title>Dateiablage</title> <META HTTP-EQUIV="Pragma" content="no-cache"> <META HTTP-EQUIV="Cache-Control" content="no-cache, must-revalidate"> <META HTTP-EQUIV="Expires" content="0"> <STYLE TYPE="text/css"> <!-- P.breakhere { page-break-before: always; } table.border { border-color:#000000; border-style:solid; } td { padding-left:5px; padding-right:5px; border-color:#000000; border-style:solid; border-bottom-style:solid; border-width:0px; border-bottom-width:0px; font-family:Verdana; font-size:13px; } a:link { font-family:Verdana,Arial; font-size:13px; color:#cc0000; text-decoration:none; } a:visited { font-family:Verdana,Arial; font-size:13px; color:#999999; text-decoration:none; } a:active { font-family:Verdana,Arial; font-size:13px; color:#cc0000; text-decoration:none; } a:hover { font-family:Verdana,Arial; font-size:13px; color:#cc0000; text-decoration:none; background-color:#C8D8E0; } a:link.head { font-family:Verdana,Arial; font-size:13px; color:#000040; text-decoration:underline; } a:visited.head { font-family:Verdana,Arial; font-size:13px; color:#000040; text-decoration:underline; } a:active.head { font-family:Verdana,Arial; font-size:13px; color:#000040; text-decoration:underline; } a:hover.head { font-family:Verdana,Arial; font-size:13px; color:#000040; text-decoration:underline; } --> </STYLE> </HEAD> <body bgcolor="#ffffff"> <center> <table class=border cellpadding=0 cellspacing=2 border=1 width=500> <tr><td colspan=2><b>zip Dateiablage</b><br><br></td></tr> <tr> <td width=70% bgcolor="#C8D8E0"><font face="Verdana" size=-1><a class="head" href="./<?php echo basename($PHP_SELF); ?>?sortorder=name"><b> <?php echo "Dateiname</b></a>"; if ($sortorder=="name") { echo " v"; } ?> </td> <td width=30% bgcolor="#C8D8E0"><font face="Verdana" size=-1><a class="head" href="./<?php echo basename($PHP_SELF); ?>?sortorder=date"><b> <?php echo "Ablagedatum</b></a>"; if ($sortorder=="date") { echo " v"; } ?> </td> </tr> <!-- BEGIN BAUSTELLE --> <?php $filename = array(); $filedate = array(); $n = 0; if ($handle = opendir('.')) { while (false !== ($file = readdir($handle))) { if (strpos($file,".zip")>1) { $filename[$n] = $file; $filedate[$n] = filemtime($file); $n++; } } closedir($handle); } // $sortorder = "name"; switch($sortorder) { case("name") : array_multisort($filename, SORT_ASC, $filedate, SORT_DESC); break; case("date") : array_multisort($filedate, SORT_DESC, $filename, SORT_ASC); break; } for ($i = 0; $i < $n; $i++) { $fn = $filename[$i]; $fd = $filedate[$i]; echo "<tr>"; // Datei-Name if (strpos($fn,".html")>1) { echo "<td bgcolor=#FFFFCC><font face=\"Verdana\" size=-1>"; echo "<a href=$fn>"; echo $fn; echo "</a></td>"; } else { echo "<td bgcolor=#E8F4F8><font face=\"Verdana\" size=-1>"; echo "<a href=$fn>"; echo $fn; echo "</a></td>"; } // Datei-Datum echo "<td bgcolor=#E8F4F8><font face=\"Verdana\" size=-1>"; echo date ("d.m.Y", $fd); echo " "; echo date ("H:i:s", $fd); echo "</td>"; echo "</tr>"; } ?> <!-- END BAUSTELLE --> <!-- INSERT BAUSTELLE --> </table> </center> </body> </html>
- Virtueller Host auf die Ablage leiten
Vorbereitung: in der listen.conf
NameVirtualHost *
Im Verzeichnis /etc/apache2/vhosts.d/
# # Datei ~SubDomain~.orgamon.de.conf # <VirtualHost *> ServerName ~SubDomain~.orgamon.de DocumentRoot /srv/www/htdocs/~SubDomain~ </VirtualHost> <Directory /srv/www/htdocs/~SubDomain~> AuthType Basic AuthName "Mandant Ablage" AuthUserFile /srv/www/htdocs/~SubDomain~/.htpasswd Require user ~SubDomain~ </Directory>
Verzeichnisschutz mit htpassed
leider fehlte auf meinem Suse 9.2 der Befehl htpasswd. (Ich hab in mir von einem anderen Server gezogen, was ich dazu alles tun musste das Ding zum Laufen zu bringen: Ich rede nicht gerne davon!). Also ist die erste Hürde, das Ding zu installieren, danach ist es einfach
# Wechsle in das html Verzeichnis, das Du schützen willst # Wird ~DasPasswort~ weggelassen wird über die KOmmandozeile # 2 fach nachgefragt. htpasswd -cb .htpasswd ~SubDomain~ ~DasPasswort~