[Frage] Alternativen zu Apache: Nginx - In Freetz verfügbar?

cmonty14

Mitglied
Mitglied seit
22 Jan 2007
Beiträge
378
Punkte für Reaktionen
0
Punkte
16
Hallo!
Ich bin in einem Artikel der Zeitschrift "Linux-User" auf einen Alternativ-Webserver zu Apache aufmerksam geworden: Nginx.

Soweit ich gesehen habe existiert kein Paket für diese Software.

Frage:
Hat jemand Erfahrung mit diesem Webserver auf Freetz? Ist er eine Alternative zu Apache mit dem Fokus auf der Integration mit OwnCloud?
Was muss generell durchgeführt werden, um die Software aus den Source-Dateien in die Freetz-Software zu integrieren?

THX
 
Mit lighttpd geht das nicht? Der wäre als Freetz-Paket verfügbar...

Gruß
Oliver
 
... eine Alternative zu Apache mit dem Fokus auf der Integration mit OwnCloud?
Du kannst hiawatha ab 8.2 (besser 8.4)
Code:
hiawatha (8.2) stable; urgency=low
    * WebDAVapp option added. Enables support for WebDAV applications like ownCloud http://owncloud.org/).
mit ownCloud verwenden.
Code:
http://svn.freetz.org/branches/sf3978_packages/make/hiawatha/
D.h ., Du solltest das Freetz-Paket hiawatha 7.6 (siehe Link oben), für hiawatha 8.4 ändern/anpassen.
 
Sorry, aber jetzt kommen die vermeintlich dummen Fragen (die es ja eigentlich nicht gibt):
1. Ist es richtig, das Paket hiawatha aus dem angegebenen Link auszuchecken und dann das Verzeichnis "hiawatha" nach /make zu kopieren?
2. Muss im nächsten Schritt die Datei "hiawatha.mk" modifiziert werden, um hiawatha 8.4 in das Image zu integrieren? Reicht es aus, alle Coding-Stellen "7.6" zu ersetzen mit "8.4" (De facto ist das nur die erste Zeile)?
3. Damit das Paket in das Image gepackt wird, muss ich eine Konfigurations-Datei anpassen? Oder kann ich das Paket "hiawatha" über make menuconfig auswählen?

THX
 
1. Ist es richtig, das Paket hiawatha aus dem angegebenen Link auszuchecken und dann das Verzeichnis "hiawatha" nach /make zu kopieren?
Ja, oder Du checkst das Verzeichnis "hiawatha" direkt nach /make aus.
2. Muss im nächsten Schritt die Datei "hiawatha.mk" modifiziert werden, um hiawatha 8.4 in das Image zu integrieren?
Ja.
Reicht es aus, alle Coding-Stellen "7.6" zu ersetzen mit "8.4" (De facto ist das nur die erste Zeile)?
Nein, das reicht nicht. Mindestens die md5sum ($(PKG)_SOURCE_MD5:=) muss auch angepasst werden.
3. Damit das Paket in das Image gepackt wird, muss ich eine Konfigurations-Datei anpassen? Oder kann ich das Paket "hiawatha" über make menuconfig auswählen?
Du musst die entsprechenden Eintragungen in die "make/Config.in" und evtl. auch in die "make/external.in" machen.

In der "hiawatha/Config.in" noch die richtige Version-Nr. eintragen.
 
Danke für diese Instruktionen.

Ein Problem habe ich aber noch:
Nachdem ich die Änderungen eingebaut habe, geht der Befehl make auf diesen Fehler:
Code:
/FB7390_freetz-trunk$ make
ERROR: You have updated to a newer svn version since last modifying your
       config. You should either run 'make oldconfig' once before building
       again or 'make menuconfig' and change the config (otherwise it will not
       be saved and you will see this message again).
make: *** [check-builddir-version] Fehler 3

Was mache ich an dieser Stelle?
make oldconfig wird wohl die alte Konfiguration ohne hiawatha bauen, oder?
 
