搭建Linux+Jexus+玛丽亚DB+ASP.NET[LJMA]环境

备考:,将自身的博客内容整理成册,首先会在博客里先行发布,后续只怕的话整理成都电子通信工程高校子书,首要从linux的最基础内容早先进入Linux的Mono开发方面包车型客车话题。本文是本人整理博客内容的一篇文章。

LJMA 是Linux+Jexus+玛丽亚DB+ASP.NET的简写,其实正是把Jexus,
玛丽亚DB以及ASP.NET安装在Linux系统上,组成2个条件来运作ASP.NET的行使。Jexus是Linux下的依照Mono编写的WEB服务软件,而MariaDB是相比较小型的数据库软件,ASP.NET是由微软在.NET
Framework框架中所提供,开发Web应用程序的类库,通过Mono我们能够让她在Linux下运作。

Jexus相比较其余Linux系统的WEB服务器的优势
壹 、Jexus直接协理跨平台的ASP.NET网站和PHP网站,中间无需第2方插件。
二 、Jexus在静态文件处理地点同等有着非凡精美的属性。
③ 、Jexus专们针对应用服务器的供给开展了优化,具有超强的乌兰察布久安定祥和不间断运营能力,其稳健度,绝不亚于其余任何WEB服务器。
四 、Jexus拥有最基础而首要的侵犯检查和测试能力,那是富有别的WEB服务器所不持有的。

安装Mono 环境

Mono是2个由Novell公司(由Ximian发起,并由Miguel de
lcaza领导的,叁个从事于开创.NET在Linux上选拔的开源工程。它富含了贰个C#言语的编译器,
1个CL哈弗的运维时,和一组类库,并贯彻了 ADO NET和ASP
NET。能够使得开发职员在Linux用C#付出顺序。)主持的项目.该项目标指标是创设一密密麻麻符合标准ECMA
(Ecma-334和Ecma-335)的.Net 工具, 包涵C #编写翻译器和共同语言(CL 即 Common
Language)执行平台(Platform).与微软的.Net不相同,
Mono项目不但可以运营于Windows系统内,还是能运作于Linux, FreeBSD, Unix,
Mac OS X和Solaris。

① 、系统,安装编写翻译环境,为编写翻译Mono源码做准备。

yum –y update

贰 、安装Mono源码安装供给的库

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

在执行yum 更新系统的时候可能发生了之类错误:

–> Running transaction check —> Package gc.x86_64 0:7.1-10.el6
will be installed —> Package glibc-headers.x86_64
0:2.12-1.80.el6_3.5 will be installed –> Processing Dependency:
kernel-headers >= 2.2.1 for package: glibc-headers-2.
12-1.80.el6_3.5.x86_64 –> Processing Dependency: kernel-headers
for package: glibc-headers-2.12-1.80.e l6_3.5.x86_64 –> Finished
Dependency Resolution Error: Package:
glibc-headers-2.12-1.80.el6_3.5.x86_64 (updates) Requires:
kernel-headers Error: Package: glibc-headers-2.12-1.80.el6_3.5.x86_64
(updates) Requires: kernel-headers >= 2.2.1 You could try using
–skip-broken to work around the problem ** Found 1 pre-existing rpmdb
problem(s), ‘yum check’ output follows:
kernel-2.6.32-220.13.1.el6.x86_64 has missing requires of
kernel-firmware >= (‘0 ‘, ‘2.6.32’, ‘220.13.1.el6’)

缓解情势:修改文件vi /etc/yum.conf
将exclude=kernel*前加注释即可缓解,此参数的情致是解决安装或更新kernel开首的软件,而作者辈设置gcc须求借助kernel相关的软件glibc-headers-2.12-1.80.el6_3.5.x86_64

3、Mono需要的GDI+兼容API的库Libgdiplus 支持System.Drawing

cd /usr/local/src/

wget
http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2

tar -jxvf libgdiplus-2.10.tar.bz2

cd libgdiplus-2.10

./configure –prefix=/usr

make

make install

④ 、源码安装Mono 3.2.3

cd /usr/local/src/

wget http://download.mono-project.com/sources/mono/mono-3.2.3.tar.bz2

tar -jxvf mono-3.2.3.tar.bz2

cd mono-3.2.3

./configure –prefix=/usr

make

make install

输入 mono -V 如有mono版本音讯,则设置成功.

[azureuser@mono mono-3.2.3]$ mono -V

Mono JIT compiler version 3.2.3 (tarball Sat Sep 21 03:52:16 UTC 2013)

Copyright (C) 2002-2012 Novell, Inc, Xamarin Inc and Contributors.
www.mono-project.com

TLS: __thread

SIGSEGV: altstack

Notifications: epoll

Architecture: amd64

Disabled: none

Misc: softdebug

LLVM: supported, not enabled.

GC: sgen

要是是61位版本的CentOS,在后续安装好Jexus 5,运转的时候会爆发以下错误:

Sender: jws.exe, Sender TypeName: AppDomain

Exception Source: jws, TargetSite Name: A

Message is:

An exception was thrown by the type initializer for
Mono.Unix.Native.Stdlib

StackTrace is:

at A.G.A (System.String[] A) [0x00000] in <filename unknown>:0

IsTerminating: True

