开发者交流平台项目部署到阿里云服务器教程
本文使用PuTTY软件在本地Windows系统远程控制Linux服务器;其中,Windows系统为Windows 10专业版,Linux系统为CentOS 7.6 64位。
1.工具软件的准备
maven:https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
tomcat:https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.22/bin/apache-tomcat-9.0.22.tar.gz
elasticsearch:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.3.tar.gz
elasticsearch-analysis:https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-6.4.3.zip
kafka:https://archive.apache.org/dist/kafka/2.3.0/kafka_2.12-2.3.0.tgz
mysql80:http://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
以上工具软件可直接在linux服务器上使用命令下载:
wget+以上链接
也可以在本地windows系统下载好之后通过windows命令行传文件到linux服务器:
Win+R→cmd→转到文件所在的盘符,比如:D:
然后再cd到文件所在目录;
在所需要上传的文件所在目录使用命令:
pscp [文件名] linux用户名@服务器公网IP地址:在Linux系统保存的地址
比如:
pscp community-init-sql-1.5.zip root@x.x.x.x:/root
2. 安装unzip
cd /
yum list unzip*
yum install -y unzip.x86_64
3.下载JDK1.8
yum list java*
yum install -y java-1.8.0-openjdk.x86_64
java -version
4.安装Maven
tar -xzvf apache-maven-3.6.1-bin.tar.gz -C /opt
cd /opt/apache-maven-3.6.1/bin
vim /etc/profile
输入i进入INSERT模式之后在
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
的后一行增加
export PATH=$PATH:/opt/apache-maven-3.6.1
(可直接按右键粘贴)之后,按【Esc】→【:wq】保存退出。
接下来启用和查看maven版本:
source /etc/profile
mvn -version
5.Maven配置阿里云镜像
cd conf
vim settings.xml
输入i进入INSERT模式之后在之间增加以下代码
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/central</url>
</mirror>
(可直接按右键粘贴)之后,按Esc】→【:wq】保存退出。
6.安装 MySQL
cd /root
yum install -y mysql80-community-release-el7-3.noarch.rpm
cd /
yum list mysql*
yum install -y mysql-community-server.x86_64
如果出现GPG Keys相关问题,执行以下命令:
yum -y install mysql-community-server --nogpgcheck
接下来再启动MySQL:
systemctl start mysqld
查看MySQL的状态:
systemctl status mysqld
查看MySQL的密码,用于下一步修改密码前的登录操作:
grep 'password' /var/log/mysqld.log
修改MySQL的密码:
mysql -u root -p
alter user root@localhost identified by 'XXXXXX';
exit
注意:
"XXXXXX"为密码,按需修改。
重新登录:
mysql -u root -p
exit
给MySQL导入数据:
cd /root
unzip -d /root/community-init-sql-1.5 community-init-sql-1.5.zip
mysql -u root -p
create database community;
use community;
source /root/community-init-sql-1.5/init_schema.sql;
source /root/community-init-sql-1.5/init_data.sql;
source /root/community-init-sql-1.5/tables_mysql_innodb.sql;
show tables;
注意:
其中,”community-init-sql-1.5“按需修改。
修改header_url路径中含localhost的图片:
select id,username,header_url from user;
update user set header_url = 'http://images.nowcoder.com/head/180t.png' where header_url like '%localhost%';
exit
注意:其中,”180t“按需修改。
7.安装Redis
cd /
yum list redis*
yum install -y redis.x86_64
redis: systemctl start redis
systemctl status redis
exit
8.安装Kafka
cd /root
tar -xzvf kafka_2.12-2.3.0.tgz -C /opt
cd /opt/kafka_2.12-2.3.0
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
nohup bin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 &
测试是否成功启动Kafka:
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
9.安装ElasticSearch
cd /root
tar -xzvf elasticsearch-6.4.3.tar.gz -C /opt
unzip -d /opt/elasticsearch-6.4.3/plugins/ik elasticsearch-analysis-ik-6.4.3.zip
cd /opt/elasticsearch-6.4.3/config
vim elasticsearch.yml
输入i进入INSERT模式之后:
设置集群名字:
cluster.name: nowcoder
设置路径:
path.data: /tmp/elastic/data
path.logs: /tmp/elastic/logs
然后,按【Esc】→【:wq】保存退出。
修改jvm设置:
vim jvm.options
输入i进入INSERT模式之后:
设置:
-Xms256m
-Xmx512m
然后,按【Esc】→【:wq】保存退出。
启动Elasticsearch:
groupadd nowcoder
useradd nowcoder1 -p xxxxxx -g nowcoder
cd /opt
chown -R nowcoder1:nowcoder *
cd /tmp
chown -R nowcoder1:nowcoder *
su - nowcoder1
cd /opt/elasticsearch-6.4.3/
bin/elasticsearch -d
注意:"xxxxxx"为密码,按需修改。
切换为root用户,测试是否启动成功:
su -
curl -X GET "localhost:9200/_cat/health?v"
10.安装Wkhtmltopdf
cd /
yum list wkhtmltopdf*
yum install -y wkhtmltopdf.x86_64
安装虚拟gui程序,并使用命令行测试:
yum list *xvfb*
yum install -y xorg-x11-server-Xvfb.x86_64
cd /root
mkdir test
cd test
xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltoimage https://www.baidu.com 1.png
使用脚本测试:
cd /opt
vim wkhtmltoimage.sh
输入i进入INSERT模式之后:
添加以下代码:
xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltoimage "$@"
然后,按【Esc】→【:wq】保存退出。
chmod +x wkhtmltoimage.sh
cd /root/test
/opt/wkhtmltoimage.sh https://www.baidu.com 2.png
11.安装Tomcat
cd /root
tar -xzvf apache-tomcat-9.0.22.tar.gz -C /opt
cd /opt/apache-tomcat-9.0.22/bin
vim /etc/profile
输入i进入INSERT模式之后,在步骤4中Maven的path后面追加:
export PATH=$PATH:/opt/apache-tomcat-9.0.22/bin
然后,按【Esc】→【:wq】保存退出。
source /etc/profile
启动Tomcat:
startup.sh
12.安装Nginx
cd /
yum list nginx*
yum install -y nginx.x86_64
vim /etc/nginx/nginx.conf
输入i进入INSERT模式之后,将以下代码块使用"#"注释掉:
server {
listen 80;
listen [::]:80;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
然后,添加以下代码块:
upstream myserver {
server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
}
server {
listen 80;
server_name XXX.XXX.XXX.XXX;
location / {
proxy_pass http://myserver;
}
}
然后,按【Esc】→【:wq】保存退出。
注意:
"XXX.XXX.XXX.XXX"按需修改为服务器的公网IP地址。
启动Nginx:
systemctl start nginx
关闭Tomcat,将Tomcat目录下的webapps文件夹下的内容删除:
shutdown.sh
cd /opt/apache-tomcat-9.0.22/webapps
rm -rf *
13.项目部署
在Windows系统中将项目的pom.xml,application.properties,global.js,HomeController.java相关文件进行修改之后,将target文件夹进行删除,之后将项目工程文件进行压缩,通过Windows命令行窗口上传到linux服务器:
pscp community.zip root@x.x.x.x:/root
解压:
cd /root
unzip -d /root/community community.zip
打包:
cd community
mvn package -Dmaven.test.skip=true
注意:
第一次:
mvn clean package -Dmaven.test.skip=true
第二次可以这样写:
mvn package -Dmaven.test.skip=true
如果出现如下报错:
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
输入命令:
yum install java-devel
重新打包:
mvn package -Dmaven.test.skip=true
复制ROOT.war到Tomcat中,再启动Tomcat:
cd target/
mv ROOT.war /opt/apache-tomcat-9.0.22/webapps/
startup.sh
注意事项:
服务器重启之后,需要重新开启MySQL,Kafka,Redis,Elasticsearch,Nginx,再重新打包ROOT.war到Tomcat中,最后再启动Tomcat。