Ein Problem habe ich aber noch:
Nur ein Problem? ;-) Vor "make" solltest Du "make hiawatha-precompiled" machen und dann wirst Du feststellen, dass der Entwickler jetzt (Version 8.4) cmake (... d. h. Version ab 2.8.4, in deinem Build-System erforderlich) verwenden lässt. Das bedeutet, die hiawatha.mk muss etwas geändert werden. Hier ein Konzept das funktioniert, das Feintuning bzw. die gewünschte Konfiguration musst Du machen ;-)
Code:
$(call PKG_INIT_BIN, 8.4)
$(PKG)_SOURCE:=$(pkg)-$($(PKG)_VERSION).tar.gz
$(PKG)_SOURCE_MD5:=d190691e15efbd80cd751ec2d5705c58
$(PKG)_SITE:=http://www.$(pkg)-webserver.org/files/
#
$(PKG)_BINARIES := $(pkg) wigwam ssi-cgi php-fcgi cgi-wrapper
$(PKG)_BINARIES_BUILD_DIR := $($(PKG)_BINARIES:%=$($(PKG)_DIR)/%)
$(PKG)_BINARIES_TARGET_DIR := $($(PKG)_BINARIES:%=$($(PKG)_DEST_DIR)/usr/bin/%)

$(PKG)_CONFIGURE_PRE_CMDS += $(call PKG_PREVENT_RPATH_HARDCODING,./configure)

$(PKG)_DEPENDS_ON := openssl xsltproc
$(PKG)_LIBS_1 := -lxml2
$(PKG)_LIBS_2 := -lxslt

$(PKG_SOURCE_DOWNLOAD)
$(PKG_UNPACKED)
$(PKG_CONFIGURED_NOP)

$(pkg)-cmake: $($(PKG)_DIR)/.unpacked
	cd $(HIAWATHA_DIR) && $(MAKE_ENV) cmake \
		-DCMAKE_C_COMPILER="$(TARGET_CC)"  \
		-DCMAKE_CXX_COMPILER="$(TARGET_CXX)"  \
		-DENABLE_CACHE=ON \
		-DENABLE_CHROOT=on \
		-DENABLE_COMMAND=on \
		-DENABLE_SSL=ON \
		-DENABLE_XSLT=ON \
		-DENABLE_IPV6=ON \
		-DENABLE_MONITOR=on \
		-DENABLE_RPROXY=ON \
		-DENABLE_TOOLKIT=ON

$($(PKG)_BINARIES_BUILD_DIR): $($(PKG)_DIR)/.unpacked $(pkg)-cmake
		$(SUBMAKE) -C $(HIAWATHA_DIR) \
		LIBXML="$(HIAWATHA_LIBS_1)" \
		LIBXSLT="$(HIAWATHA_LIBS_2)" \
		LIBZ="-lz"

$($(PKG)_BINARIES_TARGET_DIR): $($(PKG)_DEST_DIR)/usr/bin/%: $($(PKG)_DIR)/%
	$(INSTALL_BINARY_STRIP)

$(pkg):

$(pkg)-precompiled: $($(PKG)_BINARIES_TARGET_DIR)

$(pkg)-clean:
	-$(SUBMAKE) -C $(HIAWATHA_DIR) clean
	$(RM) $(HIAWATHA_DIR)/.configured

$(pkg)-uninstall:
	$(RM) $(HIAWATHA_BINARIES_ALL:%=$(HIAWATHA_DEST_DIR)/usr/bin/%)

$(PKG_FINISH)
Code:
... /freetz-devel> file packages/target-mipsel_uClibc-0.9.32.1/hiawatha-8.4/root/usr/bin/hiawatha
packages/target-mipsel_uClibc-0.9.32.1/hiawatha-8.4/root/usr/bin/hiawatha: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x3040000, stripped
Wenn "make hiawatha-precompiled" bei dir funktioniert, dann schauen wir weiter.
 
Aus der config.h (siehe unten) ist ersichtlich, was Du mit cmake konfigurieren kannst:
Code:
/* Directory settings
 */
#define CONFIG_DIR  "/usr/local/etc/hiawatha"
#define LOG_DIR     "/usr/local/var/log/hiawatha"
#define PID_DIR     "/usr/local/var/run"
#define SBIN_DIR    "/usr/local/sbin"
#define VERSION     "8.4"
#define WEBROOT_DIR "/usr/local/var/www/hiawatha"
#define WORK_DIR    "/usr/local/var/lib/hiawatha"

/* Settings
 */
#define _GNU_SOURCE 1
/* #undef CYGWIN */
/* #undef CIFS */

/* Hiawatha modules
 */
