阿里云服务器部署Web应用,安装宝塔、mysql、elasticsearch、ik分词器一条龙

服务器购买

主流的服务器的区别

主流服务器有阿里云、腾讯云、华为云。区别和购买意见可以参考这篇博客:云服务器横评:阿里云、腾讯云和华为云近似配置谁更适合站长选择?

摘抄作者的结论这在里:

总的来讲,阿里云、腾讯云和华为云配置接近的三款服务器表现整体而言,华为云和腾讯云是优于阿里云的。
如果用户倾向于大规模运算以及高速的数据存储需求,华为云是更好的选择。如果要建立大规模的服务集群,腾讯云内网联通速度也是非常好的保障。而阿里云在国内市场的占有率也让不少用户有所青睐。
至于价格,我认为这并不是一个需要考虑的问题,因为主流的云服务厂商主推的是按期订购或是按量订购,同时用量大也会有各种各样的优惠,针对于大客户更会有专门的销售人员给出参考。所以说,对于站长们来讲,确定好需求和用量,云服务器厂商自然就清楚的出来了。

如果是学生,其实对性能要求不高,买哪个都差不多,而阿里云的学生优惠还是不错的。我也是买了阿里云。

阿里云开发者成长计划

如果你是学生,那么可以在阿里云的开发者成长计划享受学生优惠。

阿里云服务器部署Web应用,安装宝塔、mysql、elasticsearch、ik分词器一条龙_第1张图片
成长计划中提供的服务器基本上都是10块钱/月,建议购买ECS,不过我自己买的是轻量应用服务器,本博客也是基于轻量应用服务器来写的。

购买阿里云服务器

阿里云服务器部署Web应用,安装宝塔、mysql、elasticsearch、ik分词器一条龙_第2张图片
地域选择离自己近的就好,访问速度快一些。镜像建议选择系统镜像,OS Image操作系统映像选择CentOS 7或者更高版本。CentOS是Linux系统的一个发行版本,而宝塔面板是基于CentOS 7以上的版本的

关于系统镜像和应用镜像的区别:
系统镜像就是单纯的linux系统,应用镜像则是在系统内还安装了应用软件,比如lnmp环境,wordpress等。如果应用镜像中有所需要的镜像,选择应用镜像更加方便,此时并不需要手动安装程序。
我注意到应用镜像中就有BT-Panel,也就是宝塔面板。不过我自己当初是选择系统镜像,然后自己装宝塔的,也不麻烦,本文之后会提到。
本质上,选择系统镜像和应用镜像是没有区别的。

参考:云服务器(阿里云)的应用镜像和系统镜像有什么区别?

选择好各项属性后支付,你就拥有一个自己的云服务器了!记得保持IP地址、账号、密码等信息

服务器的使用

进入服务器控制台可以远程控制你的服务器:阿里云轻量应用服务器控制台

在控制台中,选择远程连接就可以连接到你的服务器上,在Linux系统中要使用命令行指令来操控。这点稍后再说

域名

域名注册和购买

访问一个网站可以通过ip访问,也可以通过域名访问。IP访问有个很明显的缺点,就是IP难记,而域名通常与网站相关而且通常简单易记。所以通常来说网站都会绑定域名。

在阿里云平台中可以注册和购买域名:域名注册

进入对应页面后搜索自己想要注册的域名。如果是个人网站,则不必追求顶级域名,选择一个顺眼又便宜的域名即可。

域名备案

购买的域名需要备案,否则是无法访问的。可以访问:阿里云域名控制台,按指定操作进行备案。备案需要提供网站的相关资料,如网站名、网站定位等,除此之外还需要你的个人信息。

备案通过时间在20个工作日,也就是半个月左右的时间,所以如果域名需要投入使用的话,需要提前注册域名和备案喔!

宝塔面板

宝塔面板提供服务器的可视化管理,可以进行服务器检测、服务器环境搭建、文件上传和管理等一大堆功能,安装了宝塔面板之后就不需要xshell和xftp之类的软件辅助了

安装宝塔面板

宝塔面板的安装只需要按照官网的说明来就行了:宝塔面板安装

CentOS安装指令:

宝塔Linux面板7.5.2安装命令(建议看官网的,因为可能会更新):

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

进入你的服务器控制台,选择远程连接,之后登录root用户(我的指令是sudo su root),将上面的指令复制执行即可。

安装完成后,控制台会提供IP地址、用户名和密码,记得保存。之后使用提供的IP地址和身份信息登录宝塔面板的网页即可。

防火墙

在讲软件安装和环境配置之前,先讲一些防火墙和端口放行。

出于安全考虑,阿里云服务器基本上屏蔽了所有端口,而就导致一些软件安装后不能被访问到。比如mysql。

在阿里云服务器控制台中,可以找到防火墙,放行对应端口

下面提供一些常见的端口,可以按需求放行端口:

端口 说明
80 服务器网站默认端口
8888 宝塔Linux面板默认端口
3306 mysql数据库
888 PhpMyAdmin
8080 tomcat
5601 kibana
9200 elasticsearch

除了上述端口之外,还建议打开20,21,22,39000-40000端口,以支持FTP和SSH相关服务。

