win 服务器迁移 ubuntu

本贴最后更新于 1151 天前,其中的信息可能已经时移世改

前言

之前一直使用的 windowsserver2008,内存占用也不多,没想象的那么多。一切都很稳定,不过最近出了 windows 的病毒,感觉 Linux 的防火墙更方便,windows 一大堆东西学习来太麻烦了。

刚开始,用的 CentOS 7.2,我尝试了几款 Linux 面板。大家可以百度了解,挺人性化的。个人感受而言,宝塔linux面板 优于 appnode 。如果付费的话,显然后者更好。因为后者的免费版本,功能有限,使用了付费的,感觉比宝塔好。为什么之后选择不适用 Linux 面板这样的神奇呢?主要有 5 个原因:

  1. https 支持不够好
  2. Java 技术栈的需要配置 Tomcat,他们对 Tomcat 支持很不友好
  3. 用别人的面板,存在后门的嫌隙很大
  4. 各种配置都是点击式的,出了问题都不知道怎么配置,自己学会才是硬道理
  5. 体验过程中出现的 bug、十分不舒服。几个面板都还不够稳定,或许一年后再来体验比较好。如果你是一个 PHP 程序员,使用面板将会非常方便!

服务器介绍

我的是腾讯云的学生机,1 核 1G1M20G

系统选的是:ubuntu16.04(不使用面板的话,推荐这款来个人使用,有运维推荐 CentOS7)因为自己平时用的就是 Ubuntu,熟悉一点,社区大,虽然之前体验 CentOS 感觉也还行。

SSH

我用的 mobaxterm 来进行 ssh 远程操作服务器,可以拖动文件和准在线编辑文件。不过注意 SSH 是有自动断线的,如果安装时间太长,会自动断线。可以使用 screen 命令来防止,更简单的是如下图:

a14fa53334f545aa8c2e499ccb644f19-0.png

创建超级用户

sudo passwd 输入超级用户 root 的密码

su 切换 root 用户

之后都是在超级用户下操作

DNS

使用 ubuntu14.04 有此情况,16.04 和其他操作系统根据情况忽略 DNS 操作。后来我使用了 16。04,默认的 dns 就好了。

腾讯云的源的域名是内网域名,需要添加内网解析的 dns,我们完全把 dns 的第一个换成腾讯云的内网 dns。

根据自己的服务器所在地址修改,如下

广州服务器:

北京服务器:

上海服务器:

上海金融服务器:

深圳金融服务器:

香港服务器:

修改腾讯云的 dns 操作:

cp /etc/resolv.conf /etc/resolv.conf.bak 备份

vim /etc/resolv.conf 修改

lnmp

之前一直在用 lamp ,后来发现 nginx 会好用一点,特别在反向代理上比 apache 有很多优势。lamp 相对简单点,从我入门的角度来说。在线熟悉了,就用一下 lnmp

官网 https://lnmp.org, 我安装的 1.3 版本,服务器是 ubuntu16.04 版本

wget -c http://soft.vpser.net/lnmp/lnmp1.3-full.tar.gz && tar zxf lnmp1.3-full.tar.gz && cd lnmp1.3-full && ./install.sh lnmp 下载 && 解压 && cd && 执行 ,下载的网速大概 2.5M 每秒

安装过程中,可以仔细看一下说明,学生机的话,推荐一路默认就行,其中 PHP 推荐 5.6。高版本的好多学生机是不能用的,因为检测到性能不够。

先自动检测系统环境,更新一些软件。

8e3021d39571496690a5410b0f583015-1.png

然后和进行编译安装,编译了很久,可以去喝一杯咖啡了,要慢慢享受才行。网速还行,腾讯云内网的源,只是 CPU 慢,编译比较慢。注意:千万别让 ssh 断了,或使用了 screen,不然推荐你重装系统再来一遍吧。

lampubuntu 16.04 安装一切顺利,。14.04 出了很多 bug。不过云服务有一点很好,重装操作系统很快很快!初学者遇到安装 bug,因为自己操作原因的话,直接重装就好啦

5a9f39b3327c48918a2053f62ceafb79-2.png

箴言

编译安装的速度真的是受不了了,如果你可以,推荐你从 apt-get 里自己下载配置,速度会好很多。

那么为什么还推荐这种方式呢?传送门 感觉我真是一个打广告的。

LNMP 相关软件安装目录

更多详见:传送门

JDK 环境

两种方法:

apt-get 方法

这里使用第一种方法,比较简单,后来经过测验,速度真是太慢了!!!!推荐自己配置吧

  1. 添加 Java 的源

    • sudo add-apt-repository ppa:webupd8team/java
    • sudo apt-get update
  2. 安装 oracle-java-installer

    • jdk7
      • sudo apt-get install oracle-java7-installer
    • jdk8
      • sudo apt-get install oracle-java8-installer
  3. 设置系统默认 JDK

    • JDk7
      • sudo update-java-alternatives -s java-7-oracle
    • JDK8
      • sudo update-java-alternatives -s java-8-oracle
  4. 检查安装成功

    • java -version

自己配置方法

  1. 上传 JDK 包
    • 自己去官网下载 Linux 64 的.tar.gz
    • ssh 上传上去,推荐使用 mobaxterm 的拖动上传文件到服务器,上传平均速度 700K 每秒
  2. 解压
    • tar -xzvf jdk-8u131-linux-x64.tar.gz
  3. 配置

