- 打造Linux部署環(huán)境
- 簡介
- 所包含的安裝項目
- 1. 靜態(tài)網(wǎng)絡(luò)配置
- 2. 源碼方式安裝 MySQL
- 3. JDK 安裝
- 4. Node 安裝
- 5. Redis 安裝
- 6. Zookeeper 安裝
- 7. Nginx 安裝
- 8. Kafka 安裝&簡單使用
- 9. 私有Git倉庫之 Gogs安裝
- 百度云-Web 安裝
-
檢驗開機(jī)啟動是否成功
簡介
本篇教程,就地取材,拿來即用
通過學(xué)習(xí)本篇教程,相信你應(yīng)該對Linux操作系統(tǒng)有一定了解,并可以獨(dú)立部署項目
本篇采用CentOS 7x64-Minimal-1810
所涉及的軟件包:
本篇教程涉及到的命令:
cd 、tar、unzip、cp、touch、vim 簡單用法、find、
ps、yum、choun、password、useradd、配置service服務(wù)、
cmake、make、npm、yarn
chkconfig --add、systemctl enable...
所包含的安裝項目
[圖片上傳失敗...(image-131037-1563686730613)]
1. 靜態(tài)網(wǎng)絡(luò)配置
在CentOS-Minimal 安裝后,
ping www.baidu.comping 不通,則需要配置網(wǎng)絡(luò)
- 首先進(jìn)入
cd /etc/sysconfig/network-scripts/目錄找到ifcfg-enpxx文件,可以用ls命令來查看當(dāng)前目錄有哪些文件,該文件xx為隨機(jī),如果發(fā)現(xiàn)沒有該文件,則說明你電腦的網(wǎng)卡沒有被識別上,需要自行裝網(wǎng)卡驅(qū)動,一般都是能夠識別

- 使用 vi 命令 編輯改文件
使用說明
Linux是一個權(quán)限操作系統(tǒng),
CentOS默認(rèn)為root的最高權(quán)限,其它操作系統(tǒng)則是以用戶的方式去登陸并不是以root最高權(quán)限登錄,當(dāng)你進(jìn)行寫的操作時,請加上sudo以獲取最高權(quán)限

linux一共有7種文件類型,分別如下:
-:普通文件
d:目錄文件
l: 軟鏈接(類似Windows的快捷方式)
(下面四種是特殊文件)
b:塊設(shè)備文件(例如硬盤、光驅(qū)等)
p:管道文件
c:字符設(shè)備文件(例如貓等串口設(shè)備)
s:套接口文件/數(shù)據(jù)接口文件(例如啟動一個MySql服務(wù)器時會產(chǎn)生一個mysql.sock文件)
文件權(quán)限對應(yīng)關(guān)系:
| 權(quán)限 | 對應(yīng)數(shù)字 | 意義 |
|---|---|---|
| r | 4 | 可讀 |
| w | 2 | 可寫 |
| x | 1 | 可執(zhí)行 |
rwx:代表文件所有者(u表示)權(quán)限,這里是root,root對該文件擁有讀寫執(zhí)行權(quán)限。
r-x : 代表所屬組(g表示)的權(quán)限,這里所屬組擁有對該文件讀和執(zhí)行的權(quán)限。
r-x : 代表其他人(o表示)的權(quán)限,這里和上面權(quán)限一樣。
- 使用 vi 或 vim 配置網(wǎng)絡(luò)


配置說明:
請注意帶紅框的代碼!?。?
請將改為靜態(tài) BOOTPROTO=static
請將改為ONBOOT=yes
IPADDR= 根據(jù)網(wǎng)關(guān)設(shè)置你自己想要的靜態(tài)ip地址
GATEWAY= 網(wǎng)關(guān)
NETMASK= 子網(wǎng)掩碼
DNS1=114.114.114.114 DNS
vim 使用說明:
請使用最高權(quán)限編輯,在Linux下是嚴(yán)格區(qū)分大小寫的?。?!
鍵盤輸入:
i:代表編輯
w: 代表保存
q:代表退出
!: 代表取反
怎么退出 ? esc=>Shift+:=> wq
怎么不保存退出 ? esc=>Shift+:=> q!
更多詳情使用請查閱相關(guān)資料?。?!
- 重啟網(wǎng)絡(luò)

