本书处于 开放评论 状态。希望获得来自读者的更多反馈以完善内容。阅读时,如果遇到一些文字内容需要求助,可以采用如下方式与我互动: 先用鼠标选择文本 在释放鼠标左键时将会有 annotate 弹窗,点击弹窗上的 ,如果已经注册的话,可以直接留言评论,否则先注册再留言。 你也可以点击页面右上角的 符号,可以看到其他人的留言评论。

2.3 公有云环境下静态网站系统部署实践示例

作为互联网时代的大学生,需要熟练掌握常用工具软件系统的安装、配置与使用,以快速解决工作、生活与学习中的各类问题。随着开源免费软件的盛行以及云计算服务提供商实力的增强,在公有云环境下安装部署信息系统逐渐成为常态,这种方式的好处体现在:

  • 方便各类用户在互联网环境下随时随地访问部署的系统,工作成果显性化;
  • 程序调试和运行在云端进行,不必占用个人电脑机时,工作任务并行化;
  • 通过在云服务器环境下安装信息系统,掌握linux操作系统、web服务器、数据库、典型编程环境的配置流程、常用命令及调试方法,个人技能实用化。

2.3.1 云服务器主机注册及初始配置

华为云是由华为公司倾力打造的面向广大企业和个人的公有云平台;提供云服务器、云数据库、云存储和CDN等基础云计算服务,以及移动应用、大数据分析、人工智能等应用解决方案。作为国内公有云服务提供商的后期之秀,华为云目前对学生有云服务器开通优惠,学生可以免费注册,即可拥有独立ip的云服务器主机使用权限(7天或15天不等),注册开通流程便捷,后台环境友好,便于互联网实验环境的部署和学习。

本节讲解如何注册并选择华为云服务器主机,并安装Ubuntu 16.04LTS的64位操作系统。如果个人电脑是windows操作系统,最好安装远程操作服务器的两个常用软件:winscp和putty(一般先安装winscp,后安装putty),如果个人电脑是Mac机,不需要安装这两个软件,可以直接采用SSH登录方式。

WinSCP是一个Windows环境下使用SSH(secure shell,一种主流的专为远程登录会话和其他网络服务提供安全性的协议)的开源图形化SFTP客户端,同时支持SCP协议。它的主要功能就是在本地与远程计算机间安全的复制文件。putty是一个免费的,基于Windows x86平台下的Telnet、SSH和rlogin客户端, 可以远程登录安装有linux操作系统的服务器,并以指令方式操作。

  1. 华为云服务注册步骤
  • 登录 https://www.huaweicloud.com/ 注册,之后提供个人银行卡号,获取申请免费的云服务器主机ECS资格(可以选择配置为单核4G内存1M公用带宽)。

  • 在选择主机配置过程中,会让用户选择安装操作系统,注意:选择Ubuntu 16.04LTS 64位操作系统(一般流行的云服务器linux操作系统是ubuntu和centOS,ubuntu较为适合初学者),之所以不建议选Ubuntu 16.04LTS 32位操作系统是因为,32位操作系统适合于服务器内存在4G以内的配置,对于4G以上内存配置的服务器,64位操作系统能够发挥其大内存的优势。

  • 检查申请的华为云服务器主机安装的是否是ubuntu操作系统,而非windows server操作系统,方法是看登录的web shell是否是命令界面,如果不是,请重新安装

  • 保存好申请的服务器密码,后续登录与安装配置软件都需要用到

  1. winscp和putty的安装与整合
  • 双击winscp,一路next即可可安装
  • 双击putty,也是一路next即可安装
  • 将winscp和putty整合在一起使用的步骤如下:
    • 第一步:打开WinSCP并登陆
    • 第二步:配置PuTTY的路径,打开 选项->选项,左侧选择 集成->应用程序。右侧设置Putty.exe所在路径,确认之后WinSCP上的配置即完成。

2.3.2 Ubuntu操作系统常用指令

  1. Linux操作系统、Ubuntu及centOS介绍

目前在服务器上安装的操作系统大多为Linux操作系统,主要因为linux安全和稳定性高,系统漏洞较少。Ubuntu系统,基于 Debian,经常更新,采用.deb 软件包和 “apt-get”软件包管理器,一般来说,Ubuntu系统对于初学者来说是更好的选择。CentOS系统是基于 Red Hat Linux Enterprise版本的开源,更新频度较少,采用.rpm 软件包和 “yum” 软件包管理器,一般是商业用途的部署首选。