#define ENABLE_CACHE ON
#define ENABLE_CHROOT on
#define ENABLE_COMMAND on
/* #undef ENABLE_DEBUG */
#define ENABLE_IPV6 ON
#define ENABLE_LOADCHECK ON
#define ENABLE_MONITOR on
#define ENABLE_RPROXY ON
#define ENABLE_SSL ON
#define ENABLE_TOOLKIT ON
#define ENABLE_XSLT ON

/* Includes
 */
#define HAVE_CRYPT_H 1
#define HAVE_ARPA_INET_H 1
#define HAVE_NETINET_IN_H 1
#define HAVE_NETINET_TCP_H 1
/* #undef HAVE_RPCSVC_CRYPT_H */
#define HAVE_SYS_TIME_H 1

/* Functions
 */
#define HAVE_SETENV 1
#define HAVE_UNSETENV 1
#define HAVE_CLEARENV 1
#define HAVE_STRCASECMP 1
#define HAVE_STRNCASECMP 1
/* #undef HAVE_STRNSTR */
#define HAVE_STRCASESTR 1
Die "Directory settings" dürften evtl. für dich wichtig sein.
 
Ganz offen gesagt:
deine Anweisung führen bereits jetzt in Bereiche, wo es für mich mit meinen beschränkten Entwickler-Kenntnissen ganz dunkel ist.

Aber: vielleicht bekomme ich mit deiner oder der Unterstützung anderer hier etwas Licht ins Dunkel.

Jedenfalls habe ich jetzt initial die von sf3978 gepostete hiawatha.mk ohne Modifikation übernommen und danach make hiawatha-precompiled ausgeführt. Dies lief dann auf folgenden Fehler:
Code:
testThreads.c:19:0: warning: "_REENTRANT" redefined [enabled by default]
<command-line>:0:0: note: this is the location of the previous definition
xsltproc.c:74:12: warning: 'debug' defined but not used [-Wunused-variable]
mv -f .deps/testThreads.Tpo .deps/testThreads.Po
/bin/bash ../libtool --tag=CC   --mode=link /media/Targa_250GB/Freetz/FB7390_freetz-trunk/toolchain/build/mips_gcc-4.6.3_uClibc-0.9.32.1/mips-linux-uclibc/bin/mips-linux-uclibc-gcc  -march=24kc -Os -pipe -Wa,--trap -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall   -o testThreads testThreads.o -lpthread ../libxslt/libxslt.la ../libexslt/libexslt.la -lpthread -lz -lm -lxml2 -lz -lpthread -lm -lpthread -lz -lm -lxml2 -lz -lpthread -lm -lm  
libtool: link: /media/Targa_250GB/Freetz/FB7390_freetz-trunk/toolchain/build/mips_gcc-4.6.3_uClibc-0.9.32.1/mips-linux-uclibc/bin/mips-linux-uclibc-gcc -march=24kc -Os -pipe -Wa,--trap -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -o .libs/testThreads testThreads.o  ../libxslt/.libs/libxslt.so ../libexslt/.libs/libexslt.so /media/Targa_250GB/Freetz/FB7390_freetz-trunk/source/target-mips_uClibc-0.9.32.1/libxslt-1.1.26/libxslt/.libs/libxslt.so /media/Targa_250GB/Freetz/FB7390_freetz-trunk/toolchain/build/mips_gcc-4.6.3_uClibc-0.9.32.1/mips-linux-uclibc/usr/lib/libxml2.so -lz -lpthread -lm
../libxslt/.libs/libxslt.so: undefined reference to `htmlSetMetaEncoding'
../libxslt/.libs/libxslt.so: undefined reference to `htmlDocContentDumpOutput'
../libxslt/.libs/libxslt.so: undefined reference to `htmlDocContentDumpFormatOutput'
../libxslt/.libs/libxslt.so: undefined reference to `htmlNewDoc'
../libxslt/.libs/libxslt.so: undefined reference to `htmlNewDocNoDtD'
collect2: ld returned 1 exit status
make[3]: *** [testThreads] Fehler 1
make[3]: *** Warte auf noch nicht beendete Prozesse...
mv -f .deps/xsltproc.Tpo .deps/xsltproc.Po
make[3]: Leaving directory `/media/Targa_250GB/Freetz/FB7390_freetz-trunk/source/target-mips_uClibc-0.9.32.1/libxslt-1.1.26/xsltproc'
make[2]: *** [all-recursive] Fehler 1
make[2]: Leaving directory `/media/Targa_250GB/Freetz/FB7390_freetz-trunk/source/target-mips_uClibc-0.9.32.1/libxslt-1.1.26'
make[1]: *** [all] Fehler 2
make[1]: Leaving directory `/media/Targa_250GB/Freetz/FB7390_freetz-trunk/source/target-mips_uClibc-0.9.32.1/libxslt-1.1.26'