在阿里云开放端口之后,记得也要在宝塔面板中开放相应端口

软件安装和环境配置

宝塔面板会为你提供推荐软件的安装,可以按LNMP的安装,也可以自己稍后手动安装需要的软件即可,这个不重要。(不过使用推荐安装的话会帮你配置一下环境变量)
阿里云服务器部署Web应用,安装宝塔、mysql、elasticsearch、ik分词器一条龙_第3张图片
之后进入软件商店,安装必要的环境,如tomcat,mysql,redis,然后phpMyAdmin也可以安装,这是一个数据库管理工具。

Java环境

服务器还需要需要检查一下jdk环境。可以切换到阿里云控制台,使用java -version查看。如果没有相应的反馈,可以使用vim /etc/profile打开查看/etc/profile文件,检查是否配置了JAVA_HOME环境变量。
如果没有安装jdk或者配置,可以参考这一篇博客:Linux下配置JAVA_HOME

phpMyAdmin和数据库

在宝塔面板左侧的工具栏中,选择数据库,再点击 phpMyAdmin 按钮,即可进入 phpMyAdmin。 phpMyAdmin中可以导入SQL文件,可以将你本地的数据库导入到云服务器上。你部署在服务器上的项目会通过端口访问对应服务器的数据库是,所以不用担心路径问题。

阿里云服务器部署Web应用,安装宝塔、mysql、elasticsearch、ik分词器一条龙_第4张图片

如果导入数据库遇到1045 Access denied for user错误,是因为权限不对,需要以root用户登录数据库。至于登录方式,在宝塔面板的数据库页面中进入phpMyAdmin时,它会让你登录,此时使用root用户登录即可。

如果你不知道root用户的密码,可以在数据库页面中修改。

添加数据库后,可以在宝塔面板中点击“从服务器获取”按钮刷新数据库列表。你可以在宝塔面板数据库管理界面或者phpMyAdmin中直接创建新的数据库。

elasticsearch

elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。

如果你的项目不需要它,你可以跳过此部分。不过,elasticsearch部署的某些问题和解决办法可能会对你有所帮助。

安装elasticsearch

elasticsearch是用Java实现的,跑elasticsearch必须要有jre环境,所以必须先安装java

下载elasticsearch:elasticsearch官网。

需要选择与你的项目相同的版本,否则可能会有兼容性问题。还有,记得选择linux版本的。

下载后的安装包上传到服务器上。我的宝塔面板安装的软件都安装在/www/server/目录下,所以我也将elasticsearch的文件解压在这。宝塔面板可以直接解压,你也可以通过linux命令解压

elasticsearch配置

elasticsearch(和kibana)对内存的需求是比价高的,默认配置中会分配给它1g的内存。如果你的服务器时学生机,那么肯定是不满足这个配置要求的,需要去改它的配置文件。

具体的配置操作比较繁琐,可以参考阿里云安装配置ElasticSearch搜索引擎

出了内存配置,也可以在配置文件中修改已有配置,如日志文件的输出位置。

运行elasticsearch

解压完成后,可以在阿里云的远程控制窗口执行命令运行elasticsearch。

elasticsearch不允许使用root用户运行,所以我们需要使用root用户创建一个新的用户es来启动,由于elasticsearch的日志文件输出需要有系统权限,所以我们还需要给新用户es赋予操作权限,指令如下:

useradd es
chown -R es /www/server/elasticsearch-7.9.2

说明:chown是修改目录所有者的命令,-R表示指定目录以及其子目录下的所有文件。

最后,切换到elasticsearch的bin目录下,使用:./elasticsearch启动elasticsearch.bat文件,会在屏幕上输出启动信息。如果想要在后台运行,需要使用./elasticsearch -d命令。

启动之后,可以使用curl http://localhost:9200/?pretty命令检查elasticsearch的运行状态,或者直接使用浏览器,通过你服务器的ip访问9200端口。出现下面这种状态说明程序正常运行。
阿里云服务器部署Web应用,安装宝塔、mysql、elasticsearch、ik分词器一条龙_第5张图片
启动完成后,第二天记得再次上线重新启动,检查是否正常启动。因为日志是每日更新的,第二天可能由于权限的原因,无法正常启动,需要检查上述步骤以及配置文件的配置是否正确。

关于kibana

由于我的服务器是学生机,一个elasticsearch内存就已经快吃不消了,如果你的服务器的硬件配置不是很好的话,建议在本机安装kibana,通过ip访问服务器的elasticsearch服务器。

只需要本地的电脑 在kibana的配置文件中kibana.yml修改服务绑定地址即可:

server.host: "192.168.xxx.xxx"

服务器部署kibana可以参考:Linux中Kibana部署

基本的linux命令

解压命令

参考:Linux下的tar压缩解压缩命令详解

命令 说明
tar -xvf xxx.tar 解压xxx压缩包(tar格式的)
tar -xzvf xxx.tar.gz 解压xxx压缩包(tar.gz格式)
unzip file.zip 解压zip
unrar e file.rar 解压rar

用户管理命令

命令 说明
su 即switch user,切换用户
useradd testuser 创建用户testuser
passwd testuser 给已创建的用户testuser设置密码
usermod --help 修改用户这个命令的相关参数
userdel testuser 删除用户testuser
rm -rf testuser 删除用户testuser所在目录

新创建的用户会在/home下创建一个用户目录testuser
高级用户向低级用户切换不需要密码

权限

chown(change owner):命令用于设置文件所有者和文件关联组的命令

指令 说明
chown -R 用户名 目录 将目录及子目录的所有者修改为指定用户

部署项目

通过maven将项目打包为tar文件,上传至服务器的tomcat的webapp目录下,服务器会自动解压tar包。确认一下将这个压缩包解压到webapp目录下,文件夹名为项目名。(有时候服务器会抽风然后不解压,需要手动解压。使用宝塔面板解压就行了)

tomcat配置访问项目时不需要添加项目名称

Host name="localhost" appBase="webapps" 节点下面添加

参考我的另一篇文章:云服务器tomcat设置不输入项目名称访问项目

搞定后记得重启tomcat!宝塔面板可以一键重启,也可以通过服务器远程连接来启动:

  • 通过ps -ef|grep java命令检查进程,找到tomcat进程的进程ID
  • 使用kill -9 进程id命令杀死进程
  • 切换到tomcat目录的bin目录下,使用root用户执行nohup ./startup.sh &命令启动tomcat

重启之后,使用服务器ip访问8080端口即可

如果无法访问,可以尝试将tomcat的server.xml将域名改为localhost

项目日志

建议将项目的项目日志记录目录写在配置文件中。因为项目一旦部署到服务器上,源文件都将以class文件存储,无法查看和编辑。但是配置文件和日志文件都是可以查看和编辑的。在服务器上debug和维护时就需要借助日志文件。

可以通过宝塔面板便捷的阅读日志文件。

linux系统的目录与windows系统的目录不同,linux的根目录为/,而不是windows那样子可以以盘符为根。此外,windows的路径是\,而linux是/,建议在项目中统一使用/

资源文件

如果你的项目中或者数据库中涉及到了路径,那么就要注意了。服务器上可能没有你对应的路径!也没有对应的文件!

例如,如果你的web项目的头像时存储在本地的一个文件夹,那么那些文件你都要上传到服务器上。如果你在数据库中存储的是图片的路径,那么在服务器上,数据库的路径也要做调整。

成熟的项目一般会采用图床来存取图片资源(图床是指储存图片的服务器,)

IK分词器

elasticsearch中有个常用的插件:ik分词器。

下载地址:https://github.com/medcl/elasticsearch-analysis-ik

点击github的tags标签按钮,找到自己对应的版本
阿里云服务器部署Web应用,安装宝塔、mysql、elasticsearch、ik分词器一条龙_第6张图片
选择第一个下载选项:
阿里云服务器部署Web应用,安装宝塔、mysql、elasticsearch、ik分词器一条龙_第7张图片

确保下载到的压缩包中包含plugin-descriptor.properties文件(没有的话启动会报错没有这个文件):
阿里云服务器部署Web应用,安装宝塔、mysql、elasticsearch、ik分词器一条龙_第8张图片
如果下载后得到的是源码的形式(如下图),则不能直接使用,需要使用mvn打包,这里就不演示了。
阿里云服务器部署Web应用,安装宝塔、mysql、elasticsearch、ik分词器一条龙_第9张图片
下载完成后,将这个压缩包上传到服务器了elasticsearch的plugin目录下并解压。

最后使用es用户重启elasticsearch,如果没有报错就是安装成功了。

参考:

宝塔面板和服务器

阿里云轻量应用服务器应用镜像和系统镜像选择详细介绍

云服务器(阿里云)的应用镜像和系统镜像有什么区别?

通过宝塔搭建网站服务器,搭建属于自己的网站

怎样搭建自己的网站?来,教你从阿里云服务器购买到部署一步解决!

教大家如何创建云服务器,怎么把域名和服务器绑定,部署项目到云

宝塔Linux面板安装教程

宝塔Linux面板命令大全

环境

Linux下配置JAVA_HOME

tomcat配置访问项目时不需要添加项目名称

linux安装maven环境

elasticsearch

阿里云安装配置ElasticSearch搜索引擎

Linux安装ElasticSearch,Elasticsearch安装辅助插件,IK分词器安装,使用IK分词器

启动elasticsearch出现java.io.FileNotFoundException一系列异常

Linux部署Elasticsearch(二):启动Elasticsearch不成功的几种原因

总结—elasticsearch启动失败的几种情况及解决

阿里云-开放ElasticSearch:9200端口还是无法访问的解决办法!!!

解决es集群启动完成后报master_not_discovered_exception

Kibana

Linux中Kibana部署

IK分词器

分布式系列教程(34) -Linux下安装ik分词器

Linux安装ElasticSearch,Elasticsearch安装辅助插件,IK分词器安装,使用IK分词器

centos7下部署elasticsearch常见错误

你可能感兴趣的:(部署,linux,云服务器,elasticsearch,阿里云,tomcat)