maven 环境

跟 JDK 安装一样,推荐自己上传,然后解压,再配置,配置文件见下方的配置

如果上传的.zip,解压使用 unzip file.zip

推荐提前更换阿里的镜像,如下。这样 maven 下载速度会很快!

    <mirror>  
        <id>nexus-aliyun</id>  
        <mirrorOf>*</mirrorOf>  
        <name>Nexusaliyun</name>  
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>  
    </mirror> 

Tomcat

使用的 tomcat8,根据自己情况而定。直接上传到服务器,解压扔到一个目录就行,不用安装和配置!

如果上传的.zip,解压使用 unzip file.zip

配置

直接配置就行了,我的 JDK 和 maven 目录如下面的配置文件所示

sudo vim /etc/profile

在最后,粘贴如下代码(请自行修改路径):

export MAVEN_HOME=/home/ubuntu/apache-maven-3.3.9
export JAVA_HOME=/home/ubuntu/jdk1.8.0_131
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin

使配置生效

source /etc/profile

测试成功没

java -versionmvn -v

发现 mvn 没有运行权限,简单暴力的执行如下:

chmod -R 777 jdk1.8.0_131
chmod -R 777 apache-maven-3.3.9
chmod -R 777 apache-tomcat-8.5.15

再次 mvn -v,成功!

服务运行

Tomcat

LNMP

各个程序状态管理:

lnmp {nginx|mysql|mariadb|php-fpm|pureftpd} {start|stop|reload|restart|kill|status}

JavaWeb 运行

Git clone https://git.coding.net/xjtushilei/SearchVIP.git

带密码的 Git:
Git clone https://用户名:密码@git.coding.net/xjtushilei/SearchVIP.git

mvn package

mv target/searchvip-0.0.1-SNAPSHOT.war /home/ubuntu/apache-tomcat-8.5.15/webapps/searchvip.war

运行 Tomcat

MySQL 优化

让 MySQL 外网访问:

修改端口等:sudo vim /etc/my.cnf

详情操作:https://my.oschina.net/code33/blog/299242?p=1

nginx

添加的虚拟主机配置文件:/usr/local/nginx/conf/vhost/*.conf

配置样例:

server {
    listen                     80;
    listen                     443 ssl;
    server_name                tongtong.xjtushilei.com;
     root                      /home/wwwroot/tongtong;
    index                      index.html index.htm index.php;
    include enable-php.conf;
    keepalive_timeout          65s;
    client_max_body_size       1m;
    ssl_certificate            /opt/appnode/agent/data/ssl/tongtong.xjtushilei.com/tongtong.xjtushilei.com.crt;
    ssl_certificate_key        /opt/appnode/agent/data/ssl/tongtong.xjtushilei.com/tongtong.xjtushilei.com.key;
    ssl_ciphers                ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers  on;
    ssl_protocols              TLSv1 TLSv1.1 TLSv1.2;
    ssl_session_cache          shared:SSL:5m;
    ssl_session_timeout        5m;
    gzip_types                 text/plain text/css text/xml text/javascript text/x-component application/json application/javascript application/xml application/xhtml+xml application/xml+rss application/rss+xml application/atom+xml application/x-font-ttf application/x-web-app-manifest+json font/opentype image/svg+xml image/x-icon;

    if ($scheme = http) {
        return  301 https://$host$request_uri;
    }


}
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“Ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    113 引用 • 157 回帖 • 601 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    2715 引用 • 7993 回帖 • 778 关注
  • lnmp
    8 引用 • 18 回帖
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    547 引用 • 504 回帖 • 701 关注

赞助商 我要投放

13 回帖
请输入回帖内容 ...
  • Vanessa

    准备往 Go 迁移了。。。

    1 回复
  • xjtushilei

    不搞 Java 了吗
    还是社区?

    1 回复
  • 88250

    暂时两手抓,以后重点 Go。会做一版 Solo.go 出来,社区也会初步进行迁移。

    1 回复
  • xjtushilei

    哇,这让我 javaer 情何以堪

  • alanfans

    PHP 什么鬼

    1 回复
  • sides

    收藏 😬

  • Angonger 2 赞同

    帮同事把 win 服务器迁移到 Linux,文件全部乱码,文件名还好说用 convmv 转了成功了,文档没辙了,到现在都没解决,enca 也搞不定,本来觉得很容易的事儿,其实也不容易,重建索引,批量改编码等等,预计一下午的事儿花了将近一天,哎,多积累经验吧

    1 回复
  • mymoshou

    咦,不编译安装吗

    1 回复
  • xjtushilei

    比如 phpadmin 呀,比如搞点 PHP 有意思的网站呀,帮别人放点东西呀

  • xjtushilei

    编码很蛋疼的。。。。在我印象中,1 年前,之前不知道什么原因,一个 Linux 服务器的中文编码一直不能显示

    1 回复
  • xjtushilei

    编译。

    1 回复
  • Angonger

    我这次遇到的:1.系统没有中文编码支持,默认的 LANG 是 en_US.UTF-8,2.文件编码格式不对(只针对文件名,文件内容我还是没搞定),用 convmv 转换(一定要弄对了一开始的编码)

  • mymoshou

    用 LNMP 这不是集成环境吗

请输入回帖内容 ...