关于Linux操作系统的零基础入门可以阅读《鸟哥的Linux私房菜》一书。

  1. Ubuntu操作系统下的常用命令
  • Ubuntu 系统更新命令如下:
  • Ubuntu 系统下的用户管理 在Ubuntu下,$是普通管员,#是系统管理员;(系统管员权限>普通管员),相关命令如下:
  • Ubuntu 系统的文件管理 相关命令如下:

更多命令可以访问 http://www.jianshu.com/p/1340bb38e4aa 了解

2.3.3 在本地电脑搭建中英文双语静态网站

互联网时代每个人都需要打造个人的 digital ID, 个人网站,就是数字世界中别人随时随地了解你的最佳窗口。不过,要建立一个功能完备、中英文多语种兼备的网站并不容易,涉及诸多领域的知识和技能,对经管同学而言门槛比较高。下面介绍在个人电脑基于R语言环境,通过在Rstudio中安装和配置 blogdown+hugo构建个人双语网站、科研双语网站等等,用于对外信息交流与发布。 整个建站过程分为三大步骤,熟练的话,半小时即可搭建完成。

步骤1:blogdownhugo包的安装

首先在Rstudio中安装blogdownhugo两个软件包,在控制台输入以下代码

特别说明的是,苹果 macOS 用户install_hugo() 需要之前安装有包管理器Homebrew,如果没有安装,请访问https://brew.sh 先下载安装。

接下来,初始化 blogdown,打开:File -> New Project -> New Directory -> Website using blogdown 建议选择用 hugo-academic 主题开始我们的blogdown之旅。

步骤2:选择网页主题(此处以academic为例),搭建网站

在本地电脑上自建一个目录,设置文件夹名,例如在d盘根目录下建立 website 文件夹,然后在Rstudio 中输入以下代码

此时,在D盘的 website 目录下自动创建了academic主题的静态页面网站,同时在Rstudio右下角的Viewer中可以看到页面内容,也可以访问 http://127.0.0.1:4321 看到网站页面。

步骤3:修改网站配置文件,创建中英双语网站

在D盘的 website 目录下,已生成多个新文件夹。别的暂时不用管也不用动,只需要注意content 和public 目录。打开 public,打开里面的index.html,这就是网站的主页,可以点开几个链接试试看。

关于修改 hugo-academic 配置文件生成中英文网站的基本步骤如下:

step1: 开启双语功能 hugo-academic 配置文件中最重要的是在网站根目录下的 config.toml 文件,该文件可以用 Rstudio 打开,然后在config.toml里找到:

说明网站的初始默认设置是英文,在后面添加中文,如下代码:

step2:菜单栏增加中文界面
菜单栏就是网页顶部那一排按钮。这需要在config.toml里找到菜单栏的设定,这是默认语言英语的设置:

在下面添加中文设置,如下代码:

这样,就把Home按钮替换成了主页按钮,其他按钮类似操作进行修改。

step3:其他内容的修改

需要把 \themes\hugo-academic\i18n\ 文件夹拷贝到根目录,然后删掉里边不需要的语言文件(如德语、法语等)。只保留en.yaml和zh.yaml(中英文双语)。用 Rstudio 打开zh.yaml,可以修改里边中文翻译不妥当的地方,比如 interests 翻译成了“兴趣爱好”,可以改成“研究领域”。

step4:新增帖子的双语

每次在 content\ 文件夹里新增文件时,如果要增加英文,就在文件扩展名前面加个.en即可。例如,在 content\talk\ 下面新建了 egu-2017.md,里面是中文,会出现在中文界面上。如果想让这个项目也在英文版出现,只需把egu-2017.md复制一份,命名为 egu-2017.en.md,那么这个项目就会在英文界面出现。打开egu-2017.en.md 把里面的中文改成英文即可。

step5:新增帖子的双语

在菜单栏增加中英文界面切换的按钮,在 config.toml 里的菜单设置处修改以下代码:

step6:对网站首页页面内容的双语设置

如果使用 academic 主题,在网站首页会有一些页面内容,如 about、exprerience、contact等,如何让这些英文页面内容在中文对应页面显示为中文内容呢?修改办法如下:首先,从根目录访问如下目录地址 \content\home ,其次,复制一份该目录下的 .md 文件,并将复制的文件名修改成 .zh.md 形式。例如,该目录下的 about.md 文件,复制并修改为 about.zh.md文件,然后打开该文件,对文件内容进行修改,注意:文件中的前两个目录内容不要修改,一般从第三个目录内容开始修改。例如,复制的 about.zh.md 文件中,可以对 # List your academic interests. 以下,在双引号内的内容进行修改。