service network restart
注意:
如果你完成以上配置,ping 不通外網(wǎng),可以ping 通網(wǎng)關(guān),那么請你將DNS改為靜態(tài)

2. 源碼方式安裝 MySQL
- 下載MySQL源碼



- 將下載好的源碼上傳至服務(wù)器
安裝包上傳 /usr/local/src 目錄下

- 編譯并安裝
安裝編譯所需要的工具
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake make
說明:
yum install '軟件名字' (Ubuntu 一般是 sudo apt-get install '軟件名字')
參數(shù):
-y 默認(rèn)yes
進(jìn)入剛剛上傳文件的目錄
cd /usr/local/src
解壓命令:
tar
參數(shù):
-z, --gzip, --gunzip, --ungzip 使用gzip命令處理備份文件
-x, --extract, --get 從歸檔文件中解析文件
-v, --verbose 顯示命令的執(zhí)行過程
-f file, --file=file 指定備份文件,或設(shè)備,例如磁帶機(jī)/dev/st0
-c, --create 創(chuàng)建新的歸檔文件
其他解壓命令:
unzip
參數(shù):
-v 執(zhí)行是時顯示詳細(xì)的信息。
-C 壓縮文件中的文件名稱區(qū)分大小寫。
-P< 密碼 > 使用 zip 的密碼選項。
-d< 目錄 > 指定文件解壓縮后所要存儲的目錄。
移動命令:
mv



MySQL5.7在安裝時需要boost庫,在這里也需要安裝,只需解壓即可。但是要注意boost軟件的版本,不要選錯版本。與MySQL5.7相對應(yīng)的版本是boost_1_59_0。
- 創(chuàng)建運(yùn)行用戶
useradd -M -s /sbin/nologin mysql //創(chuàng)建用戶mysql,不創(chuàng)建家目錄,不允許登陸系統(tǒng)
- MySQL 配置
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ //指定mysql數(shù)據(jù)庫安裝目錄
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ //連接文件位置
-DSYSCONFDIR=/etc \ //指定配置文件目錄
-DSYSTEMD_PID_DIR=/usr/local/mysql \ //進(jìn)程文件目錄
-DDEFAULT_CHARSET=utf8 \ //指定默認(rèn)使用的字符集編碼
-DDEFAULT_COLLATION=utf8_general_ci \ //指定默認(rèn)使用的字符集校對規(guī)則
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ //存儲引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ //存儲引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ //存儲引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ //存儲引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \ //數(shù)據(jù)庫文件
-DWITH_BOOST=/usr/local/boost-1.59.0 \ //指定Boost庫的位置,mysql5.7必須添加該參數(shù)
-DWITH_SYSTEMD=1 //使系統(tǒng)支持MySQL數(shù)據(jù)庫
注意:如果在CMAKE的過程中有報錯(報錯多是環(huán)境包安裝錯誤),當(dāng)報錯解決后,需要把源碼目錄(/usr/local/mysql-5.7.26/)中的CMakeCache.txt文件刪除,然后再重新CMAKE,否則錯誤依舊

- 編譯并安裝
make過程非常耗時,如果是用虛擬機(jī)做實驗,建議調(diào)整配置,添加處理器數(shù)量,make速度會快一點
make && make install

- 安裝完成后的調(diào)整
chown -R mysql:mysql /usr/local/mysql/
-
修改配置文件
mysql 5.7 版本和以前的有所不同,如果配置文件不做修改,則服務(wù)啟動失敗

如果沒有安裝vim
請運(yùn)行此命令: yum -y install vim
vim /etc/my.cnf
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
chown mysql:mysql /etc/my.cnf //修改配置文件的權(quán)限
[圖片上傳失敗...(image-3ad981-1563686730614)]
- 設(shè)置環(huán)境變量
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile //使寫入生效
- 初始化數(shù)據(jù)庫
cd /usr/local/mysql/
bin/mysqld \
--initialize-insecure \ //生成初始化密碼(5.7版本才有),實際會生成空密碼
--user=mysql \ //指定管理用戶
--basedir=/usr/local/mysql \ //指定工作目錄
--datadir=/usr/local/mysql/data //指定數(shù)據(jù)文件目錄
如果執(zhí)行上面命令報錯!請將安裝好的MySQL刪除并重新安裝即可
# 刪除
rm -rf /usr/local/mysql
# 重新安裝
cd /usr/local/mysql-5.7.26
make install
# 再次運(yùn)行上面的命令

