2012-01-11 167 views
1

There is another question关于在OSX上安装mod_mono,但我会假设在Lion出现之前,这对开发人员(如python版本)有一些重大改变。在Mac OSX Lion上安装mod_mono时遇到问题

我按照mod_mono-2.10的INSTALL自述文件中的说明进行操作。徒劳无功。

正是我所做的就是这样的:

tar xvfz mod_mono-2.10.tar.gz 
cd mod_mono-X.Y.Z 
./configure --prefix=/usr 
make 
make install 

$ apachectl -t 
httpd: Syntax error on line 54 of /private/etc/apache2/httpd.conf: Syntax error on line 8 of /private/etc/apache2/other/mod_mono.conf: Cannot load /usr/libexec/apache2/mod_mono.so into server: 
dlopen(/usr/libexec/apache2/mod_mono.so, 10): no suitable image found. Did find:\n\t/usr/libexec/apache2/mod_mono.so: mach-o, but wrong architecture 

看来是mod_mono是不是真正的问题。它本身就是单声道。

smeatonj$ file /usr/bin/mono 
/usr/bin/mono: Mach-O executable i386 
smeatonj$ file /usr/libexec/apache2/mod_mono.so 
/usr/libexec/apache2/mod_mono.so: Mach-O 64-bit bundle x86_64 
meatonj$ file /usr/sbin/httpd 
/usr/sbin/httpd: Mach-O universal binary with 2 architectures 
/usr/sbin/httpd (for architecture x86_64): Mach-O 64-bit executable x86_64 
/usr/sbin/httpd (for architecture i386): Mach-O executable i386 
smeatonj$ file /usr/bin/mono 
/usr/bin/mono: Mach-O executable i386 

单声道程序包本身没有编译为64位。也许我应该有充分阅读the install guide,但这里是关注的主要位:

32位和64位支持

在本网站上发布提供32位单声道虚拟机的单包。

从Mono 2.10开始支持64位虚拟机只有在从源代码构建Mono并安装您自己的虚拟机副本时才可用。未来,我们将为用户提供单声道和单声道64位二进制文​​件。

我们Windows.Forms的实现使用碳,正因为如此,它不会在64位单声道工作:

的64位支持今天这就是为什么我们还没有完全切换到它有一些限制。 MonoDevelop使用Carbon进行菜单集成,因此它不能在64位虚拟机上运行。 MonoMac绑定尚未被移植到64位。 全面支持64位Mono还需要我们发布64位Gtk +堆栈,这将增加大多数用户的下载大小。

我试图重新编译I386是mod_mono,以便它可以与单声道运行时运行

sudo -s 
CFLAGS="-arch i386" ./configure --prefix=/usr 
make 
make install 

smeatonj$ file /usr/libexec/apache2/mod_mono.so 
/usr/libexec/apache2/mod_mono.so: Mach-O bundle i386 

同样的问题:

$ apachectl -t 
httpd: Syntax error on line 54 of /private/etc/apache2/httpd.conf: Syntax error on line 8 of /private/etc/apache2/other/mod_mono.conf: Cannot load /usr/libexec/apache2/mod_mono.so into server: 
dlopen(/usr/libexec/apache2/mod_mono.so, 10): no suitable image found. Did find:\n\t/usr/libexec/apache2/mod_mono.so: mach-o, but wrong architecture 

我该怎么能够在运行Apache是​​mod_mono没有编译和安装64位版本的单声道?我想我可以并排执行,但是整个过程非常耗时......我不确定是否需要维护官方软件包,以及针对测试Web服务器的不同版本。

这里是是mod_mono的最新重新编译的确切端子输出:

Josh-Mac:mod_mono-2.10 smeatonj$ ./configure 
checking for a BSD-compatible install... /usr/bin/install -c 
checking whether build environment is sane... yes 
checking for a thread-safe mkdir -p... ./install-sh -c -d 
checking for gawk... no 
checking for mawk... no 
checking for nawk... no 
checking for awk... awk 
checking whether make sets $(MAKE)... yes 
checking for gcc... gcc 
checking for C compiler default output file name... a.out 
checking whether the C compiler works... yes 
checking whether we are cross compiling... no 
checking for suffix of executables... 
checking for suffix of object files... o 
checking whether we are using the GNU C compiler... yes 
checking whether gcc accepts -g... yes 
checking for gcc option to accept ISO C89... none needed 
checking for style of include used by make... GNU 
checking dependency style of gcc... gcc3 
checking build system type... i386-apple-darwin11.2.0 
checking host system type... i386-apple-darwin11.2.0 
checking for a sed that does not truncate output... /usr/bin/sed 
checking for grep that handles long lines and -e... /usr/bin/grep 
checking for egrep... /usr/bin/grep -E 
checking for fgrep... /usr/bin/grep -F 
checking for ld used by gcc... /usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld 
checking if the linker (/usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld) is GNU ld... no 
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm 
checking the name lister (/usr/bin/nm) interface... BSD nm 
checking whether ln -s works... yes 
checking the maximum length of command line arguments... 196608 
checking whether the shell understands some XSI constructs... yes 
checking whether the shell understands "+="... yes 
checking for /usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld option to reload object files... -r 
checking for objdump... no 
checking how to recognize dependent libraries... pass_all 
checking for ar... ar 
checking for strip... strip 
checking for ranlib... ranlib 
checking command to parse /usr/bin/nm output from gcc object... ok 
checking for dsymutil... dsymutil 
checking for nmedit... nmedit 
checking for lipo... lipo 
checking for otool... otool 
checking for otool64... no 
checking for -single_module linker flag... yes 
checking for -exported_symbols_list linker flag... yes 
checking how to run the C preprocessor... gcc -E 
checking for ANSI C header files... yes 
checking for sys/types.h... yes 
checking for sys/stat.h... yes 
checking for stdlib.h... yes 
checking for string.h... yes 
checking for memory.h... yes 
checking for strings.h... yes 
checking for inttypes.h... yes 
checking for stdint.h... yes 
checking for unistd.h... yes 
checking for dlfcn.h... yes 
checking for objdir... .libs 
checking if gcc supports -fno-rtti -fno-exceptions... no 
checking for gcc option to produce PIC... -fno-common -DPIC 
checking if gcc PIC flag -fno-common -DPIC works... yes 
checking if gcc static flag -static works... no 
checking if gcc supports -c -o file.o... yes 
checking if gcc supports -c -o file.o... (cached) yes 
checking whether the gcc linker (/usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld) supports shared libraries... yes 
checking dynamic linker characteristics... darwin11.2.0 dyld 
checking how to hardcode library paths into programs... immediate 
checking whether stripping libraries is possible... yes 
checking if libtool supports shared libraries... yes 
checking whether to build shared libraries... yes 
checking whether to build static libraries... yes 
checking whether byte ordering is bigendian... no 
checking for pkg-config... /usr/bin/pkg-config 
checking for sys/wait.h that is POSIX.1 compatible... yes 
checking netdb.h usability... yes 
checking netdb.h presence... yes 
checking for netdb.h... yes 
checking for unistd.h... (cached) yes 
checking for an ANSI C-conforming const... yes 
checking for pid_t... yes 
checking for size_t... yes 
checking whether time.h and sys/time.h may both be included... yes 
checking vfork.h usability... no 
checking vfork.h presence... no 
checking for vfork.h... no 
checking for fork... yes 
checking for vfork... yes 
checking for working fork... yes 
checking for working vfork... (cached) yes 
checking for ANSI C header files... (cached) yes 
checking sys/select.h usability... yes 
checking sys/select.h presence... yes 
checking for sys/select.h... yes 
checking sys/socket.h usability... yes 
checking sys/socket.h presence... yes 
checking for sys/socket.h... yes 
checking types of arguments for select... int,fd_set *,struct timeval * 
checking for memset... yes 
checking for mkdir... yes 
checking for unsetenv... yes 
checking for putenv... yes 
checking for setenv... yes 
checking for setrlimit... yes 
checking for select... yes 
checking for strcasecmp... yes 
checking for strerror... yes 
checking for strrchr... yes 
checking for dup2... yes 
checking for strndup... yes 
checking if debug mode is requested... no 
checking What level debug messages should be printed at... debug output disabled 
checking whether mod_mono should remove the DISPLAY variable from environment... no 
checking if gcov compilation was requested... no 
checking if gprof support was requested... no 
checking for apxs2 in /usr/local/apache2/sbin... no 
checking for apxs in /usr/local/apache2/sbin... no 
checking for apxs2 in /usr/local/apache2/bin... no 
checking for apxs in /usr/local/apache2/bin... no 
checking for apxs2 in /usr/local/apache/sbin... no 
checking for apxs in /usr/local/apache/sbin... no 
checking for apxs2 in /usr/local/apache/bin... no 
checking for apxs in /usr/local/apache/bin... no 
checking for apxs2 in /usr/sbin... no 
checking for apxs in /usr/sbin... /usr/sbin/apxs 
checking for apr-1-config in /usr/sbin... no 
checking for apr-config in /usr/sbin... no 
checking for apr-1-config in /usr/local/apache2/sbin... no 
checking for apr-config in /usr/local/apache2/sbin... no 
checking for apr-1-config in /usr/local/apache2/bin... no 
checking for apr-config in /usr/local/apache2/bin... no 
checking for apr-1-config in /usr/local/apache/sbin... no 
checking for apr-config in /usr/local/apache/sbin... no 
checking for apr-1-config in /usr/local/apache/bin... no 
checking for apr-config in /usr/local/apache/bin... no 
checking for apr-1-config in /usr/sbin... no 
checking for apr-config in /usr/sbin... no 
checking for apr-1-config in /usr/bin... found. 
checking for apu-1-config in /usr/sbin... no 
checking for apu-config in /usr/sbin... no 
checking for apu-1-config in /usr/local/apache2/sbin... no 
checking for apu-config in /usr/local/apache2/sbin... no 
checking for apu-1-config in /usr/local/apache2/bin... no 
checking for apu-config in /usr/local/apache2/bin... no 
checking for apu-1-config in /usr/local/apache/sbin... no 
checking for apu-config in /usr/local/apache/sbin... no 
checking for apu-1-config in /usr/local/apache/bin... no 
checking for apu-config in /usr/local/apache/bin... no 
checking for apu-1-config in /usr/sbin... no 
checking for apu-config in /usr/sbin... no 
checking for apu-1-config in /usr/bin... found. 
checking Apache version... 2.2 
checking for http_protocol.h... yes 
configure: creating ./config.status 
config.status: creating Makefile 
config.status: creating mod_mono.conf 
config.status: creating src/Makefile 
config.status: creating man/mod_mono.8 
config.status: creating man/Makefile 
config.status: creating include/mod_mono_config.h 
config.status: executing depfiles commands 
config.status: executing libtool commands 
config.status: executing quiet commands 
./config.status: line 2068: ./scripts/patch-quiet.sh: No such file or directory 
config.status: executing quiet-libtool commands 
--- 
Configuration summary for mod_mono 

    * Installation prefix = /usr/local 
    * Apache version = 2.2 
    * Apache modules directory = /usr/libexec/apache2 
    * apxs = /usr/sbin/apxs 
    * apr-config = /usr/bin/apr-1-config 
    * apu-config = /usr/bin/apu-1-config 
    * CFLAGS = -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apr-1 
    * Verbose logging (debug) = no 
    * GCOV options used = no 
    * Profiling enabled = no 
    * mono prefix = /Library/Frameworks/Mono.framework/Versions/2.10.8 
    * Default MonoApplicationsConfigDir = /private/etc/apache2/mod-mono-applications 

