以Linux(Ubuntu/openSUSE/CentOS)下安排ASP.NET(Apache + Mono)在Linux(Ubuntu/openSUSE/CentOS)下安排ASP.NET(Apache + Mono)

【题外话】

【题外话】

逸的俗气竟然想尝尝测试好做的种类以不同操作系统及之属性表现,所以决定尝试在Linux上配备Apache和Mono的条件。由于平素老少接触Linux,所以打网上搜了几乎篇稿子(附在相互关链接中)尝试,部署的经过也并非一帆风顺,所以即使依据自己于Azure上安排的情事又开展了整治,希望对老少接触Linux的校友有帮助。以下有所操作都于Azure上之虚拟机里布置,如果以地面或虚拟机里安排,可能率先还用配置网卡设置等。

悠闲的无聊竟然想尝测试好做的花色以不同操作系统及的性质表现,所以决定尝试在Linux上安排Apache和Mono的环境。由于平常颇少接触Linux,所以于网上搜了几乎首文章(附在竞相关链接中)尝试,部署之长河吧绝不一帆风顺,所以即使冲自己以Azure上部署的状况更展开了整治,希望对异常少接触Linux的校友有帮助。以下有所操作都于Azure上之虚拟机里安排,如果以地头或虚拟机里部署,可能率先还需配备网卡设置等。

 

 

【文章索引】

【文章索引】

  1. 在Ubuntu下安装Apache
  2. 在Ubuntu下安装Mono
  3. 在Ubuntu下部署ASP.NET网站
  4. 以openSUSE下的操作
  5. 每当CentOS下之操作
  6. 相关链接

 

 

【一、在Ubuntu下安装Apache】

【一、在Ubuntu下安装Apache】