至此,在个人电脑上,中英文双语网站即告建成,可以本地打开页面访问,进一步修改与完善。更多围绕hugo页面细节修改的知识,可访问: https://gohugo.io/documentation/ 自行学习了解。如果仍遇到无法解决的问题,也可以直接去 https://www.stackoverflow.com 检索或提问,寻求网友的协助。

2.3.4 安装与配置云服务器LNMP环境

  1. 什么是LNMP?

在上一节中,我们讲解了如何在个人电脑上快速搭建中英文双语静态网站,怎么将网站对外发布呢?这就需要将网站系统部署到云服务器环境下,本节将进一步讲解如何安装配置云服务器下的LNMP环境,为网站系统的对外发布做好基础性工作。

刚注册获取的华为云服务器(Elastic Computing Server, ECS)相当于是一台只装了ubuntu操作系统的裸机,没有安装其他系统软件(如数据库Mysql以及对外提供WEB服务的中间件软件,如Appache或nginx等) 和应用软件(如hugo+blogdown实现的静态网站),服务器此时无法对外提供服务,普通用户也无法连接IP地址通过互联网访问服务器资源。

要安装的系统软件Nginx、Mysql和应用软件之间的关系如图 2.3 示意:

云服务环境下主要系统软件间关系

图 2.3: 云服务环境下主要系统软件间关系

资料来源:作者自行绘制

从上图可以看到:Nginx相当于是Web服务器程序,用来响应用户的访问请求,解析Web应用程序;MySQL则是一个免费的数据库管理系统;PHP是Web服务器生成网页的程序,用于支撑基于PHP框架开发的网站系统,由于我们采用的是 hugo+blogdown 实现的静态页面系统,因此PHP框架暂时用不上,今后在《信息系统分析与设计》课上教大家搭建 wordpress 动态网站系统时再用到。

接下来讲解的步骤包括:(1)集成的Lnmp一键包安装;(2)hugo+blogdown静态网站的对外发布。

  1. LNMP的安装与配置