ERROR: Build failed.
make: *** [source/target-mips_uClibc-0.9.32.1/libxslt-1.1.26/xsltproc/.libs/xsltproc] Fehler 1

Es scheint ein Problem verursacht von xsltproc zu bestehen.

Frage:
1. Was mache ich mit diesem Syntax?
Code:
        ... /freetz-devel> file packages/target-mipsel_uClibc-0.9.32.1/hiawatha-8.4/root/usr/bin/hiawatha
        packages/target-mipsel_uClibc-0.9.32.1/hiawatha-8.4/root/usr/bin/hiawatha: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x3040000, stripped
2. Wo finde/baue ich die config.h?

THX
 
Es scheint ein Problem verursacht von xsltproc zu bestehen.
Ja. Versuch mal Folgendes:
"make hiawatha-dirclean", "make menuconfig" und aktiviere: "xsltproc, libxml2, build libxml2 with html support, libxslt, libexslt", speichern, exit, "make xsltproc-precompiled" und jetzt "make hiawatha-precompiled".
Frage:
1. Was mache ich mit diesem Syntax?
Code:
        ... /freetz-devel> file packages/target-mipsel_uClibc-0.9.32.1/hiawatha-8.4/root/usr/bin/hiawatha
        packages/target-mipsel_uClibc-0.9.32.1/hiawatha-8.4/root/usr/bin/hiawatha: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x3040000, stripped
Anschauen. Diese dient nur zur Info.
2. Wo finde/baue ich die config.h?
Im Beitrag #11 dieses Threads oder nach "make hiawatha-precompiled" im Verzeichnis: "... /freetz-devel/source/target-mipsel_uClibc-0.#.##.#/hiawatha-8.4".
 
Link zum Patch für hiawatha 8.4:
Code:
http://freetz.org/attachment/ticket/1139/hiawatha_8_4.patch
 
Hallo!

Alle Schritte ausgeführt mit Ausnahme des letzten Befehls "make hiawatha-precompiled".
Code:
user@pc2:/media/Targa_250GB/Freetz/FB7170_freetz_trunk$ make hiawatha-precompiled
make: *** Keine Regel, um »hiawatha-precompiled« zu erstellen.  Schluss.
 
Link zum Patch für hiawatha 8.4:
Code:
http://freetz.org/attachment/ticket/1139/hiawatha_8_4.patch

Hallo!

Ich kann den Patch nicht implementieren:
Code:
user@pc2:/media/Targa_250GB/Freetz/FB7170_freetz_trunk$ patch -p0 < ../hiawatha_8_4.patch
patch unexpectedly ends in middle of line
patch: **** Only garbage was found in the patch input.
 
Du hast wahrscheinlich die html-Seite runtergeladen? Der "raw-patch" ist hier.

Gruß
Oliver
 
Ich werde das patchen nochmals wiederholen, ...
Nach dem Patchen solltest Du die Konfiguration (... Pfade/Verzeichnisse) aus der "hiawatha-mk"-Datei, an deine Bedürfnisse/Konstellation anpassen. Zum Ändern der Datei, bitte einen Unix/Linux-Editor benutzen. Siehe hier:
Code:
...
              -DCONFIG_DIR=/var/media/ftp/uStor01/hiawatha/conf \
              -DPID_DIR=/var/media/ftp/uStor01/hiawatha/pid \
              -DLOG_DIR=/var/media/ftp/uStor01/hiawatha/log \
              -DWORK_DIR=/var/media/ftp/uStor01/hiawatha/work \
              -DWEBROOT_DIR=/var/media/ftp/uStor01/hiawatha/www
...
 
Besser wäre es, die Pfade im Binary z.B. auf /var/hiawatha/... zu legen und dann einen Link von /var/hiawatha auf die gewünschte Stelle zu legen, ansonsten muss man für eine Änderung im Pfad das Programm neu übersetzen.
 
Kostenlos!

Neueste Beiträge

Statistik des Forums

Themen
248,873
Beiträge
2,303,517
Mitglieder
378,534
Neuestes Mitglied
test-forcepaster