还有一个关于在OSX上安装mod_mono的问题 ,但是我会假设在Lion出现之前,对于开发者(比如python版本)有一些重大的改变。
我遵循了mod_mono-2.10的INSTALL自述文件中的说明。 徒劳无功。
正是我所做的是这样的:
tar xvfz mod_mono-2.10.tar.gz cd mod_mono-XYZ ./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位编译的。 也许我应该完全阅读安装指南,但这里是主要的关注点:
32位和64位支持
本网站上发布的Mono软件包提供了一个32位Mono虚拟机。
从Mono 2.10开始支持64位虚拟机只有从源代码构buildMono并安装您自己的虚拟机副本时才可用。 将来,我们将为用户提供单声道和单声道二进制文件。
64位支持今天有一些限制,这就是为什么我们还没有完全切换到它:
我们的Windows.Forms实现使用Carbon,因此,它不适用于64位Mono。 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位版本的mono? 我想我可以并排做,但是这整个过程非常耗费时间..我不知道维护官方软件包,而只是一个testingweb服务器的不同版本。
以下是mod_mono最新重新编译的确切的terminal输出:
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
/ private / var / log / apache2 / error_log输出:
[星期五1月13日14:28:51 2012] [信息]删除PID文件/private/var/run/httpd.pid(pid = 930)
[星期五1月13日14:28:51 2012] [通知]抓到了SIGTERM,closures
我也有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
以下是我在OSX 10.7,Apache2上设置mono / mod_mono的方法 – 希望这可以节省别人几个步骤。
请注意,我使用了一个单独的安装apache2。 你的里程可能会有所不同,但我已经发现在这里和那里的安装在2012年7月汇总在这里…通过配置mod_mono.conf,因为我有,现在我有一个apache2 / mono安装工作,与apache2安装这是从apache.org标准。 虽然我是一个苹果粉丝男孩,但我希望OSX Apache的安装更加标准化。
(1)在OSX上设置Apache2或根据您的偏好使用默认实现。 如果您自己构建httpd引擎,请参阅下面的注释。 (2)获取mod_mono源码,并编译如下。 (3)将Apache的httpd.conf配置为包含mod_mono.conf。 (4)编辑mod_mono.conf以适应您的需求。 (5)重启Apache2。
当建立apache2放置在/ usr / local / apache2时: ./configure –prefix = / usr / local / apache2 –with-included-apr –enable-mods-shared = all –enable-module = so –enable-AuthZ的主机
在/ usr / local / apache2下建立mod_mono以查找apache2时: ./configure –prefix = / usr / local
当在OSX 10.7上配置mod_mono时,假设mono可以像macports mono安装一样通过/ usr / bin访问:
# mod_mono.conf # Achtung! This file may be overwritten # Use 'include mod_mono.conf' from other configuration file # to load mod_mono module. <Ifmodulee !mod_mono.c> Loadmodulee mono_module /usr/local/apache2/modules/mod_mono.so </Ifmodulee> <Ifmodulee mod_headers.c> Header set X-Powered-By "Mono" </Ifmodulee> 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文件。
为了在Apache下运行64位mod_mono,不需要64位Mono VM。 看到我自己的“文件”命令输出(我在狮子10.7.2与Apache 2.2.20,单声道2.10.8和mod_mono 2.10):
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才能在64位的Apache下运行带有32位Mono虚拟机的ASP.NET页面。
我想你应该从头开始再试:
MonoFramework-MRE-2.10.8_3.macos10.xamarin.x86.pkg
包中的脚本uninstallMono.sh
卸载所有先前版本的Mono,目录Contents/Resources
提取您想要的档案的内容,并使用以下命令进行编译(如您所见,我不提供任何参数给命令):
./configure
make
sudo make install
确保在/etc/apache2/httpd.conf
文件末尾有以下行: Include /private/etc/apache2/mod_mono.conf
sudo apachectl restart
这应该工作! 如果不是这种情况,请张贴mod_mono编译的输出来查看是否有错误发生。 还有你的httpd.conf
文件:问题可能与另一个与mod_mono冲突的Apache模块有关。
我建议使用我自己版本的mod_mono.conf
文件,因为它启用了AutoHosting功能(只需将MonoSetEnv LANG=fr_FR.UTF-8
行替换为您当前的文化,如“en-US.UTF-8”或“ja -JP.UTF-8" )。
祝你好运! :O)