对于非计算机专业学生,如果要逐一的安装nginx、mysql和PHP并配置好是一件较为繁琐复杂的事,为此,有人开发了LNMP一键安装包并在互联网上免费分享(网址:https://lnmp.org/),大大方便了LNMP的安装与配置。

LNMP一键安装包是一个用Linux Shell编写的可以为Ubuntu VPS或独立主机安装LNMP(Nginx/MySQL/PHP)生产环境的Shell打包程序。

  • Nginx 是一个小巧而高效的Linux下的Web服务器软件,由 Igor Sysoev 用C语言为俄罗斯访问量第二的Rambler.ru站点开发,特点是占有内存少,并发能力强,能够支持高达50,000个并发连接数的响应,已经在一些俄罗斯的大型网站上运行多年,相当稳定。Nginx具有高稳定性,功能丰富,安装配置简单,系统资源占用低等优点。国内使用nginx的大型网站有:百度、京东、新浪、网易、腾讯、淘宝等。现在无论是创业公司,还是BAT等一线互联网企业,都在使用Nginx,它就像一个万能药,在众多存在性能需求的场合总能见到它的身影。Nginx 天生适合在 Linux 服务器上处理百万、千万级的并发连接,而优秀的架构使得它基本不需要重构,这使其生态圈内的第三方模块长期有效。

Nginx 的三个典型应用场景如图 2.4 所示:

Nginx 的三个典型应用场景

图 2.4: Nginx 的三个典型应用场景

资料来源:作者自行绘制

LNMP的安装步骤如下:

  • 安装LNMP稳定版,由于LNMP程序经常有版本升级,可以查看网页:https://lnmp.org/install.html 了解安装注意事项,并选择安装最新的稳定版本。以当前的最新版本(2018-10-21,Ver1.5)为例,在服务器上输入以下指令:

安装启动时的选项大都选为默认,记住mysql数据库的root密码,默认是root;

  • 整个安装依网络环境不同,约20-40分钟不等,出现以下界面图 2.5 ,并显示Nginx: OK,MySQL: OK,PHP: OK,说明LNMP安装成功!
公有云服务器上LNMP安装成功界面

图 2.5: 公有云服务器上LNMP安装成功界面

资料来源:作者自行绘制

如果想了解LNMP相关软件目录及文件位置,可以查看网页:https://lnmp.org/faq/lnmp-software-list.html

在浏览器地址栏输入华为云服务器公网 IP 地址,如果出现以下显示图 2.6,说明web服务开启成功,此后,华为云服务器就可以对外提供WWW服务了。

公有云服务器上web服务开启成功界面

图 2.6: 公有云服务器上web服务开启成功界面

资料来源:作者自行绘制

注意

公有云服务商一般都会对公网IP访问进行主机端口的安全设置,以华为云为例,默认开启的端口只有两个(22和3389端口),如果要对外提供WWW服务,需要开启80端口。因此,在启动Nginx服务后,记住要在华为云的控制台对云服务器主机的安全组进行配置,一般选择第二项安全组,增加80端口的开放,这样就可以公网访问了。

分组练习

  1. 2017级信息管理与信息系统专业的79名同学,分成10组,每组8人左右,选出组长,并由组长分派组员任务。

  2. 练习内容: 根据老师讲授的R语言环境下blogdown+hugo搭建中英双语网站的知识,以小组为单位,在本地电脑或云服务器(可选)上搭建一个中英文双语网站,网站的内容和目的由小组自行设计。

提交成果

本次作业,需要每组提交的成果如下:(1)一份标明组长,组员及各自分工的excel表;(2)可以直接运行的website目录文件夹压缩包。每组都要在本周日(2019年4月14日)17点前提交上述成果给学习委员,学习委员确定每组成果能运行,再发回给教师,文件命名格则是:组长姓名-网站名,此次作业作为平时成绩纳入考核,周一(2019年4月15日)上课时,随机让2-3组在讲台展示成果。

2.3.5 在云服务器上安装与配置Rstudio server

缘起

在本地电脑上跑一些比较费时间的R脚本程序,由于一直占用机时,会影响电脑的其他使用。为此,考虑在腾讯云服务器上安装 Rstudio server,以便能够在云服务器上运行R程序,方便随时随地查看程序运行结果。

安装过程

在腾讯云服务器上,选择操作系统为 Ubuntu 16.04 LTS,安装 Rstudio server。注意:首先安装R,再去安装 Rstudio server,后者是前者的集成开发环境(IDE),方便数据分析人员编写脚本程序、调试代码、显示运行结果。 整个安装分为以下3大步骤若干小步骤:

步骤1:安装基础的R包

1.1 首先在 root 用户权限下输入以下命令

上述命令是通过ubuntu自带的vi编辑器,对指定目录下的sources.list文件进行修改。

1.2 其次,按下“i”,进入编辑状态,在文件的最后一行输入:

上述选择的是清华大学CRAN镜像地址

说明:ubuntu16.04 LTS的代号为xenial,以上路径是清华大学的ubuntu16操作系统下R语言的镜像源 参考网址:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

修改完毕后,按下“esc”退出编辑状态,并输入”:wq”,退出并保存,会提示文件修改信息。

1.3 接下来在ubuntu操作系统的shell界面(有$标志的界面)输入以下命令:

1.4 最后,在ubuntu操作系统的shell界面(有$标志的界面)输入以下命令:

进入R环境,输入 version,查看安装的版本号。

步骤2:安装 Rstudio server

详细的英文安装说明,请访问:https://www.rstudio.com/products/rstudio/download-server/

2.1 首先,在ubuntu操作系统的shell界面(有$标志的界面)输入以下命令:

说明:上述安装的Rstudio server版本号:1.2.1335,Released: 2019-04-08

2.2 其次,安装完毕后,在ubuntu操作系统的shell界面(有$标志的界面)输入以下命令:

之后要求输入密码时,请输入方便记忆的6位密码。

一般而言,公有云服务商提供的云服务器8787端口默认没有对外开放,需要到云服务器控制台,找到安全组,对导入设置安全策略,添加开放8787端口 此时打开地址 http://ip:8787 前面的ip是个人申请的腾讯云主机地址,8787是rstudio server访问的端口地址 输入用户名和密码,即可登录Rstudio server

步骤3:配置 Rstudio server

登录进入Rstudio server后,我们不难发现:Rstudio server的界面和使用与在本地个人终端使用Rstudio没有多少差异。在正式使用Rstudio server开展数据分析工作之前,我们还需要做几方面配置,使其运行更方便。

3.1 中文字符乱码问题的消除

腾讯云主机服务器上安装的ubuntu 16.04LTS 是英文操作系统,没有安装必要的中文字符集和字库,如果不配置,绘图中遇到中文就会有乱码。在ubuntu操作系统的shell界面(有$标志的界面)输入以下命令:

在ubuntu操作系统的shell界面(有$标志的界面)输入以下命令:

在ubuntu操作系统的shell界面(有$标志的界面)输入以下命令:

在ubuntu操作系统的shell界面(有$标志的界面)输入以下命令:

完成上述步骤后,如果Rstudio server在运行,restart a new session;如果没有运行,可以在云服务器主机管理控制台直接重启服务器主机,重启后在Rstudio server中,用ggplot2画图中文显示正常

3.2 一些非CRAN下载源但又很重要的R包下载

由于CRAN对R包的管控很严格,使得一些R包作者不愿花费时间在测试上,而将开发的R包直接放在github上,为方便使用这些R包,我们需要安装devtools工具软件。

在ubuntu操作系统的shell界面(有$标志的界面)输入以下命令:

之后在Rstudio server中查看是否安装了devtools包,如果没有就在Rstudio server中直接install

3.3:Ubuntu下R包XML安装报错问题的解决

Ubuntu下R包XML直接在RStudio server中安装,不成功,报错:installation of package xml had non-zero exit status

解决办法:首先在Terminal中安装libxml2- dev,输入命令:

然后在RStudio server中安装XML package

2.3.6 在云服务器上安装与配置jupyter notebook

缘起

在腾讯云服务器上安装了 Rstudio server 后,曾经跑过一些程序,但之后的数据分析大都在个人电脑上进行。近来想在腾讯云服务器上跑人工智能的程序,因此有了安装 Jupyter notebook 以便能运行 python 下的 keraskashgari 包,跑最新的 BERT embeddingNER领域的 BLSM+CRF 模型。

安装过程

在腾讯云服务器上安装 Jupyter notebook 分为以下2大步骤6小步骤:

步骤1:安装 anaconda

anaconda 套件的最大好处是已将常用的 python 包都安装在环境中,省得自己动手一一安装。因之前,已在腾讯云服务器 root 用户下安装过,此步省略。简单而言,在 root 用户权限下输入以下命令

安装好后,输入 conda list 命令,看显示是否正常,如果正常可以进入下一步。

步骤2:配置 jupyter notebook

该步骤又可以细分为以下几步:

2.1 生成jupyter notebook配置文件

在 console 输入以下命令:

2.2 在 console 输入 ipython,进一步输入以下命令

上面的passwd是远程登陆 jupyter notebook 服务器的密码:910906

Out[2]的输出一定要复制下来,存在某txt里,后面会用到。

腾讯云服务器 jupyternotebook 密码 ‘sha1:73df668189f7:071c6521f4e2b519197f8b77175152c54bdc2cae’

2.3 修改jupyter 配置文件

在 console 输入以下命令

在vi编辑器打开的文件里输入字母 i ,使得当前为输入状态,然后移动光标到空白行,输入以下命令

2.4 在腾讯云服务器的安全组设置中,将8888端口打开

在腾讯云服务器页面,选择安全组设置,检查8888端口是否打开,如果没有,请设置为打开状态。

2.5 后台启动 jupyter notebook

在 console 输入以下命令:

相关指令说明:

& :指在后台运行

nohup :不挂断的运行,注意并没有后台运行的功能,就是指用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行。

此时,如果在 console 里显示如下信息:

[W 21:51:35.627 NotebookApp] WARNING: The notebook server is listening on all IP addresses and not using encryption. This is not recommended.
[I 21:51:35.636 NotebookApp] Serving notebooks from local directory: /root
[I 21:51:35.637 NotebookApp] 0 active kernels
[I 21:51:35.637 NotebookApp] The Jupyter Notebook is running at:
[I 21:51:35.637 NotebookApp] http://[all ip addresses on your system]:8888/
[I 21:51:35.637 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation)

说明 Jupyter notebook 顺利启动。

2.6 浏览器访问 Jupyter notebook

在本机浏览器中输入 wujun.site:8888,在打开页面中输入访问 Jupyter notebook 的密码:910906 即可看到 Jupyter notebook 首页。之后就和本地使用 Jupyter notebook 类似。

相关参考资料可以访问: