README für mod_uploader

mod_uploader: Dateiupload-Anwendung als ein Apache-Modul

Contents

Was ist mod_uploader?

mod_uploader ist eine Dateiuploader-Anwendung, die als Apache Modul arbeitet. Folgende Funktionen bietet das Modul:

Screenshot der Fortschrittsanzeige

System vorbereiten

mod_uploader funktioniert auf Unix-ähnlichen systemen wie Linux, FreeBSD und Max OSX. (Windows Die Windows Version gibt es hier)

mod_uploader wurde unter Gentoo Linux entwickelt, Kernel 2.6.20 , GCC 3.4.5 , Apache 2.0.58, und ImageMagick 6.3.3.

Paketvoraussetzungen

CentOS

  • gcc-c++
  • make
  • libtool
  • httpd-devel
  • ImageMagick-c++-devel

Debian

  • libtool
  • apache2-mpm-prefork
  • apache2-prefork-dev
  • libmagick++6-dev

FedoraCore

  • gcc-c++
  • make
  • libtool
  • httpd-devel
  • ImageMagick-c++-devel
  • freetype-devel
  • fontconfig-devel

FreeBSD

  • www/apache20 or www/apache22
  • graphics/ImageMagick

Gentoo Linux

  • gcc
  • make
  • libtool
  • apache
  • imagemagick

Ubuntu Linux

  • g++
  • apache2-mpm-prefork
  • apache2-prefork-dev
  • libmagick++9-dev

Lizenz

Die Distribution von mod_uploader unterliegt den Bedingungen der The zlib/libpng License.

Download

GitHub

Kompilation

Wenn die GNU Compiler Collection verwendet wird, benutze folgende Befehle:

$ ./configure
$ make

Wenn der Intel C++ Compiler benutzt wird, verwende diese Befehle:

$ env CC=icc ./configure
$ make

Configure Optionen

Wenn der configure Befehl nicht funktioniert, probiere die Optionen --with-apxs , --with-apctl2 oder --with-aprconf.

--with-apxs = APXS
Gib den Pfad zu apxs an.
--with-apctl2 = APCTL
Gib den Pfad zu apachectl an.
--with-aprconf = APRCONF
Gib den Pfad zu apr-config an.
--with-libtool = LIBTOOL
Gib den Pfad zu libtool an.
--with-march = CPU
Wenn du das Programm für eine bestimme CPU optimieren willst, gib eine der folgenden Optionen an. Zum Beispiel für den Pentium 4 --with-march=pentium4.
--enable-empty-comment
Wenn man eine Datei mit leerem Kommentar akzeptieren will, gibt man diese Option an.
--enable-empty-password
Wenn man leere Passwörter für das Löschen von Dateien akzeptieren will, verwende diese Option.
--enable-thumbnail
Wenn man ein Miniaturbild von Bilddateien erstellen lassen will, verwende diese Option.
--with-mconf = MCONF
Gib den Pfad zu Magick++-config an.

Beispielbefehle

FreeBSD

$ ./configure
$ gmake

Mac OSX Tiger + Fink

$ ./configure
$ env MACOSX_DEPLOYMENT_TARGET=10.4 make

Installation

$ su
# make -f GNUmakefile.apache install

Einstellungen

Füge folgende Einstellungen zu deiner Apache config-Datei hinzu (.htaccess ist nicht erlaubt).

<Location "Der Ort wo der Uploader sich befindet (URL-Pfad, nicht der Dateisystem-Pfad)">
    SetHandler                     uploader

    UploaderBaseUrl                Die URL des Uploaders

    UploaderDataDirectory          Pfad des Verzeichnisses wo die Metadaten sich befinden
    UploaderFileDirectory          Pfad des Verzeichnisses wo die Dateien gespeichert werden
    UploaderThumbDirectory         Pfad des Verzeichnisses wo die Miniaturbilder gespeichert werden
    UploaderTempDirectory          Pfad des Verzeichnisses wo die temporären Daten gespeichert werden

    UploaderTotalFileSizeLimit     Limit für die Gesamtgrösse der Dateien (KB)
    UploaderTotalFileNumberLimit   Limit für die Anzahl der Dateien
    UploaderFileSizeLimit          Limit für die Grösse pro Datei (KB)
    UploaderPerPageItemNumber      Anzahl der Dateien, die auf einer Seite angezeigt werden

    UploaderIndexViewTemplate      Vorlage der Hauptseitee (benutze index.htm)
    UploaderInfoViewTemplate       (benutze info.htm)
    UploaderProgressViewTemplate   Vorlage der Fortschrittsanzeigeseite (benutze progress.htm)
    UploaderDownloadViewTemplate   Vorlage der Downloadseite (benutze download.htm)
    UploaderThumbnailViewTemplate  Vorlage der Miniaturansichtsseite (benutze thumbnail.htm)
    UploaderAdminViewTemplate      Vorlage der Administrationsseite (benutze admin.htm)
    UploaderErrorViewTemplate      Vorlage der Fehlerseite (benutze error.htm)
</Location>
<Location "Der Ort wo der Uploader sich befindet (URL-Pfad, nicht der Dateisystem-Pfad)"/admin>
    Order                   Deny,Allow
    Deny                    From All
    Allow                   From 127.0.0.1