- 添加系統(tǒng)服務(wù)
cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload //刷新識別mysqld.service服務(wù)
systemctl enable mysqld //加入系統(tǒng)自啟動
systemctl start mysqld //啟動服務(wù)
netstat -anpt | grep 3306
如果 netstat 命令沒裝,請執(zhí)行下面這句話
yum -y install net-tools
ps -ef | grep mysql 該命令也能查詢出來

- 修改數(shù)據(jù)庫密碼
mysqladmin -u root -p password "123456" //-u 指定登陸用戶為root ,密碼為123456

- 使用新密碼登陸系統(tǒng)
mysql -u root -p
show databases; //查看數(shù)據(jù)庫信息
- 授權(quán)遠(yuǎn)程登陸數(shù)據(jù)庫
使用grant提升root權(quán)限,在mysql數(shù)據(jù)庫中進(jìn)行操作
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
//第一個“*”代表所有數(shù)據(jù)庫,第二“*”代表所有表,賦予root權(quán)限 “%”代表所有服務(wù)器終端,可設(shè)為IP地址 密碼為“123456”
[圖片上傳失敗...(image-2751ea-1563686730614)]
- 關(guān)閉防火墻
systemctl disable firewalld.service
systemctl stop firewalld.service
setenforce 0
- 使用navicat終端軟件遠(yuǎn)程登陸(windows端)

3. JDK 安裝
將JDK文件上傳至
/usr/local/src解壓文件
# 進(jìn)入目錄
cd /usr/local/src
# 解壓文件
tar -zxvf ./jdk-8u211-linux-x64.tar.gz -C ./..
- 配置profile文件
vim /etc/profile
# 在其末尾加上 set JDK
export JAVA_HOME=/usr/local/jdk1.8.0_211
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
# 使配置文件生效
source /etc/profile
# 查看JDK 版本
java -version
注意: 請注意JDK安裝目錄?。?!
4. Node 安裝
將Node安裝包文件上傳至
/usr/local/src解壓文件&修改文件夾名字
# 進(jìn)入目錄
cd /usr/local/src
# 解壓文件
tar -zxvf ./node-v12.6.0-linux-x64.tar.gz -C ./..
# 退回上一級目錄
cd ..
# 修改文件名
mv ./node-v12.6.0-linux-x64/ ./node-v12.6.0
- 配置Node
ln -s /usr/local/node-v12.6.0/bin/node /usr/bin/node
ln -s /usr/local/node-v12.6.0/bin/npm /usr/bin/npm
# 檢查 Node是否安裝成功
node -v
npm -v
# 設(shè)置淘寶鏡像
npm config set registry https://registry.npm.taobao.org
# 查看鏡像是否設(shè)置成功
npm config get registry
# 安裝 docsify 該工具是一個優(yōu)秀編寫文檔的工具
npm i docsify-cli -g
5. Redis 安裝
將Redis安裝包文件上傳至/usr/local/src
解壓文件&修改文件夾名字
# 安裝編譯依賴
yum -y install gcc
# 進(jìn)入目錄
cd /usr/local/src
# 解壓文件
tar -zxvf ./redis-5.0.4.tar.gz -C ./..
# 退回上一級目錄
cd ..
# 進(jìn)入 redis源碼包
cd ./redis-5.0.4/
# 編譯 make 并 install
make install PREFIX=/usr/local/redis
配置Redis環(huán)境變量/etc/profile文件
# 配置Redis環(huán)境變量
echo "export PATH=$PATH:/usr/local/redis/bin" >>/etc/profile
# 生效配置
source /etc/profile
# 啟動redis
redis-server
設(shè)置 Redis 開機(jī)啟動
# 創(chuàng)建redis服務(wù)
vim /usr/lib/systemd/system/redis.service
# 增加一下內(nèi)容 注意redis安裝目錄和配置文件目錄
[Unit]
Description=The redis-server Process Manager
After=syslog.target network.target
[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/redis/bin/redis-server
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
[Install]
WantedBy=multi-user.target
# 將 redis服務(wù)添加到開啟啟動項
sudo systemctl enable redis.service
6. Zookeeper 安裝
將Zookeeper安裝包文件上傳至/usr/local/src
解壓文件&修改文件夾名字
# 進(jìn)入目錄
cd /usr/local/src
# 解壓文件
tar -zxvf ./apache-zookeeper-3.5.5-bin.tar.gz -C ./..
# 退回上一級目錄
cd ..
# 修改文件夾名字
mv ./apache-zookeeper-3.5.5-bin/ ./zookeeper-3.5.5/
# 進(jìn)入zookeeper安裝目錄
cd ./zookeeper-3.5.5/
# 修改 /usr/local/zookeeper-3.5.5/conf/zoo_sample.cfg =>zoo.cfg
mv ./zoo_sample.cfg ./zoo.cfg
# 創(chuàng)建 data和log目錄
mkdir -p ./data
mkdir -p ./log
# 修改 zoo.cfg 配置
dataDir=/usr/local/zookeeper-3.5.5/data
dataLogDir=/usr/local/zookeeper-3.5.5/logs
配置Zookeeper環(huán)境變量/etc/profile文件
# 進(jìn)入 bin 目錄
cd ./bin/
# 配置環(huán)境變量 set Zookeeper
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.5.5/
export PATH=$ZOOKEEPER_HOME/bin:$PATH
# 生效文件
source /etc/profile
# 啟動服務(wù)
zkServer.sh start
# 查看服務(wù)
ps -ef | grep zookeeper
設(shè)置 zookeeper開機(jī)啟動
# 在/etc/rc.d/init.d目錄新建zookeeper文件
touch /etc/init.d/zookeeper
# 設(shè)置權(quán)限
chmod +x /etc/init.d/zookeeper
# 編輯zookeeper
#!/bin/bash
#chkconfig: 2345 10 90
#description: service zookeeper
export JAVA_HOME=/usr/local/jdk1.8.0_211
export ZOO_LOG_DIR=/usr/local/zookeeper-3.5.5/logs
ZOOKEEPER_HOME=/usr/local/zookeeper-3.5.5/
su root ${ZOOKEEPER_HOME}/bin/zkServer.sh "$1"
# 設(shè)置開機(jī)啟動
chkconfig --add zookeeper
7. Nginx 安裝
# 添加Nginx存儲庫
sudo yum -y install epel-release
# 安裝Nginx
sudo yum -y install nginx
# 啟動Nginx
sudo systemctl start nginx
# 如果您正在運(yùn)行防火墻,請運(yùn)行以下命令以允許HTTP和HTTPS通信:(如果防火墻關(guān)了,可直接跳過)
# 允許http通信
sudo firewall-cmd --permanent --zone=public --add-service=http
# 允許https通信
sudo firewall-cmd --permanent --zone=public --add-service=https
# 重啟防火墻
sudo firewall-cmd --reload
# 測試
瀏覽器訪問 ip:80端口 有歡迎提示說明安裝成功?。。?# 設(shè)置Nginx 開機(jī)啟動
sudo systemctl enable nginx
# 使用find命令查詢nginx安裝目錄
find / -name "*nginx*"
- 簡單部署
# 創(chuàng)建目錄
mkdir -p /usr/local/src/project
# 進(jìn)入目錄
cd /usr/local/src/project
# git clone 克隆項目
git clone https://github.com/Big-Chinese-Cabbage/interest.git
# 本次只部署web前端頁面,有興趣可以研究這位GitHub的項目
cd ./interest/interest-web/
# 安裝啟動依賴
yarn install
# 啟動項目
npm run serve
# 打包命令 得到 dist文件
npm run build
###### 下面開始 Nginx 部署
# 使用 find 查找 nginx安裝目錄
find / -name "*nginx*"
# 我們先來查看一下nginx啟動服務(wù)文件 /usr/lib/systemd/system/nginx.service
# 重點關(guān)注 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf 這行配置
# 進(jìn)入/etc/nginx/nginx.conf配置 重點關(guān)注最后一行
# 進(jìn)入nginx 安裝目錄
cd /etc/nginx
# 將剛剛打包好的dist文件拷貝到 當(dāng)前目錄下modules文件夾下
cp -r /usr/local/src/project/interest/interest-web/dist/ ./modules/
cp命令:進(jìn)行路徑拷貝時請加 -r 參數(shù)
# 編輯/conf.d/default.conf 文件
vim ./conf.d/default.conf
# 重啟nginx 服務(wù)
service nginx restart
# 測試
ip:端口 訪問測試
# 下面是具體的配置圖


[圖片上傳失敗...(image-77f83b-1563686730614)]
- 部署效果圖

- yarn 安裝
1.在 CentOS, Fedora 和 RHEL 操作系統(tǒng)上,你可以通過我們的 RPM 包倉庫來安裝 Yarn。
sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
2.配置 Node 源倉庫
curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
# 安裝 yarn
sudo yum install yarn
# 查看版本
yarn --version

8. Kafka 安裝&簡單使用
將kafak安裝包文件上傳至/usr/local/src
解壓文件&修改文件夾名字
# 進(jìn)入目錄
cd /usr/local/src/
# 解壓
tar -zxvf ./kafka_2.12-2.3.0.tgz -C ./..
# 返回上一級目錄
cd ..
# 進(jìn)入kafka安裝目錄
cd ./kafka_2.12-2.3.0/
# 創(chuàng)建 logs文件夾
mkdir -p ./logs
# 修改配置文件
vim config/server.properties
# kafka是依賴于zookeeper 如果沒配置Linux服務(wù)請手動進(jìn)入安裝目錄啟動
service zookeeper status 查看啟動狀態(tài)
service zookeeper start
# 啟動 kafka
bin/kafka-server-start.sh config/server.properties &
# 如果報以下錯誤 請從bin目錄上一級運(yùn)行,否則找不到config下的配置
java.nio.file.NoSuchFileException: config/server.properties


- 啟動兩個客戶端測試通訊是否正常
# 創(chuàng)建 TOPIC:使用 kafka-topics.sh 創(chuàng)建單分區(qū)單副本的 topic test:
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
# 查看 topic 列表:
bin/kafka-topics.sh --list --zookeeper localhost:2181
# 啟動消息生產(chǎn)者服務(wù)(需要保證kafka服務(wù)運(yùn)行環(huán)境所在主機(jī)運(yùn)行9092端口進(jìn)行連接訪問,否則服務(wù)啟動)
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
# 啟動kafka服務(wù)消費(fèi)者客戶端進(jìn)行監(jiān)聽消息的接收
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
注意以上操作:請注意目錄?。。?

[圖片上傳失敗...(image-7bdc16-1563686730614)]

9. 私有Git倉庫之 Gogs安裝
將Gogs安裝包文件上傳至/usr/local/src
解壓文件&修改文件夾名字
# 創(chuàng)建 git 用戶
sudo adduser git
# 切換到 git 用戶
su git
# 進(jìn)入目錄
cd /usr/local/src
# 解壓文件
tar -zxvf ./linux_amd64.tar.gz -C /home/git/
# 切換到 /home/git/gogs/scripts 目錄 執(zhí)行SQL腳本
mysql -u root -p
# 執(zhí)行SQL腳本
source mysql.sql
# 查看gogs數(shù)據(jù)庫
show databases;
# 進(jìn)入gogs目錄
cd /home/git/gogs/
# 進(jìn)行首次配置
./gogs web
設(shè)置 Gogs開機(jī)啟動
# 切換到 root 賬戶
su root
# 將 gogs 文件復(fù)制到 /etc/init.d 目錄下
sudo cp /home/git/gogs/scripts/init/centos/gogs /etc/init.d/
# 增加執(zhí)行權(quán)限
sudo chmod +x /etc/init.d/gogs
# 復(fù)制 service
cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/
# 開啟 gogs 服務(wù)
service gogs start
# 設(shè)置開機(jī)啟動
systemctl enable gogs.service
添加git用戶出現(xiàn)不在 sudoers 文件中問題
百度云-Web 安裝
# 一鍵部署腳本
wget -N --no-check-certificate "https://raw.githubusercontent.com/user1121114685/baidupcsweb/master/BDW.sh" && chmod +x BDW.sh && bash BDW.sh
# 按照提交既可以部署了
# 建議使用BDUSS來登錄,獲取BDUSS登錄方式可以百度一下
- 效果圖
[圖片上傳失敗...(image-74d176-1563686730614)]

檢驗開機(jī)啟動是否成功
ps -ef | grep 服務(wù)名