主流服务器有阿里云、腾讯云、华为云。区别和购买意见可以参考这篇博客:云服务器横评:阿里云、腾讯云和华为云近似配置谁更适合站长选择?
摘抄作者的结论这在里:
总的来讲,阿里云、腾讯云和华为云配置接近的三款服务器表现整体而言,华为云和腾讯云是优于阿里云的。
如果用户倾向于大规模运算以及高速的数据存储需求,华为云是更好的选择。如果要建立大规模的服务集群,腾讯云内网联通速度也是非常好的保障。而阿里云在国内市场的占有率也让不少用户有所青睐。
至于价格,我认为这并不是一个需要考虑的问题,因为主流的云服务厂商主推的是按期订购或是按量订购,同时用量大也会有各种各样的优惠,针对于大客户更会有专门的销售人员给出参考。所以说,对于站长们来讲,确定好需求和用量,云服务器厂商自然就清楚的出来了。
如果是学生,其实对性能要求不高,买哪个都差不多,而阿里云的学生优惠还是不错的。我也是买了阿里云。
如果你是学生,那么可以在阿里云的开发者成长计划享受学生优惠。
成长计划中提供的服务器基本上都是10块钱/月,建议购买ECS,不过我自己买的是轻量应用服务器,本博客也是基于轻量应用服务器来写的。
地域选择离自己近的就好,访问速度快一些。镜像建议选择系统镜像,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的安装,也可以自己稍后手动安装需要的软件即可,这个不重要。(不过使用推荐安装的话会帮你配置一下环境变量)
之后进入软件商店,安装必要的环境,如tomcat,mysql,redis,然后phpMyAdmin也可以安装,这是一个数据库管理工具。
服务器还需要需要检查一下jdk环境。可以切换到阿里云控制台,使用java -version
查看。如果没有相应的反馈,可以使用vim /etc/profile
打开查看/etc/profile
文件,检查是否配置了JAVA_HOME环境变量。
如果没有安装jdk或者配置,可以参考这一篇博客:Linux下配置JAVA_HOME
在宝塔面板左侧的工具栏中,选择数据库,再点击 phpMyAdmin 按钮,即可进入 phpMyAdmin。 phpMyAdmin中可以导入SQL文件,可以将你本地的数据库导入到云服务器上。你部署在服务器上的项目会通过端口访问对应服务器的数据库是,所以不用担心路径问题。
如果导入数据库遇到1045 Access denied for user
错误,是因为权限不对,需要以root用户登录数据库。至于登录方式,在宝塔面板的数据库页面中进入phpMyAdmin时,它会让你登录,此时使用root用户登录即可。
如果你不知道root用户的密码,可以在数据库页面中修改。
添加数据库后,可以在宝塔面板中点击“从服务器获取”按钮刷新数据库列表。你可以在宝塔面板数据库管理界面或者phpMyAdmin中直接创建新的数据库。
elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
如果你的项目不需要它,你可以跳过此部分。不过,elasticsearch部署的某些问题和解决办法可能会对你有所帮助。
elasticsearch是用Java实现的,跑elasticsearch必须要有jre环境,所以必须先安装java
下载elasticsearch:elasticsearch官网。
需要选择与你的项目相同的版本,否则可能会有兼容性问题。还有,记得选择linux版本的。
下载后的安装包上传到服务器上。我的宝塔面板安装的软件都安装在/www/server/目录下,所以我也将elasticsearch的文件解压在这。宝塔面板可以直接解压,你也可以通过linux命令解压
elasticsearch(和kibana)对内存的需求是比价高的,默认配置中会分配给它1g的内存。如果你的服务器时学生机,那么肯定是不满足这个配置要求的,需要去改它的配置文件。
具体的配置操作比较繁琐,可以参考阿里云安装配置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端口。出现下面这种状态说明程序正常运行。
启动完成后,第二天记得再次上线重新启动,检查是否正常启动。因为日志是每日更新的,第二天可能由于权限的原因,无法正常启动,需要检查上述步骤以及配置文件的配置是否正确。
由于我的服务器是学生机,一个elasticsearch内存就已经快吃不消了,如果你的服务器的硬件配置不是很好的话,建议在本机安装kibana,通过ip访问服务器的elasticsearch服务器。
只需要本地的电脑 在kibana的配置文件中kibana.yml修改服务绑定地址即可:
server.host: "192.168.xxx.xxx"
服务器部署kibana可以参考:Linux中Kibana部署
参考: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目录下,文件夹名为项目名。(有时候服务器会抽风然后不解压,需要手动解压。使用宝塔面板解压就行了)
在Host name="localhost" appBase="webapps"
节点下面添加
参考我的另一篇文章:云服务器tomcat设置不输入项目名称访问项目
搞定后记得重启tomcat!宝塔面板可以一键重启,也可以通过服务器远程连接来启动:
ps -ef|grep java
命令检查进程,找到tomcat进程的进程IDkill -9 进程id
命令杀死进程nohup ./startup.sh &
命令启动tomcat重启之后,使用服务器ip访问8080端口即可
如果无法访问,可以尝试将tomcat的server.xml将域名改为localhost
建议将项目的项目日志记录目录写在配置文件中。因为项目一旦部署到服务器上,源文件都将以class文件存储,无法查看和编辑。但是配置文件和日志文件都是可以查看和编辑的。在服务器上debug和维护时就需要借助日志文件。
可以通过宝塔面板便捷的阅读日志文件。
linux系统的目录与windows系统的目录不同,linux的根目录为/
,而不是windows那样子可以以盘符为根。此外,windows的路径是\
,而linux是/
,建议在项目中统一使用/
。
如果你的项目中或者数据库中涉及到了路径,那么就要注意了。服务器上可能没有你对应的路径!也没有对应的文件!
例如,如果你的web项目的头像时存储在本地的一个文件夹,那么那些文件你都要上传到服务器上。如果你在数据库中存储的是图片的路径,那么在服务器上,数据库的路径也要做调整。
成熟的项目一般会采用图床来存取图片资源(图床是指储存图片的服务器,)
elasticsearch中有个常用的插件:ik分词器。
下载地址:https://github.com/medcl/elasticsearch-analysis-ik
点击github的tags
标签按钮,找到自己对应的版本
选择第一个下载选项:
确保下载到的压缩包中包含plugin-descriptor.properties文件(没有的话启动会报错没有这个文件):
如果下载后得到的是源码的形式(如下图),则不能直接使用,需要使用mvn打包,这里就不演示了。
下载完成后,将这个压缩包上传到服务器了elasticsearch的plugin目录下并解压。
最后使用es用户重启elasticsearch,如果没有报错就是安装成功了。
阿里云轻量应用服务器应用镜像和系统镜像选择详细介绍
云服务器(阿里云)的应用镜像和系统镜像有什么区别?
通过宝塔搭建网站服务器,搭建属于自己的网站
怎样搭建自己的网站?来,教你从阿里云服务器购买到部署一步解决!
教大家如何创建云服务器,怎么把域名和服务器绑定,部署项目到云
宝塔Linux面板安装教程
宝塔Linux面板命令大全
Linux下配置JAVA_HOME
tomcat配置访问项目时不需要添加项目名称
linux安装maven环境
阿里云安装配置ElasticSearch搜索引擎
Linux安装ElasticSearch,Elasticsearch安装辅助插件,IK分词器安装,使用IK分词器
启动elasticsearch出现java.io.FileNotFoundException一系列异常
Linux部署Elasticsearch(二):启动Elasticsearch不成功的几种原因
总结—elasticsearch启动失败的几种情况及解决
阿里云-开放ElasticSearch:9200端口还是无法访问的解决办法!!!
解决es集群启动完成后报master_not_discovered_exception
Linux中Kibana部署
分布式系列教程(34) -Linux下安装ik分词器
Linux安装ElasticSearch,Elasticsearch安装辅助插件,IK分词器安装,使用IK分词器
centos7下部署elasticsearch常见错误