公司微信网站制作,做培训网站哪家好,优化师培训,快速百度在 Ubuntu Server 上安装配置 Mono 生产环境在 Ubuntu Server 上安装和配置 Apache2 #xff0b; Mono 生产环境的记录。 服务器环境是 Ubuntu Server 13.04 虚拟机模式 (Virtual Machine Mode)#xff0c; 安装的 Mono 的版本是 3.2.1 #xff0c; 最终环境如下图所示…在 Ubuntu Server 上安装配置 Mono 生产环境在 Ubuntu Server 上安装和配置 Apache2 Mono 生产环境的记录。 服务器环境是 Ubuntu Server 13.04 虚拟机模式 (Virtual Machine Mode) 安装的 Mono 的版本是 3.2.1 最终环境如下图所示准备编译环境还是老话题 先准备 GCC 编译环境 这样才可以从源代码编译安装所需要的软件。 首先需要安装的是基本的编译工具 只要输入下面的命令即可sudo apt-get install g gettext autoconf接下来输入用户名和密码 就可以自动安装必须的命令行编译工具了。从源代码编译安装 libgdiplus对于服务器来说 主要运行 Apache、 ASP.Net、 Mvc 以及 WCF 等服务端程序 一般不会运行图形界面 因为图形界面会消耗额外的内存和处理器资源 所以说 libgdiplus 不是必须安装的 不过一个常见的场景是需要在服务端动态生成图片 也会用到 libgdiplus 因此 libgdiplus 还是推荐安装的。 如果服务器上不需要生成图片 则可以不用安装 libgdiplus 。先安装编译 libgdiplus 所需的依赖项 输入下面的命令sudo apt-get install libglib2.0-dev libpng12-dev libexif-dev libx11-dev libfreetype6-dev libfontconfig1-dev libjpeg62-dev libgif-dev libxrender-dev下载 libgdiplus 最新版的源代码wget https://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.9.tar.bz2下载完成之后解压 并且换到源代码的目录tar -jxvf libgdiplus-2.10.9.tar.bz2cd libgdiplus-2.10.9配置并检查 libgdiplus 的编译选项./configure这是最关键的步骤 如果 configure 命令中途出错 则一般是缺少了某个依赖的库 只要根据提示安装相应的依赖库就可以了 configure 命令运行结果如果如下图所示 则表示可以进行下一步了上图中的配置结果不支持 tiff 因为在服务端动态生成 tiff 图片的需求很小 所以这个 tiff 可以直接忽略了 如果需要生成 tiff 只要安装 libtiff-dev 再次执行 configure 命令即可。接下来接着输入下面的命令就可以编译并安装 libgdiplus 了makesudo make install常见问题如果在 make 的过程中出现类似如下错误Making all in pixmanmake[4]: Entering directory /usr/local/src/libgdiplus-2.10.9/pixman/pixmansourcepixman-access.c objectpixman-access.lo libtoolyes \DEPDIR.deps depmodenone /bin/sh ../depcomp \/bin/sh ../libtool --tagCC --modecompile gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -Wall -fvisibilityhidden -c -o pixman-access.lo pixman-access.c../libtool: line 852: X--tagCC: command not found../libtool: line 885: libtool: ignoring unknown tag : command not found../libtool: line 852: X--modecompile: command not found../libtool: line 1018: *** Warning: inferring the mode of operation is deprecated.: command not found../libtool: line 1019: *** Future versions of Libtool will require --modeMODE be specified.: command not found../libtool: line 1162: Xgcc: command not found../libtool: line 1162: X-DHAVE_CONFIG_H: command not found../libtool: line 1162: X-I.: command not found../libtool: line 1162: X-I..: command not found../libtool: line 1162: X-g: command not found../libtool: line 1162: X-O2: command not found../libtool: line 1162: X-Wall: command not found../libtool: line 1162: X-fvisibilityhidden: command not found../libtool: line 1162: X-c: command not found../libtool: line 1214: Xpixman-access.lo: command not found../libtool: line 1219: libtool: compile: cannot determine name of library object from : command not foundmake[4]: *** [pixman-access.lo] Error 1make[4]: Leaving directory /usr/local/src/libgdiplus-2.10.9/pixman/pixmanmake[3]: *** [all-recursive] Error 1make[3]: Leaving directory /usr/local/src/libgdiplus-2.10.9/pixmanmake[2]: *** [all] Error 2解决方法是输入下面的命令 然后再继续执行 make 命令export echoecho如果出现类似这样的错误/usr/lib64/libglib-2.0.so.0: could not read symbols: Invalid operationcollect2: error: ld returned 1 exit statusmake[2]: *** [testgdi] Error 1make[2]: Leaving directory /usr/local/src/libgdiplus-2.10.9/testsmake[1]: *** [all-recursive] Error 1make[1]: Leaving directory /usr/local/src/libgdiplus-2.10.9make: *** [all] Error 2解决方法是先执行 ./configure 命令 然后编辑 test/Makefile 文件将 130 行的 LIBS -lpthread -lfontconfig 改为 LIBS -lpthread -lfontconfig -lglib-2.0 -lX11再次执行 make 命令即可。最终 在 make 命令执行成功之后 在继续执行 sudo make install 命令进行安装。从源代码编译安装 mono 、 xsp安装好了 libgdiplus 之后 接下来的 mono 和 xsp 就是一路顺风了 只要简单的敲几行命令就可以了wget https://download.mono-project.com/sources/mono/mono-3.2.3.tar.bz2tar -jxvf mono-3.2.3.tar.bz2cd mono-3.2.3makesudo make installwget https://download.mono-project.com/sources/xsp/xsp-2.10.2.tar.bz2tar -jxvf xsp-2.10.2.tar.bz2cd xsp-2.10.2.tar.bz2makesudo make install执行上面的命令 一般都不会出现什么错误了。 现在可以测试一下安装的 mono 和 xsp 在终端输入mono --version可以得到如下图的提示编译安装 xsp 之后 会在 /usr/local/lib/xsp/test 目录下生成一个 .net 测试网站 我们可以用这个测试站点来测试 mono xsp 的安装 输入下面的命令cd /usr/local/lib/xsp/testlsxsp可以看到的命令行输出如下打开浏览器 访问服务器的 8080 端口 可以看到的如下的画面 说明 mono xsp 已经安装成功了。安装 apache2 和 apache2-dev前面已经安装好了 mono xsp 用来测试应用的话足够了 但是不能做为服务器生产环境使用 因此还需要继续安装 apache http server 并将 mono 做为 apache 的模块挂载上去。 Apache http server 我们选择从 Ubuntu Server 的软件仓库中安装 只要输入下面的命令即可sudo apt-get install apache2 apache2-prefork-dev apache2-threaded-dev第一个软件包是 Apache Http 服务器 另外两个是 Apache 的开发包 接下来要安装的 mod_mono 依赖这两个开发包 因此一并安装。从源代码编译安装 mod_mono现在 安装 mod_mono 也是非常简单的wget https://origin-download.mono-project.com/sources/mod_mono/mod_mono-2.10.tar.bz2tar -jxvf mod_mono-2.10.tar.bz2cd mod_mono-2.10./configuremakesudo make install这个一般也不会出现什么错误 基本上都能正确安装。配置 apache2 和 mod_mono现在 可以说万事具备 只欠东风 只要将 mod_mono 配置并加载到 apache 中就可以了 apache 在 Ubuntu Server 上的配置目录是 /etc/apache2 在编译安装 mod_mono 的时候 已经将 mod_mono.conf 复制到这个目录了 我们只要修改 apache2 的配置 引用这个文件即可 /etc/apache2 的目录结构如下通过查看 /etc/apache2/apache2.conf 文件可以知道各个目录的含义 只要在 /etc/apache2/mods_enabled 目录新建一个链接文件 指向 /etc/apache2/mod_mono.conf 即可加载 mod_mono 切换到 /etc/apache2/mods-enabled 目录 输入下面的命令添加链接cd /etc/apache2/mod-enabledsudo ln -s ../mod_mono.conf ./mod_mono.conf现在输入 ls -l /etc/apache2/mods-enabled/mod_*.conf 输出如下所示ls -l /etc/apache2/mods-enabled/mod_*.conflrwxrwxrwx 1 root root 16 Sep 6 13:34 mod_mono.conf - ../mod_mono.conf看到有 mod_mono.conf - ../mod_mono.conf 的输出提示 说明链接链接已经做好了 重启 Apache 服务就会加载 mod_mono 。有兴趣的可以输入命令 more /etc/apache2/mod_mono.conf 查看一下这个文件的内容 看是不是很熟悉的 aspx 、 asmx 、 ashx 等都出现了。现在在默认站点下添加一个名为 MonoTest 的测试程序 需要编辑 /etc/apache2/sites-available/default 文件 在文件的最后 CustomLog 指令之前 插入下面的配置Alias /MonoTest /usr/local/lib/xsp/testMonoServerPath MonoTest /usr/bin/mod-mono-server2MonoDebug MonoTest trueMonoSetEnv MonoTest MONO_IOMAPallMonoApplications MonoTest /MonoTest:/usr/local/lib/xsp/testAllow from allOrder allow,denyMonoSetServerAlias MonoTestSetHandler monoSetOutputFilter DEFLATESetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-varyAddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript保存并关闭这个文件 然后输入下面的命令重启 Apache2 服务sudo service apache2 restart然后再次打开浏览器 输入地址 https://server-name-or-address/MonoTest 看到类似下面的画面就大功告成了当然 一切只是个开始 接下来将继续测试 ASP.Net MVC 、 EntityFramework 、 NHibernate 等常用组件在 Mono 上的表现。参考资料