--- 
Josh-Mac:mod_mono-2.10 smeatonj$ make 
Making all in src 
/bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apache2 -g -O2 -I/usr/include/apache2 -I/usr/local/include -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -I/usr/include/apr-1 -Wall -DDFLT_MONO_CONFIG_DIR=\"/private/etc/apache2/mod-mono-applications\" -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apr-1 -MT mod_mono_la-mod_mono.lo -MD -MP -MF .deps/mod_mono_la-mod_mono.Tpo -c -o mod_mono_la-mod_mono.lo `test -f 'mod_mono.c' || echo './'`mod_mono.c 
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../include -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apache2 -g -O2 -I/usr/include/apache2 -I/usr/local/include -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -I/usr/include/apr-1 -Wall -DDFLT_MONO_CONFIG_DIR=\"/private/etc/apache2/mod-mono-applications\" -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apr-1 -MT mod_mono_la-mod_mono.lo -MD -MP -MF .deps/mod_mono_la-mod_mono.Tpo -c mod_mono.c -fno-common -DPIC -o .libs/mod_mono_la-mod_mono.o 
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../include -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apache2 -g -O2 -I/usr/include/apache2 -I/usr/local/include -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -I/usr/include/apr-1 -Wall -DDFLT_MONO_CONFIG_DIR=\"/private/etc/apache2/mod-mono-applications\" -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apr-1 -MT mod_mono_la-mod_mono.lo -MD -MP -MF .deps/mod_mono_la-mod_mono.Tpo -c mod_mono.c -o mod_mono_la-mod_mono.o >/dev/null 2>&1 
mv -f .deps/mod_mono_la-mod_mono.Tpo .deps/mod_mono_la-mod_mono.Plo 
/bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apache2 -g -O2 -I/usr/include/apache2 -I/usr/local/include -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -I/usr/include/apr-1 -Wall -DDFLT_MONO_CONFIG_DIR=\"/private/etc/apache2/mod-mono-applications\" -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apr-1 -MT mod_mono_la-mono-io-portability.lo -MD -MP -MF .deps/mod_mono_la-mono-io-portability.Tpo -c -o mod_mono_la-mono-io-portability.lo `test -f 'mono-io-portability.c' || echo './'`mono-io-portability.c 
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../include -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apache2 -g -O2 -I/usr/include/apache2 -I/usr/local/include -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -I/usr/include/apr-1 -Wall -DDFLT_MONO_CONFIG_DIR=\"/private/etc/apache2/mod-mono-applications\" -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apr-1 -MT mod_mono_la-mono-io-portability.lo -MD -MP -MF .deps/mod_mono_la-mono-io-portability.Tpo -c mono-io-portability.c -fno-common -DPIC -o .libs/mod_mono_la-mono-io-portability.o 
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../include -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apache2 -g -O2 -I/usr/include/apache2 -I/usr/local/include -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -I/usr/include/apr-1 -Wall -DDFLT_MONO_CONFIG_DIR=\"/private/etc/apache2/mod-mono-applications\" -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apr-1 -MT mod_mono_la-mono-io-portability.lo -MD -MP -MF .deps/mod_mono_la-mono-io-portability.Tpo -c mono-io-portability.c -o mod_mono_la-mono-io-portability.o >/dev/null 2>&1 
mv -f .deps/mod_mono_la-mono-io-portability.Tpo .deps/mod_mono_la-mono-io-portability.Plo 
/bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apache2 -g -O2 -I/usr/include/apache2 -I/usr/local/include -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -I/usr/include/apr-1 -Wall -DDFLT_MONO_CONFIG_DIR=\"/private/etc/apache2/mod-mono-applications\" -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apr-1 -MT mod_mono_la-glib_compat.lo -MD -MP -MF .deps/mod_mono_la-glib_compat.Tpo -c -o mod_mono_la-glib_compat.lo `test -f 'glib_compat.c' || echo './'`glib_compat.c 
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../include -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apache2 -g -O2 -I/usr/include/apache2 -I/usr/local/include -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -I/usr/include/apr-1 -Wall -DDFLT_MONO_CONFIG_DIR=\"/private/etc/apache2/mod-mono-applications\" -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apr-1 -MT mod_mono_la-glib_compat.lo -MD -MP -MF .deps/mod_mono_la-glib_compat.Tpo -c glib_compat.c -fno-common -DPIC -o .libs/mod_mono_la-glib_compat.o 
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../include -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apache2 -g -O2 -I/usr/include/apache2 -I/usr/local/include -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -I/usr/include/apr-1 -Wall -DDFLT_MONO_CONFIG_DIR=\"/private/etc/apache2/mod-mono-applications\" -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apr-1 -MT mod_mono_la-glib_compat.lo -MD -MP -MF .deps/mod_mono_la-glib_compat.Tpo -c glib_compat.c -o mod_mono_la-glib_compat.o >/dev/null 2>&1 
mv -f .deps/mod_mono_la-glib_compat.Tpo .deps/mod_mono_la-glib_compat.Plo 
/bin/sh ../libtool --tag=CC --mode=link gcc -Wall -DDFLT_MONO_CONFIG_DIR=\"/private/etc/apache2/mod-mono-applications\" -g -O2 -I/usr/include/apache2 -I/usr/local/include -I/usr/include/apr-1 -I/usr/include/apr-1 -module -o mod_mono.la -rpath /usr/local/lib mod_mono_la-mod_mono.lo mod_mono_la-mono-io-portability.lo mod_mono_la-glib_compat.lo 
libtool: link: gcc -Wl,-undefined -Wl,dynamic_lookup -o .libs/mod_mono.0.so -bundle .libs/mod_mono_la-mod_mono.o .libs/mod_mono_la-mono-io-portability.o .libs/mod_mono_la-glib_compat.o  
libtool: link: dsymutil .libs/mod_mono.0.so || : 
libtool: link: (cd ".libs" && rm -f "mod_mono.so" && ln -s "mod_mono.0.so" "mod_mono.so") 
libtool: link: ar cru .libs/mod_mono.a mod_mono_la-mod_mono.o mod_mono_la-mono-io-portability.o mod_mono_la-glib_compat.o 
libtool: link: ranlib .libs/mod_mono.a 
libtool: link: (cd ".libs" && rm -f "mod_mono.la" && ln -s "../mod_mono.la" "mod_mono.la") 
Making all in man 
make[1]: Nothing to be done for `all'. 
make[1]: Nothing to be done for `all-am'. 
Josh-Mac:mod_mono-2.10 smeatonj$ sudo make install 
Making install in src 
/bin/sh /Users/smeatonj/Development/src/mod_mono-2.10/install-sh -d "/usr/libexec/apache2" 
/usr/sbin/apxs -S LIBEXECDIR="/usr/libexec/apache2" -i -n mono mod_mono.la 
/usr/share/httpd/build/instdso.sh SH_LIBTOOL='/usr/share/apr-1/build-1/libtool' mod_mono.la /usr/libexec/apache2 
/usr/share/apr-1/build-1/libtool --mode=install cp mod_mono.la /usr/libexec/apache2/ 
libtool: install: cp .libs/mod_mono.0.so /usr/libexec/apache2/mod_mono.0.so 
libtool: install: (cd /usr/libexec/apache2 && { ln -s -f mod_mono.0.so mod_mono.so || { rm -f mod_mono.so && ln -s mod_mono.0.so mod_mono.so; }; }) 
libtool: install: cp .libs/mod_mono.lai /usr/libexec/apache2/mod_mono.la 
libtool: install: cp .libs/mod_mono.a /usr/libexec/apache2/mod_mono.a 
libtool: install: chmod 644 /usr/libexec/apache2/mod_mono.a 
libtool: install: ranlib /usr/libexec/apache2/mod_mono.a 
libtool: install: warning: remember to run `libtool --finish /usr/local/lib' 
chmod 755 /usr/libexec/apache2/mod_mono.so 
Making install in man 
make[2]: Nothing to be done for `install-exec-am'. 
test -z "/usr/local/share/man/man8" || .././install-sh -c -d "/usr/local/share/man/man8" 
/usr/bin/install -c -m 644 './mod_mono.8' '/usr/local/share/man/man8/mod_mono.8' 
make[2]: Nothing to be done for `install-exec-am'. 
test -z "/private/etc/apache2" || ./install-sh -c -d "/private/etc/apache2" 
/usr/bin/install -c -m 644 'mod_mono.conf' '/private/etc/apache2/mod_mono.conf' 
Josh-Mac:mod_mono-2.10 smeatonj$ 

Josh-Mac:apache2 smeatonj$ sudo apachectl -t 
httpd: Could not reliably determine the server's fully qualified domain name, using Josh-Mac.local for ServerName 
Syntax OK 
Josh-Mac:apache2 smeatonj$ sudo apachectl restart 

/私营/无功/日志/的Apache2/error_log中输出:

[周五1月13日14:28: 51 2012] [info]删除了PID文件/ private/var/run/httpd。PID(PID = 930)

[周五年01月13 14点28分51秒2012] [声明]抓SIGTERM,关停

我也有安装mod_wsgi的(唯一的其他非标准模块),但我完全禁用了,仍然得到了SIGTERM。

有一个在控制台正在生成一个错误:

13/01/12 3:22:50.793 PM org.apache.httpd: httpd: Syntax error on line 73 of /private/etc/apache2/httpd.conf: Syntax error on line 8 of /private/etc/apache2/mod_mono.conf: Cannot load /usr/libexec/apache2/mod_mono.so into server: dlopen(/usr/libexec/apache2/mod_mono.so, 10): no suitable image found. Did find:\n\t/usr/libexec/apache2/mod_mono.so: mach-o, but wrong architecture 
+1

我会检查Apache错误日志,看看是否有任何错误。 – 2012-01-11 17:15:23

+0

@Rolf,在/ var/log/apache/error_log? Apache甚至没有启动,所以不幸的是在那个日志中找不到任何东西。 – 2012-01-11 22:45:53

+0

它看起来像你的apache编译为64位,而mod_mono编译为x86。 – 2012-01-11 23:53:33

回答

3

这里是我做过什么设置单声道/是mod_mono在OSX 10.7,Apache2的 - 希望这样可以节省别人几步之遥。

请注意,我用的Apache2的一个单独的安装。你的里程可能会有所不同,但我发现在这里和那里的安装件截至2012年7月汇总在这里...通过配置mod_mono。conf,因为我有,我现在有一个apache2/mono安装工作,与apache.org标准apache2安装。虽然我是苹果粉丝男孩,但我希望OSX Apache的安装更加标准。

(1)在OSX上设置Apache2或根据您的偏好使用默认实现。如果您自己构建httpd引擎,请参阅下面的注释。 (2)获取mod_mono源文件,并进行编译,如下所示。 (3)将Apache的httpd.conf配置为包含mod_mono.conf。 (4)编辑mod_mono.conf以适合您的需求。 (5)重新启动Apache2。

当构建的apache2被放置在的/ usr /本地/ apache2的: 的./configure前缀=的/ usr /本地/ apache2的--with-包括-APR --enable-MODS的共享=所有--enable-模块=所以--enable-AuthZ的主机

当建筑是mod_mono找到位于/ usr /本地/ Apache2的apache2的: 的./configure --prefix =在/ usr /本地

在OSX 10.7上配置mod_mono时,假定可以通过/ usr/bin访问mono,就像使用macports mono安装一样:

# mod_mono.conf 

# Achtung! This file may be overwritten 
# Use 'include mod_mono.conf' from other configuration file 
# to load mod_mono module. 

<IfModule !mod_mono.c> 
    LoadModule mono_module /usr/local/apache2/modules/mod_mono.so 
</IfModule> 

<IfModule mod_headers.c> 
    Header set X-Powered-By "Mono" 
</IfModule> 

AddType application/x-asp-net .aspx 
AddType application/x-asp-net .asmx 
AddType application/x-asp-net .ashx 
AddType application/x-asp-net .asax 
AddType application/x-asp-net .ascx 
AddType application/x-asp-net .soap 
AddType application/x-asp-net .rem 
AddType application/x-asp-net .axd 
AddType application/x-asp-net .cs 
AddType application/x-asp-net .vb 
AddType application/x-asp-net .master 
AddType application/x-asp-net .sitemap 
AddType application/x-asp-net .resources 
AddType application/x-asp-net .skin 
AddType application/x-asp-net .browser 
AddType application/x-asp-net .webinfo 
AddType application/x-asp-net .resx 
AddType application/x-asp-net .licx 
AddType application/x-asp-net .csproj 
AddType application/x-asp-net .vbproj 
AddType application/x-asp-net .config 
AddType application/x-asp-net .Config 
AddType application/x-asp-net .dll 
DirectoryIndex index.aspx 
DirectoryIndex Default.aspx 
DirectoryIndex default.aspx 

Alias /mono "/Users/tommy/Sites/mono" 
AddMonoApplications default "/mono:/Users/tommy/Sites/mono" 
MonoServerPath **default** "/usr/bin/mod-mono-server4" 
MonoExecutablePath "/usr/bin/mono" 

<Location /mono> 
     MonoSetServerAlias **default** 
     SetHandler mono 
     DirectoryIndex index.aspx 
</Location> 

请注意,httpd.conf文件包含上面显示的mod_mono.conf文件。

+0

我终于在前一段时间得到单声道工作,但从未在这里更新过。问题是mod_wsgi和mod_mono一起工作。使用单独的apache安装将(应该)修复我遇到的问题。 – 2012-07-12 04:19:46

1

64位单声道VM未以运行Apache下64位是mod_mono必需的。看到了自己的“文件”命令输出(我是狮子10.7.2与Apache 2.2.20,单声道2.10.8和2.10是mod_mono):

file /usr/bin/mono 
/usr/bin/mono: Mach-O executable i386 

file /usr/libexec/apache2/mod_mono.so 
/usr/libexec/apache2/mod_mono.so: Mach-O 64-bit bundle x86_64 

file /usr/sbin/httpd 
/usr/sbin/httpd: Mach-O universal binary with 2 architectures 
/usr/sbin/httpd (for architecture x86_64): Mach-O 64-bit executable x86_64 
/usr/sbin/httpd (for architecture i386): Mach-O executable i386 

所以,我有完全相同的输出如你,正如您所看到的,您必须使用64位mod_mono才能在32位Mono VM的64位Apache下运行ASP.NET页面。

我想你应该从一开始就再试一次:

  • 下载latest Mono VM(我建议你采取的版本2.10.8,不2.10.8.1因为这一个不被视为稳定)
  • 卸载通过在命令行中运行地处MonoFramework-MRE-2.10.8_3.macos10.xamarin.x86.pkg束脚本uninstallMono.sh,该目录下单的所有先前版本Contents/Resources
  • 通常安装在单VM
  • 下载latest mod_mono Apache module:您必须确保mod_mono版本匹配单向虚拟机版本
  • 提取您想要的存档内容并使用以下命令进行编译(如您所见,我没有提供任何参数给命令):

    ./configure
    make
    sudo make install

  • 确保你有下面这行你/etc/apache2/httpd.conf文件的末尾:Include /private/etc/apache2/mod_mono.conf

  • 重启Apache服务器使用以下命令:sudo apachectl restart

这应该工作!如果不是这种情况,请发布mod_mono编译的输出以查看是否发生任何错误。还有你的httpd.conf文件:问题可能与另一个与mod_mono冲突的Apache模块有关。

我建议使用mod_mono.conf文件my own version,因为它使AutoHosting功能(只与您当前的文化取代MonoSetEnv LANG=fr_FR.UTF-8线,像“EN-US.UTF-8”或“JA-JP.UTF-8” )。

祝你好运! :O)

+0

更接近!没有得到mach-o错误,只是一个SIGTERM,当我尝试启动加载mod_mono配置的Apache。 – 2012-01-13 03:31:58

+0

你的命令与地雷输出完全相同,所以mod_mono的编译进行得很顺利。也许你可以在“make install”输出中执行它的建议:'警告:记得运行libtool --finish/usr/local/lib'。这在我的系统中不是必需的,所以我怀疑它解决了你的问题(只有mod_mono的手册页安装在/ usr/local中)。你可以发布你的“httpd.conf”文件来看看我的有什么不同吗?关于你的系统的另一个问题:是Lion的全新安装还是Snow Leopard的升级? – CedX 2012-01-13 15:28:31