lovebet爱博体育在Linux(Ubuntu/openSUSE/CentOS)下布署ASP.NET(Apache + Mono)

【题外话】

闲的庸俗竟然想尝试测验本身做的种类在分裂操作系统上的性质表现,所以决定尝试在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
Server安装未来,私下认可未有图形分界面,其实在Linux不用图形界面也相当的轻巧就能够张开铺排。在Azure上布置好Ubuntu
Server(这里运用Azure上提供的Ubuntu Server 12.04
LTS,二零一一/6/24)今后,会活动配置好SSH的22端口,大家得以一贯动用SSH工具连接服务器,这里运用免费开源的PuTTY(http://www.putty.org/)。假诺在Azure上陈设的应用密码连接主机则这里向来输入地方点击“Open”就能够,借使还上传了SSH密钥,则还应在Connection/SSH/Auth里筛选相应的密钥才方可接连。

lovebet爱博体育 1

连续几天来后输入设置的客户名和密码就可以登入Ubuntu系统,会冒出如下图的命令行,大家所做的大致具有专业都是透过命令行操作的。

lovebet爱博体育 2

在Ubuntu下安装软件其实特别常有益,Ubuntu提供了apt-get工具,能够使用该工具直接下载安装软件。

在Linux里,系统最高权力账户为root账户,而默许登陆的账户并不是root账户,比方不具备安装程序等权限,可是同Windows同样都提供了晋级权限的不二秘诀,正是sudo命令,在实践的每条命令前拉长“sudo
”,即能够root账户的权限施行。在率先次利用sudo时会必要输入当前账户的密码,确认后就可以在乎气风发段时间(默许5分钟)内选拔sudo命令都无需输入密码,生机勃勃段时间没有选择后则须求再行输入密码。

率先大家设置Apache,输入下列命令,之后会提醒是或不是安装等,输入Y继续。软件包详细情形:http://packages.ubuntu.com/quantal/apache2

sudo apt-get install apache2

lovebet爱博体育 3

lovebet爱博体育,等候生龙活虎段时间后,Apache就能自行安装配置好,那时可以安顿好Azure上的80端口,配置好后使用浏览器访谈服务器的地址能够看看如下图的提示,表达安装成功。

lovebet爱博体育 4

 

【二、在Ubuntu下安装Mono】

Linux有个开源的.NET运转时,叫做Mono(http://www.mono-project.com/),能够支持在Linux上运营.NET应用程序。

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

sudo apt-get install mono-gmcs

设置完后得以输入“mono
-V”查看安装的mono的版本(注意V是大写的),当然也得以写个C#的ConsoleApp看看,能够用下列命令编写翻译C#代码。

gmcs test.cs

假若程序尚未难题的话则会生成test.exe,能够通过如下命令实施。当然也得以在Windows上编写翻译好exe文件后复制到Linux上实践也是能够的。

mono test.exe

接下去依照本人索要的版本选拔安装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

sudo apt-get install mono-apache-server2

不知情为何,安装到结尾会卡在此个地点

lovebet爱博体育 5

只可以通过Ctrl+Z强制退出,然后输入“sudo
reboot”重启服务器,不过Linux服务器非常的慢就会重启完

其后再设置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

sudo apt-get install libapache2-mod-mono

不过安装完要是张开网址开掘依然无能为力施行,其实是从未有过布署ASP.NET应用程序。就算未来支撑自动配置应用程序,不过依旧需求更正/etc/apache2/mods-available/mod_mono.conf文件。(原文见:http://www.mono-project.com/AutoConfiguration)当然假设您会手动配置应用程序的话也能够在该公文中手动配置应用程序(下同)。

sudo vim /etc/apache2/mods-available/mod_mono.conf

lovebet爱博体育 6

按键盘上的i键启用vim的编纂形式,由于mono-server2-hosts.conf文件中生机勃勃度对超级多参数实行了陈设,所以仅要求按图中的增加“MonoAutoApplication
enabled”生龙活虎行就能够。其余,即便你的网站中还有此外的文件格式(比如HttpHandler常常使用.axd),请加多在第意气风发行后面,别的若是网址默许文件不是index.aspx还索要修正第二行后的公文名。注意,由于Linux是分别轻重缓急写的,所以切记不要把大小写搞错。

假若服务器上还安装了ASP.NET
4.0的支撑(mono-apache-server4),並且须要切换来ASP.NET
4.0,那么仅必要修改最生平机勃勃行,将2改为4就可以。

改进完后按Ctrl+C截止编辑情势,然后按冒号键(:)步入命令情势,输入w保存文件,然后重新按冒号键,再按q键退出vim。

末尾试行下述命令重启Apache服务器就能够。

sudo /etc/init.d/apache2 restart 

 

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

在Windows上布署网址可以透过远程桌面间接把网址或打包好的网址复制过去,在Linux下实际SSH不光能够支撑命令行,还能接济文件传输,小编这里运用免费开源的Filezilla(https://filezilla-project.org/),Filezilla帮助FTP和SSH三种合同,在站点管理器中接受SFTP公约,然后把登录类型设置为常规,输入顾客名和密码就可以登入。

lovebet爱博体育 7

签到后暗中同意的路线为/home/顾客名/,就跟命令行下暗许的目录一致。Apache的默许路径在/var/www/,能够在此之下找到index.html,也正是丰盛“It
works”的网页。可是那一个目录常常客户的权柄为无法写入,所以无法将网址直接配置到这些目录下。当然你能够在PuTTY下将以此目录的权限匡正后再上传,不超过实际在还足以有更简便易行的不二秘技,正是将打包文件上传到客户目录下然后再解压缩到这么些目录下。

第风度翩翩安装zip解压缩程序,软件包详细的情况:http://packages.ubuntu.com/quantal/zip

sudo apt-get install zip

接下来将索要上传的网址打包为zip文件,然后上传到顾客目录下(/home/客户名/),然后在命令行中输入就能够了。

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

当然,现在用你的浏览器访谈你的服务器地址仍为“It
works”,大家还要删除index.html就能够了。

sudo rm /var/www/index.html

 

【四、在openSUSE下的操作】

不等的种类应用分裂的软件包管理程序,SUSE则提供了八个叫zypper的软件包管理程序,使用也相当方便(这里运用的openSUSE是Azure上提供的openSUSE
12.3)。

先是是安装Apache。

sudo zypper install apache2

与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/,页面伸开后如下图所示:

lovebet爱博体育 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把数不胜数依靠库都装上了,假若按上述命令的话唯有以下部件被安装:

lovebet爱博体育 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

lovebet爱博体育 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”,举个例子下图,保存重启系统就能够。

lovebet爱博体育 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

相关文章