建议大家在设置mono后,都 ldconfig一下
。(ldconfig命令的用处,首假设在暗中认可搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创制出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件暗中同意为/etc/ld.so.cache,此文件保留已排好序的动态链接库名字列表.

别的有好几也要命重庆大学,要在编写翻译Mono的是指虞升卿装到/usr(./configure
–prefix=/usr),借使设置到三个系统根本”不驾驭”的文书夹,仅ldconfig都尤其,还要在/etc/ld.so.conf文件或/etc/ld.so.conf.d
中添加路径后再 ldconfig才行呢。

安装Jexus

Jexus Web Server for nux
是一款基于.NET包容环境,运行于Linux/unix操作系统之上,以支撑ASP.NET为着力功效的高品质WEB服务器,用于替换Apache+mod_mono、Nginx+法斯特Cgi
方案运维ASP.NET。Jexus不但具有跨平台ASP.NET服务器那样的标志性特色,同时还拥有内核级的平安监察、入侵检查和测试、U卡宴L重写、无文件路由等一文山会海重庆大学作用和专有天性,将在第捌楚辞详细介绍Jexus。

从5.3.1本子初叶,Jexus的设置进程简化了,内置了多个新的本子,它们各自是“install”和“upgrade”,对应原来的“安装”和“升级”,将Jexus的安装进度自动化了。jexus自身的装置和升级换代形式并从未生出更加多的变通,因而对于已经习惯于5.3.1从前版本的运用办法的用户,你们还可以选用在此以前的安装格局。

cd /usr/local/src/

wget http://linuxdot.net/down/jexus-5.4.3.tar.gz

tar -zvxf jexus-5.4.3.tar.gz

cd jexus-5.4.3

sudo ./install

设置到位~!!!在实践install脚本时,jexus暗中同意是设置到/usr/jexus/中,假若想安装到其余目录,能够在推行该脚本时扩张2个索引的参数(比如
sudu install /usr/local/jexus/)。对于升级就是执行upgrade脚本。

运营jexus 检查是不是健康了

cd /usr/jexus

sudo ./jws start

[azureuser@mono jexus-5.4.3]$ cd /usr/jexus/

[azureuser@mono jexus]$ sudo ./jws start

Start … OK

[azureuser@mono jexus]$ cat log/jws.log

09-21 06:07:56: * Jexus web server start-up success.

见到了Jexus已经成功运行的日志,大家还足以因此浏览器来检查下:http://127.0.0.1/info

安装MariaDB

玛丽亚DB是1个向后分外、替代MySQL的数据库服务器。玛丽亚DB 是1个用到 玛丽亚存款和储蓄引擎的 MySQL 分支版本,是由原来 MySQL 的笔者 迈克尔 Widenius
创办的合作社所付出的免费开源的数据库服务器。

从源码包安装MariaDB,它的编写翻译要求十分短的年月,推荐通过CentOS的yum情势安装。

一 、在 /etc/yum.repos.d/ 下树立 玛丽亚DB.repo,内容如下:

[azureuser@mono etc]$ cd /etc/yum.repos.d

[azureuser@mono yum.repos.d]$ vi MariaDB.repo

# MariaDB 10.0 CentOS repository list – created 2013-08-23 13:08 UTC

# http://mariadb.org/mariadb/repositories/

[mariadb]

name = MariaDB

baseurl = http://yum.mariadb.org/10.0/centos6-amd64

gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

gpgcheck=1

若是是任何的操作系统,能够在那里找到有关音讯。

2、使用YUM安装MariaDB

[azureuser@mono yum.repos.d]$ sudo yum -y install MariaDB-client
MariaDB-server MariaDB-devel

③ 、运转数据库

[azureuser@mono yum.repos.d]$ sudo service mysql start

只要开发银行不了,请到 /data/mysql/
下查看错误日志,那些日志平常是主机名.err。

4、修改Root的密码

[azureuser@mono yum.repos.d]$ mysqladmin -u root password ‘passwd’

⑤ 、配置远程访问,玛丽亚DB为了安全起见,默许意况下绑定ip( 127.0.0.1)。

[azureuser@mono yum.repos.d]$ mysql -u root -p

Enter password:

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 4

Server version: 10.0.4-MariaDB MariaDB Server

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input
statement.

MariaDB [(none)]>GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’
IDENTIFIED BY ‘passwd’ WITH GRANT OPTION;

MariaDB [(none)]> flush privileges;

首先句中”%”表示别的主机都得以中远距离登录到该服务器上访问。如若要限制唯有某台机器能够访问,将其换到相应的IP即可,如:

GRANT ALL PRIVILEGES ON *.* TO root@”172.168.193.25″ IDENTIFIED BY
“root”;

第①句表示从mysql数据库的grant表中另行加载权限数据。因为MySQL把权力都位于了cache中,所以在做完更改后要求再度加载。

⑥ 、假使系统的防火墙开着(or behind a hardware firewall or
NAT)你不能不加大mysql使用的TCP端口,平时都以3306。

七 、大小写敏感

用root帐号登录后,在/etc/my.cnf
中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,那时已设置成功:不区分表名的高低写;

lower_case_table_names参数详解:

lower_case_table_names = 0

内部 0:区分轻重缓急写,1:不区分轻重缓急写

测试LJMA是不是中标

放二个网站上去测试下,作者那里放个小泥鳅的Mono包容代码版本上去,能够从那里获得https://github.com/geffzhang/LoachsMono,使用Visual
Studio编写翻译后放到jexus的 default站点所对应的目录/var/www/default

图片 1

LJMA环境是搭建好了,那实则唯有是设置上了软件而已,而具体的布置或许有为数不少做事要做的啊?也正是说,您纵然搭建出来了条件,不过一旦不会安顿细节的事物,相当于尚未其余工作经验,所以依然多配备Jexus恐怕ASP.NET。

一键安装脚本 https://github.com/cjy37/linux-asp.net-installScript