Ubuntu
Server安装以后,默认没有图形界面,其实在Linux不用图形界面也甚爱就足以拓展安排。在Azure上配置好Ubuntu
Server(这里运用Azure上提供的Ubuntu Server 12.04
LTS,2013/6/24)以后,会自行配置好SSH的22端口,我们可以一直利用SSH工具连接服务器,这里用免费开源之PuTTY(http://www.putty.org/)。如果在Azure上配置的使用密码连接主机则这里直接输入地址点击“Open”即可,如果还上传了SSH密钥,则还应在Connection/SSH/Auth里选择对应的密钥才可以连接。

Ubuntu
Server安装以后,默认没有图形界面,其实在Linux不用图形界面也非常爱就得拓展安排。在Azure上配备好Ubuntu
Server(这里运用Azure上提供的Ubuntu Server 12.04
LTS,2013/6/24)以后,会自行配置好SSH的22端口,我们得一直运用SSH工具连接服务器,这里用免费开源之PuTTY(http://www.putty.org/)。如果当Azure上配置的使密码连接主机则这里一直输入地点点击“Open”即可,如果还上传了SSH密钥,则还许诺以Connection/SSH/Auth里摘相应的密钥才堪接连。

安完后得输入“mono
-V”查看安装之mono的版(注意V是大写的),当然为堪形容个C#的ConsoleApp看看,可以为此下列命令编译C#代码。

图片 1

gmcs test.cs

一连后输入设置的用户称与密码即可登录Ubuntu系统,会面世如下图的一声令下执行,我们所做的几乎有工作还是透过命令行操作的。

要是程序尚未问题之说话虽会生成test.exe,可以经如下命令执行。当然也可于Windows上编译好exe文件后复制到Linux上实施也是可以的。

图片 2

mono test.exe

当Ubuntu下安装软件其实十分便利,Ubuntu提供了apt-get工具,可以采取该工具直接下载安装软件。

对接下根据自己索要之版选择安装Apache对ASP.NET 2.0要ASP.NET
4.0底支撑,mono-apache-server2为ASP.NET
2.0的支持,mono-apache-server4是ASP.NET
4.0,两者可以以有,切换需在Apache的配备文件中切换。软件包详情:http://packages.ubuntu.com/quantal/mono-apache-server2

每当Linux里,系统最高权力账户也root账户,而默认登录的账户并非root账户,例如非负有安装程序等权限,不过同Windows一样都提供了晋级权限的主意,就是sudo命令,在实行的诸条命令前增长“sudo
”,即好root账户的权位履行。在率先差下sudo时会要求输入当前账户的密码,确认后即可在一段时间(默认5分钟)内使sudo命令都无欲输入密码,一段时间没有行使后则用更输入密码。

sudo apt-get install mono-apache-server2

率先我们装Apache,输入下列命令,之后会提醒是否安装等,输入Y继续。软件包详情:http://packages.ubuntu.com/quantal/apache2

勿懂得干什么,安装到最后会卡在是地方

sudo apt-get install apache2
sudo vim /etc/apache2/mods-available/mod_mono.conf

图片 3

 

待一段时间后,Apache就会见活动装配备好,这时候可以配备好Azure上的80端口,配置好后用浏览器访问服务器的地址可以视如下图的唤起,说明安装成功。

【三、在Ubuntu下部署ASP.NET网站】

图片 4

每当Windows上安排网站可以由此远程桌面直接把网站或由包好的网站复制过去,在Linux下实际SSH不光可以支持命令执行,还好支持文件传输,我这边用免费开源的Filezilla(https://filezilla-project.org/),Filezilla支持FTP和SSH两种协议,在站点管理器中选择SFTP协议,然后把登陆类型设置为正常,输入用户名和密码即可登录。

 

下一场将索要上传的网站打包为zip文件,然后上传到用户目录下(/home/用户名/),然后在命令执行被输入就可以了。

【二、在Ubuntu下安装Mono】

sudo unzip 压缩文件名.zip -d /var/www

Linux有只开源之.NET运行时,叫做Mono(http://www.mono-project.com/),可以支持以Linux上运行.NET应用程序。

自然,现在因此而的浏览器访问你的服务器地址仍然是“It
works”,我们还要去index.html就可了。

依旧据上述办法输入下列命令安装Mono及C#编译器,软件包详情:http://packages.ubuntu.com/quantal/mono-gmcs

sudo rm /var/www/index.html
sudo apt-get install mono-gmcs

 

安装完后得输入“mono
-V”查看安装之mono的本(注意V是大写的),当然也可形容个C#的ConsoleApp看看,可以据此下列命令编译C#代码。

【四、在openSUSE下的操作】

gmcs test.cs

不等之系采用不同的软件包管理程序,SUSE则提供了一个受zypper的软件包管理程序,使用呢很好(这里运用的openSUSE是Azure上提供的openSUSE
12.3)。

若果程序尚未问题之言语虽会生成test.exe,可以经过如下命令执行。当然也得以Windows上编译好exe文件后复制到Linux上实行呢是可的。

第一是安Apache。

mono test.exe
sudo zypper install apache2

接通下根据自己待之本选择安装Apache对ASP.NET 2.0或者ASP.NET
4.0底支撑,mono-apache-server2为ASP.NET
2.0的支持,mono-apache-server4是ASP.NET
4.0,两者可以同时有,切换需在Apache的配置文件被切换。软件包详情:http://packages.ubuntu.com/quantal/mono-apache-server2

以及Ubuntu安装过程不同之凡,在设置完成后连不曾启动Apache的提拔。所以还得手动配置服务由启动。

sudo apt-get install mono-apache-server2
sudo systemctl enable apache2.service

sudo systemctl  apache2.service 

莫了解干什么,安装至最终见面卡在此地方

现因故浏览器就是好拜服务器了。

图片 5

然后采用zypper安装Mono了(其中System.Drawing会就此到libgdiplus,多语言支持会因此到mono-locale-extras,不过尽管如此还有一些零部件没有装,后边会说明):

但会由此Ctrl+Z强制退出,然后输入“sudo
reboot”重开服务器,不过Linux服务器很快就会更开完

sudo zypper install mod_mono libgdiplus mono-locale-extras

此后重新安装Apache的模块libapache2-mod-mono即可。当然,mono-gmcs、mono-apache-server2、libapache-mod-mono都是可合安装之,不过如果注意mono-apache-server2和libapache-mod-mono的顺序,如果mono-apache-server2在libapache-mod-mono之后吧,由于因项的来头,libapache-mod-mono会现在自行选择设置mono-apache-server4。而且,如果并装的语句,在上述卡住的位置Ctrl+Z重开后,libapache-mod-mono并无布置好导致众多操作无法实施,还欲实践“sudo
dpkg –configure
-a”这句发号施令才行。软件包详情:http://packages.ubuntu.com/quantal/libapache2-mod-mono

联网下去需要配备mod_mono,这里推荐用官方提供的http://go-mono.com/config-mod-mono/,页面打开后如下图所示:

sudo apt-get install libapache2-mod-mono

从此以后方可像Ubuntu一样让openSUSE安装及zip解压缩工具(sudo zypper install
zip),将压缩文件解压缩到安装的网站到底目录后即可。之后只是待再行启Apache服务器后即可立刻访问ASP.NET网站了:

唯独安装完毕要打开网站发现还是无力回天尽,其实是没配备ASP.NET应用程序。虽然现在支撑活动配置应用程序,但是要得改/etc/apache2/mods-available/mod_mono.conf文件。(原文见:http://www.mono-project.com/AutoConfiguration)当然要您会手动配置应用程序的语也可以在拖欠公文中手动配置应用程序(下同)。

sudo systemctl restart apache2.service
sudo vim /etc/apache2/mods-available/mod_mono.conf

消专注的凡,这样成功后不像Ubuntu把无数依赖库都装上了,如果以上述命令的口舌才出以下部件被安装:

图片 6

和openSUSE类似,安装收尾要团结手动配置服务由启动。

以键盘上之i键启用vim的编写模式,由于mono-server2-hosts.conf文件被就对成千上万参数进行了配备,所以只是用以图备受之长“MonoAutoApplication
enabled”一行即可。此外,如果你的网站受到还产生其它的文件格式(比如HttpHandler经常使用.axd),请上加在第一执行后,另外假如网站默认文件不是index.aspx还得修改第二实践后底文书称。注意,由于Linux是分别轻重缓急写的,所以切记不要拿大小写来错。

sudo chkconfig --levels 235 httpd 

如果服务器上还设置了ASP.NET
4.0底支撑(mono-apache-server4),并且需要切换到ASP.NET
4.0,那么单纯需修改最后一实施,将2变动也4即可。

接下来马上启动Apache服务。

修改完晚按Ctrl+C结束编辑模式,然后按照冒号键(:)进入命令模式,输入w保存文件,然后再次以冒号键,再比如q键退出vim。

sudo /etc/init.d/httpd 

末尾执行下述命令重启Apache服务器即可。

现今再度就此浏览器访问服务器地址便好正常访问Http服务器了。

sudo /etc/init.d/apache2 restart 

然CentOS官方尚未自包好之mono的rpm包,所以于好的点子是祥和编译。

 

第一配置好编译的条件。

【三、在Ubuntu下部署ASP.NET网站】

sudo yum install gcc gcc-c++ bison pkgconfig glib2-devel gettext make freetype-devel fontconfig-devel libX11-devel libpng-devel libjpeg-devel libtiff-devel giflib-devel libexif-devel cairo-devel httpd-devel

当Windows上配备网站可以透过远程桌面直接把网站要于包好的网站复制过去,在Linux下实际SSH不光可以支撑命令执行,还得支持文件传输,我这边用免费开源之Filezilla(https://filezilla-project.org/),Filezilla支持FTP和SSH两栽协议,在站点管理器中挑选SFTP协议,然后把登陆类型设置也健康,输入用户称及密码即可登录。

恐怕会见唤起用提升kernel-headers,但是系统或默认禁止了主导之管教,所以若出现上述命令无法执行安装的话,还欲在齐同一条命令下附加“ –disableexcludes=main”,即如下的样式。

图片 7

sudo yum install gcc gcc-c++ bison pkgconfig glib2-devel gettext make freetype-devel fontconfig-devel libX11-devel libpng-devel libjpeg-devel libtiff-devel giflib-devel libexif-devel cairo-devel httpd-devel --disableexcludes=main

签到后默认的路径为/home/用户名/,就跟命令行下默认的目录一致。Apache的默认路径在/var/www/,可以当马上之下找到index.html,也尽管是可怜“It
works”的网页。不过此目录一般用户之权位为无法写入,所以无法拿网站一直配备到是目录下。当然你得在PuTTY下将以此目录的权修改后重新上污染,不过事实上还可产生双重简短的法门,就是用包裹文件上传到用户目录下然后又破压缩至者目录下。

一经尽安装成功,可以执行下列语句下载需要安装组件的源码包并解压缩。

首先安装zip解压缩程序,软件包详情:http://packages.ubuntu.com/quantal/zip

cd /usr/src/
sudo wget http:
sudo wget http:
sudo wget http:
jxf libgdiplus-jxf mono-.--.tar.bz2
sudo apt-get install zip

编译并安装libgdiplus。

然后以用上传的网站打包为zip文件,然后上传到用户目录下(/home/用户名/),然后以指令执行中输入就足以了。

-/configure --prefix=/usr



-./configure --prefix=/usr

-/configure --prefix=/usr

-/configure --prefix=/usr
sudo unzip 压缩文件名.zip -d /var/www

接下来又修改“/etc/httpd/conf/mod_mono.conf”这个文件,与Ubuntu上同名的布文件配置相同。不过出于未像Ubuntu下产生成的部署文件,所以需要以文书中上加如下两履,由于设置的上自动装了2.0跟4.0的支持,所以可以以如下的2换为4即可启用ASP.NET
4.0:

当然,现在所以你的浏览器访问你的服务器地址仍然是“It
works”,我们还要去index.html就可以了。

MonoServerPath 
sudo rm /var/www/index.html

 

 

sudo cp /etc/httpd/conf/mod_mono.conf /etc/httpd/conf.d/

【四、在openSUSE下的操作】

 

今非昔比之网应用不同的软件包管理程序,SUSE则提供了一个吃zypper的软件包管理程序,使用与否颇方便(这里运用的openSUSE是Azure上提供的openSUSE
12.3)。

【六、相关链接】

第一是装Apache。

1、配置linux(apache) + mono 下运行
asp.net:http://www.cnblogs.com/hcl0208/archive/2010/10/25/1860173.html
2、openSUSE上安装Mono并发布ASP.Net程序:http://www.linuxidc.com/Linux/2011-04/34872.htm
3、CentOS 6.0 安装 MONO
2.10.8:http://www.cnblogs.com/aquilahkj/archive/2011/11/03/2234380.html
4、Mono环境下未支持中文的解决方式:http://www.cnblogs.com/shanyou/archive/2010/10/08/1846198.html

sudo zypper install apache2

http://www.bkjia.com/Linuxjc/447125.htmlwww.bkjia.comtruehttp://www.bkjia.com/Linuxjc/447125.htmlTechArticle【题外话】
闲的低俗竟然想尝试测试好举行的种类于不同操作系统及之习性表现,所以决定尝试在Linux上部署Apache和Mono的环境。由于平常好…

以及Ubuntu安装过程不同之是,在装好后连没启动Apache的唤起。所以还待手动配置服务自启动。

sudo systemctl enable apache2.service

然后就启动Apache。

sudo systemctl start apache2.service 

而今所以浏览器就是可看服务器了。

下一场运zypper安装Mono了(其中System.Drawing会因此到libgdiplus,多语言支持会用到mono-locale-extras,不过即使这样还有部分组件没有设置,后边会说明):

sudo zypper install mod_mono libgdiplus mono-locale-extras

连片下去需要配置mod_mono,这里推荐下官方提供的http://go-mono.com/config-mod-mono/,页面打开后如下图所示:

图片 8

可以挑选Virtual
Host或者Application两栽模式,第一栽好根据请求的服务器地址设置ASP.NET网站的根本路径,第二栽可以因请求的虚拟目录设置ASP.NET网站的清路径。除此之外页面下方还有几独装好于定义,设置完后选页面下方的Download下载.conf文件,将文件上传到openSUSE服务器后使如下命令复制到Apache配置文件夹下:

sudo cp 配置文件名.conf /etc/apache2/conf.d/

以后方可像Ubuntu一样被openSUSE安装上zip解压缩工具(sudo zypper install
zip),将压缩文件解压缩到安装的网站到底目录后即可。之后才待还启Apache服务器后就是好及时访问ASP.NET网站了:

sudo systemctl restart apache2.service

需留意的是,这样好后无像Ubuntu把广大因库都作及了,如果仍上述命令的言语不过发生以下部件被设置:

图片 9

于是可能还有许多急需之零件没有设置,比如要连接Oracle数据库时,可能提示找不交System.Data.OracleClient程序集,需要安装“mono-data-oracle”,到上可依据出现的不当又装。其实也得根据通配符安装“mono*”,把与mono有关的且设置上,不过这样吗会见伪装很多请勿待之零部件。

 

【五、在CentOS下之操作】

CentOS的软件管理程序是yum(这里以的CentOS是Azure上提供的CentOS 6.3)。

率先还是安Apache。

sudo yum install httpd

及openSUSE类似,安装完毕需要协调手动配置服务自启动。

sudo chkconfig --levels 235 httpd on

然后立即启动Apache服务。

sudo /etc/init.d/httpd start

兹又就此浏览器访问服务器地址便得正常访问Http服务器了。

不过CentOS官方并未从包好之mono的rpm包,所以比较好的方是团结编译。

第一配置好编译的条件。

sudo yum install gcc gcc-c++ bison pkgconfig glib2-devel gettext make freetype-devel fontconfig-devel libX11-devel libpng-devel libjpeg-devel libtiff-devel giflib-devel libexif-devel cairo-devel httpd-devel

恐怕会见唤起用提升kernel-headers,但是系统或默认禁止了主导之管,所以若出现上述命令无法推行安装的话,还需在齐同一漫长命令后附加“ –disableexcludes=main”,即如下的款式。

sudo yum install gcc gcc-c++ bison pkgconfig glib2-devel gettext make freetype-devel fontconfig-devel libX11-devel libpng-devel libjpeg-devel libtiff-devel giflib-devel libexif-devel cairo-devel httpd-devel --disableexcludes=main

倘尽安装成功,可以执行下列语句下载需要安装组件的源码包并解压缩。

cd /usr/src/
sudo wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2
sudo wget http://download.mono-project.com/sources/mono/mono-2.10.8.tar.bz2
sudo wget http://download.mono-project.com/sources/xsp/xsp-2.10.tar.bz2
sudo wget http://download.mono-project.com/sources/mod_mono/mod_mono-2.10.tar.bz2

sudo tar jxf libgdiplus-2.10.tar.bz2
sudo tar jxf mono-2.10.8.tar.bz2
sudo tar jxf xsp-2.10.tar.bz2
sudo tar jxf mod_mono-2.10.tar.bz2

编译并安装libgdiplus。

cd /usr/src/libgdiplus-2.10
sudo ./configure --prefix=/usr
sudo make ; sudo make install

下一场编辑/etc/ld.so.conf文件,添加同实践“/usr/lib/”,如下图所展示,保存之后还履行如下命令,从而使系统可以将libgdiplus.dll自动映射到对应之so文件中。(原文见:http://www.mono-project.com/DllNotFoundException)

图片 10

sudo ldconfig

然后是Mono。

cd /usr/src/mono-2.10.8
sudo ./configure --prefix=/usr
sudo make ; sudo make install

连着下安装xsp。

export PKG_CONFIG_PATH=/usr/lib/pkgconfig
cd /usr/src/xsp-2.10
sudo ./configure --prefix=/usr
sudo make ; sudo make install

然后安装mod_mono。

cd /usr/src/mod_mono-2.10
sudo ./configure --prefix=/usr
sudo make ; sudo make install

然后再度修改“/etc/httpd/conf/mod_mono.conf”这个文件,与Ubuntu上同名的配置文件配置相同。不过出于匪像Ubuntu下起现成的安排文件,所以用在文书中上加如下两履行,由于设置的时刻自动装了2.0与4.0之支持,所以可以拿如下的2换啊4即可启用ASP.NET
4.0:

MonoServerPath "/usr/bin/mod-mono-server2"
MonoAutoApplication enabled

接下来以配备文件复制到Apache的安排文件目录中: 

sudo cp /etc/httpd/conf/mod_mono.conf /etc/httpd/conf.d/

由CentOS自带的SELinux的原委,使得Apache无法连接至mod-mono-server,所以我们现在还需要配备SELinux。当然,这里以简单即独自禁用SELinux,有趣味之好好创造安全策略,使mod-mono-server可以生效。这里修改/etc/sysconfig/selinux文件。将“SELINUX=enforcing”修改也“SELINUX=permissive”或“SELINUX=disabled”,例如下图,保存重开系统即可。

图片 11

自此便可由此SSH将网站于包及污染上去不怕足以直接访问了。不过要留意的凡,CentOS上的Apache默认的一干二净路径在“/var/www/html”下,当然为堪在“/etc/httpd/conf/httpd.conf”文件中改存放网站根本目录的路。

 

【六、相关链接】

1、配置linux(apache) + mono 下运行
asp.net:http://www.cnblogs.com/hcl0208/archive/2010/10/25/1860173.html 2、openSUSE上安装Mono并发布ASP.Net程序:http://www.linuxidc.com/Linux/2011-04/34872.htm 3、CentOS 6.0 安装
MONO
2.10.8:http://www.cnblogs.com/aquilahkj/archive/2011/11/03/2234380.html 4、Mono环境下未支持中文的解决方法:http://www.cnblogs.com/shanyou/archive/2010/10/08/1846198.html