安装linux
首先我们要做的就是安装linux,其发行版redhat,ubuntu,centos等等都可以,我选择了centos.
1.下载 centos,安装过程这里不再赘述
2.服务器装好系统之后,更新系统 (耗时操作,可选择执行)
yum -y update
升级所有包,改变软件设置和系统设置,系统版本内核都升级
yum -y upgrade
升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变
安装mono
在linux上安装mono,以便跑我们写的.net应用,另外对.net core感兴趣的同学也可以去试试,就不用装mono了,不过自己写的站点在迁移时就都要用.net core重新生成一遍了,这里有篇博文可以看看http://www.cnblogs.com/shanyou/p/4295163.html,个人认为目前成熟的解决方案还是mono
1.安装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
可能还需要安装cmake,我在配置mono的时候遇到
2.安装Mono需要的GDI+ 兼容API库 - Libgdiplus
Libgdiplus是一个Mono库,用于对非Windows操作系统提供GDI+兼容的API。libgdiplus是mono中的System.Drawing依赖的一个组件,用于显示web页面基本颜色等。最新版本查看地址:http://download.mono-project.com/sources/libgdiplus/
cd /usr/local/src/
wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-x.xx.tar.bz2 具体版本视情况而定
tar -jxvf libgdiplus-x.xx.tar.bz2
cd libgdiplus-x.xx
./configure --prefix=/usr
make
make install
Tips:
tar [-cxtzjvfpPN] 文件与目录 ....
参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数
3.安装 mono
最新版本查看地址:http://download.mono-project.com/sources/mono/
cd /usr/local/src/
wget http://download.mono-project.com/sources/mono/mono-x.xx.x.tar.bz2 具体版本视情况而定
tar -jxvf mono-x.xx.x.tar.bz2
cd mono-x.xx.x
./configure --prefix=/usr
make
make install
经过漫长的编译过程,大概需要半小时左右,输入mono -V
有mono版本信息,则安装成功
Tips:
-
源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)
-
--prefix选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱
安装jexus
选择国产的jexus作为web服务器,选这个应该是先入为主的感觉...还有就是有个 linuxdotnet社区,jexus配置教程和常见问题,都能在这里找到答案。把解压所得到的文件及文件夹全部复制或移动到 /usr/jexus 这个文件夹中即可
cd /tmp
wget http://www.linuxdot.net/down/jexus-x.x.x.tar.gz
tar -zxvf jexus-x.x.x.tar.gz
sudo mv jexus /usr/
cd /usr/jexus
Tips:
注意安装的centos版本,centos从7.x开始默认用的是firewalld,这个是基于iptables的,虽然有iptables的核心,但是iptables的服务是没安装的,低于7的还是可以使用iptables,将80端口打开
firewall-cmd --zone=public --query-port=80/tcp 查看
firewall-cmd --zone=public --add-port=80/tcp --permanent 添加 (--permanent永久生效,没有此参数重启后失效)
CentOS 6.x装好mono和Jexus后,在 /ect/rc.local 后面添加 /usr/jexus/jws start 就可以让jexus跟随系统一起启动,然而在CentOS 7.x上用上面的方法却行不通
vi /lib/systemd/system/jexus.service
写入如下脚本
Description=jexus 描述服务
After=network.target 描述服务类别
[Service] 服务运行参数的设置
Type=forking 后台运行的形式
ExecStart=/usr/jexus/jws start 服务的具体运行命令
ExecReload=/usr/jexus/jws restart 重启命令
ExecStop=/usr/jexus/jws stop 停止命令
PrivateTmp=true 表示给服务分配独立的临时空间
[Install] 服务安装的相关设置,可设置为多用户
WantedBy=multi-user.target
修改时注意服务的路径,你也可以从/lib/systemd/system 文件夹下复制一个service结尾的文件,改名后修改里面的内容。修改后 设置权限 加入到服务中去
chmod 754 jexus.service
systemctl enable jexus.service
最后reboot看看有没有生效
安装nginx
选择nginx作为反向代理服务器,个人感觉小型站点使用这个,有点杀鸡用牛刀的赶脚,这里也不班门弄斧了,这里有个 教程地址 ,感觉写的还不错
结语
最后根据不同的业务,选择合适的数据库,whatever you want! 在这里给出linux上安装mysql教程地址:如果是个人站点,完全可以装在同一台服务器,如果用户访问量较大,建议还是单独弄一台服务器跑数据库