云服务器上部署仿牛客网项目
云服務器上部署仿牛客網(wǎng)項目
- 安裝JRE
- 安裝Maven
- 安裝MySQL
- 給mysql導入數(shù)據(jù)
- 安裝Redis
- 安裝kafka
- 安裝ElasticSearch
- Wkhtmltopdf
- 安裝tomcat
- 安裝nginx
- 部署代碼
內(nèi)存最好有4g,才能跑起來。Nginx起到反向代理的作用,正向代理是代理瀏覽器,反向代理是代理服務器。Tomcat是用Java開發(fā)的,因此安裝Tomcat之前要安裝JRE;希望在服務器上打包程序,因此安裝Maven,如果有環(huán)境差異,在windows打包再傳過去可能會有問題,因此最好在服務器上打包。真實的生產(chǎn)環(huán)境下,一個軟件可以部署多個實例,例如Tomcat,MySQL,Redis等。學習中,就部署到一個服務器上。訪問Linux虛擬機可以用Putty。
命令行傳文件:
pscp 文件名 root@ip地址:/test用Bitvise或者Xftp等軟件傳也行。
下載unzip,先cd到根目錄,在用yum搜
安裝JRE
注意項目需要JDK12才能運行。
yum list java* yum install -y安裝Maven
去官網(wǎng)下載3.6.3版本的安裝包,下載后安裝到/opt目錄下
wget -i -c 鏈接 tar -xzvf apache-maven-3.6.3-bin.tar.gz -C /opt #配置環(huán)境變量到/etc/profile vim /etc/profile #在后面追加,保存退出 export PATH=$PATH:/opt/apache-maven-3.6.3 #刷新 source /etc/profile #打印PATH echo $PATH #查看版本 mvn -version #修改源,進入conf文件夾 vim settings.xml在mirrors中加入:
<mirror><id>nexus-aliyun</id><mirrorOf>central</mirrorOf><name>Nexus aliyun</name><url>https://maven.aliyun.com/repository/public</url> </mirror>安裝MySQL
這里已經(jīng)裝過了,要安裝可以參考另外一篇博客。也可以先去官網(wǎng)下載yum對應的庫文件,再用yum安裝庫文件,就能用yum下載最新的MySQL,安裝mysql-community-server.x86_64。
yum install -y 庫文件名啟動mysql:
systemctl start mysqld查看Mysql版本:
mysql -V查看生成的臨時密碼:
grep 'password' /var/log/mysqld.log登錄之后,修改密碼:
alter user root@localhost identified by '新密碼';給mysql導入數(shù)據(jù)
unzip -d /test/sql init-sql.zip登錄mysql,執(zhí)行sql文件
create database community; use community; #導入文件 source /test/sql/init_schema.sql; source /test/sql/init_data.sql; source /test/sql/tables_mysql_innodb.sql; show tables;下面需要把header_url中的localhost的url改成網(wǎng)絡能訪問到的。
select id,username,header_url from user; update user set header_url = 'http://images.nowcoder.com/head/492t.png' where header_url like '%localhost%';安裝Redis
cd / yum list redis* yum install -y redis.x86_64 systemctl start redis systemctl status redis測試redis
redis-cli keys * exit安裝kafka
tar -xzvf kafka_2.12-2.3.0.tgz -C /opt #進入到config文件夾下 vim zookeeper.propertiesvim server.properties基本上只要保存路徑符合linux路徑規(guī)范就行。
先進入kafka安裝路徑,不要進入bin目錄。因為是服務器,需要用后臺方式啟動。
啟動zookeeper
啟動kafka
nohup bin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 &測試是否成功啟動kafka
bin/kafka-topics.sh --list --bootstrap-server localhost:9092如果顯示報錯:
關閉tomcat,然后執(zhí)行上面命令重啟,并測試。
安裝ElasticSearch
tar -xzvf elasticsearch-6.8.23.tar.gz -C /opt unzip -d /opt/elasticsearch-6.8.23/plugins/ik elasticsearch-analysis-ik-6.8.23.zip #進入config目錄 vim elasticsearch.yml設置集群名字,數(shù)據(jù)和日志存放位置:
修改jvm設置,可以根據(jù)內(nèi)存大小設置占用空間
ElasticSearch不允許root用戶啟動,需要創(chuàng)建一個用戶,并用這個用戶啟動
Wkhtmltopdf
cd / yum list wkhtmlyopdf* yum install -y wkhtmltopdf.x86_64需要gui支持,安裝虛擬gui程序
yum install -y xorg-x11-server-Xvfb.x86_64 #測試 xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltoimage https://www.baidu.com 1.png每次都這樣寫命令很麻煩,因此可以包裝一下
cd /opt vim wkhtmltoimage.sh #添加 xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltoimage "$@" chmod +x wkhtmltoimage.sh cd /test /opt/wkhtmltoimage.sh https://www.baidu.com 2.png安裝tomcat
tar -xzvf apache-tomcat-9.0.64.tar.gz -C /opt vim /etc/profile #在后面追加 export PATH=$PATH:/opt/apache-tomcat-9.0.64/bin source /etc/profile echo $PATH啟動tomcat
startup.sh安裝nginx
yum list nginx* yum install -y nginx.x86_64 vim /etc/nginx/nginx.conf把這一段注釋掉
在這段后面加上:
啟動nginx
systemctl start nginx部署代碼
由于沒有處理根路徑,因此訪問/時要等價與訪問/index,一個方法是訪問/時重定向到/index,另外一個方法
可以把webapps中的都刪去,再加上自己的項目。
對代碼進行調(diào)整:
1、在application.properties中把/community改成空。
2、在global.js中把/community改成空
3、在HomeController中加上
4、在pom.xml中修改打包方式和打包名字
5、通過設置,選定使用哪個配置文件,并且修改相應項
修改成服務器ip
6、tomcat本身有main函數(shù),一個Java程序不可能有兩個main函數(shù),因此重寫方法
重建CommunityServletInitializer類,繼承SpringBootServletInitializer,重寫方法:
tomcat從這個類訪問。
使用maven的clean把target刪除,并傳送整個項目文件到云服務器。
如果出現(xiàn)報錯:[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
再復制到tomcat中:
mv ROOT.war /opt/apache-tomcat-9.0.64/webapps/linux區(qū)分大小寫,先登錄MySQL數(shù)據(jù)庫
show variables like '%case%'; vim /etc/my.cnf #加上 lower_case_table_names=1 #重啟 service mysqld restart這個對于mysql8不行。手動修改表名為大寫。
總結(jié)
以上是生活随笔為你收集整理的云服务器上部署仿牛客网项目的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文字格斗游戏2.0(随机数值)
- 下一篇: S3存储桶策略(S3 Bucket Po