在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 1二.04LTS,201百分之五十/二四)未来,会自行配置好SSH的2二端口,大家能够直接利用SSH工具连接服务器,这里运用免费开源的PuTTY(http://www.putty.org/)。如果在Azure上配置的使用密码连接主机则这里直接输入地址点击“Open”即可,如果还上传了SSH密钥,则还应在Connection/SSH/Auth里选择对应的密钥才可以连接。

Ubuntu
Server安装今后,暗中同意未有图形界面,其实在Linux不用图形界面也很不难就足以拓展配置。在Azure上配置好Ubuntu
Server(那里运用Azure上提供的Ubuntu Server 1贰.0四LTS,201八分之四/二肆)以往,会自动配置好SSH的2二端口,大家能够直接运用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 二.0要么ASP.NET
四.0的支撑,mono-apache-server二为ASP.NET
2.0的支撑,mono-apache-server肆是ASP.NET
4.0,两者可以而且存在,切换需求在Apache的陈设文件中切换。软件包详情:http://packages.ubuntu.com/quantal/mono-apache-server2

在Linux里,系统最高权力账户为root账户,而暗中认可登录的账户并非root账户,例如不具有安装程序等权限,可是同Windows壹样都提供了升级权限的不2秘诀,正是sudo命令,在实践的每条命令前拉长“sudo
”,即能够root账户的权力履行。在首先次利用sudo时会供给输入当前账户的密码,确认后即可在壹段时间(私下认可四秒钟)内选择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

 

伺机1段时间后,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
1二.叁)。

假定程序没不正常的话则会生成test.exe,能够经过如下命令执行。当然也足以在Windows上编写翻译好exe文件后复制到Linux上实施也是足以的。

第3是安装Apache。

mono test.exe
sudo zypper install apache2

接下去根据本身索要的本子选用设置Apache对ASP.NET 2.0也许ASP.NET
四.0的补助,mono-apache-server二为ASP.NET
二.0的支撑,mono-apache-server四是ASP.NET
四.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的模块libapache二-mod-mono即可。当然,mono-gmcs、mono-apache-server2、libapache-mod-mono都是足以联手安装的,然而要注意mono-apache-server2和libapache-mod-mono的逐1,假设mono-apache-server贰在libapache-mod-mono之后的话,由于重视项的缘故,libapache-mod-mono会未来机关选拔安装mono-apache-server四。而且,纵然壹起装的话,在上述卡住的职位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

而后方可像Ubuntu1样给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”1行即可。其它,假使你的网址中还有其余的文件格式(比如HttpHandler平时使用.axd),请添加在第二行前边,此外借使网址暗中认可文件不是index.aspx还索要修改第一行后的文件名。注意,由于Linux是分别轻重缓急写的,所以切记不要把大小写搞错。

sudo chkconfig --levels 235 httpd 

只要服务器上还安装了ASP.NET
四.0的扶助(mono-apache-server4),并且需求切换成ASP.NET
四.0,那么仅必要修改最后1行,将贰改为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下将那几个目录的权柄修改后再上传,但是事实上还足以有更简短的章程,正是将打包文件上传到用户目录下然后再解压缩到那个目录下。

假如整个安装成功,能够实施下列语句下载必要设置组件的源码包并解压缩。

第3安装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下有现成的配备文件,所以要求在文件中添加如下两行,由于设置的时候自动安装了二.0和四.0的援救,所以能够将如下的二换为四即可启用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/

【4、在openSUSE下的操作】

 

不等的体系应用差别的软件包管理程序,SUSE则提供了几个叫zypper的软件包管理程序,使用也不行有利(那里运用的openSUSE是Azure上提供的openSUSE
1二.3)。

【6、相关链接】

率先是设置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
四、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.三)。

先是依然设置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下有现成的布局文件,所以须求在文件中添加如下两行,由于设置的时候自动安装了二.0和四.0的援助,所以能够将如下的二换为四即可启用ASP.NET
四.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 四、Mono环境下不支持普通话的消除措施:http://www.cnblogs.com/shanyou/archive/2010/10/08/1846198.html