</Location>

Bitte benutze index.htm, info.htm, progress.htm, download.htm, thumbnail.htm, admin.htm und error.htm die sich im tmpl/en Verzeichnis befinden als Vorlage.

Wenn man zum Beispiel up mod_uploader als http://foo/up/ einstellen will, benutzt man die folgenden Einstellungen. Alias der /up_img, /up_css und /up_js Verzeichniss is nicht unerlässlich. Wenn man nicht die Vorlagen editieren will, benutze diese Aliase.

<Location /up>
    SetHandler                     uploader

    UploaderBaseUrl                "http://foo/up"
    UploaderDataDirectory          "/path/to/mod_uploader/test/data"
    UploaderFileDirectory          "/path/to/mod_uploader/test/file"
    UploaderThumbDirectory         "/path/to/mod_uploader/test/thumb"
    UploaderTempDirectory          "/path/to/mod_uploader/test/temp"

    UploaderTotalFileSizeLimit     10485760
    UploaderTotalFileNumberLimit   200
    UploaderFileSizeLimit          1048576
    UploaderPerPageItemNumber      30

    UploaderIndexViewTemplate      "/path/to/mod_uploader/tmpl/en/index.htm"
    UploaderInfoViewTemplate       "/path/to/mod_uploader/tmpl/en/info.htm"
    UploaderProgressViewTemplate   "/path/to/mod_uploader/tmpl/en/progress.htm"
    UploaderDownloadViewTemplate   "/path/to/mod_uploader/tmpl/en/download.htm"
    UploaderThumbnailViewTemplate  "/path/to/mod_uploader/tmpl/en/thumbnail.htm"
    UploaderAdminViewTemplate      "/path/to/mod_uploader/tmpl/en/admin.htm"
    UploaderErrorViewTemplate      "/path/to/mod_uploader/tmpl/en/error.htm"
</Location>

<Location /up/admin>
    Order                   Deny,Allow
  Deny                      From All
    Allow                   From 127.0.0.1
</Location>

Alias /up_img                  "/path/to/mod_uploader/img"
Alias /up_css                  "/path/to/mod_uploader/css"
Alias /up_js                   "/path/to/mod_uploader/js"

Anmerkungen

  • Absolute Pfade sollten bevorzugt werden, wenn man sich nicht mit den Einstelluneg des Apache auskennt.

  • Es ist notwendig, dass alle Verzeichnisse in FileDirectory, ThumbDirectory und TempDirectory die Schreib- und Leserechte für den Apache besitzen.

  • Platziere keine sonstigen Dateien in die Verzeichnisse FileDirectory aund ThumbDirectory als die Dateien, die der mod_uploader generiert.

  • Man kann nicht "~" alsPfad für <Location> definieren.

  • Erstelle keine Verzeichnisse oder Dateien, die im Pfad von <Location>, angegeben wurden und für mod_uploader eingestellt wurden.

    Wenn zum Beispiel das DocumentRoot als /var/www eingestellt wurde und mod_uploader als /up, dann darf das Verzeichnis als /var/www/up nicht existieren.

  • Entsprechend den Einstellungen wird das normal nicht angezeigt. Bitte korrigiere die Vorlagen ensprechend.

Ausführen

Starte Apache wie immer. Wähle die URL, die für den mod_uploader eingestellt wurde.

Problembeseitigung

Apache startet nicht

Checke den Fehlerlog des Apache. Die Fehlermeldung ist meist selbsterklärend genug um das Problem zu lösen.

Fortschrittsanzeige meldet immer "Server Busy"

Diese Problem tritt auf, wenn der mod_uploader über eine Adresse, die nicht der in UploaderBaseUrl eingestellten entspricht. Zum Beispiel: UploaderBaseUrl ist als http://localhost/up eingestellt und aufgerufen wurde http://127.0.0.1/up.

Bitte verwende die eingestellte Adresse für UploaderBaseUrl für die mod_uploader Verwendung.

Downloadzähler wurde zurückgesetzt

mod_uploader verwenden RAM-Speicher für die Speicherung dieser Werte. Wenn der apache gestoppt wird, werden diese Daten in eine Datei geschrieben.

Deswegen, wenn der Apache nicht normal gestoppt wurde, wird der Downloadzähler zurückgesetzt.

Ausführen ohne Installation

Man kann den mod_uploader auch ohne Installation verwenden. Benutze dazu folgende Befehle und rufe anschliessend die Seite http://localhost:8080/up/ auf.

Wenn man die Seite von einem anderen PC erreichen will, ändere die Einstellung localhost entsprechend ab.

$ su -
# make -f GNUmakefile.apache start

Wenn ein Fehler betreffend LoadModule auftritt, korrigiere bitte die conf/en/apache.conf entsprechend. Um den mod_uploader zu stoppen, benutze den folgenden Befehl:

# make -f GNUmakefile.apache stop

Tests

Testergebnisse

API-Dokument

http://green-rabbit.sakura.ne.jp/mod_uploader/api/

Hinweis

The Apache Modules Book Secure Coding in C And C++

Anerkennung

Special thanks to Peter Friesen for German translation.