服務器代碼部署篇
阿新 • • 發佈:2018-07-31
-a store profile root 關於 安裝 reset 表示 ide
Linux下, 遠程登錄腳本配置, git 安裝配置, node 安裝, mysql 安裝配置,nginx 安裝配置,從0到1
這篇文章只講講部署吧. 寫代碼沒什麽好說的. 網上有直播寫代碼的..
服務器 aliyun
購買服務器, 服務器備案, 拿到ip, 用戶,密碼
域名
購買域名,然後去備案, 拿到備案號, 把域名解析到對應的IP 上
環境
Telnet 腳本配置(Mac & Linux)
#!/usr/bin/expect -f set ip 8.8.8.8 #服務器IP地址 set password 123456 #登錄密碼 set timeout 10 #超時時間 set user root #登錄帳號 spawn ssh $user@$ip expect { "*yes/no" { send "yes"; exp_continue} "*password:" { send "$password" } } interact
登錄提示
@@@@@@@@@@@
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
當服務器相關數據有變動的時候,ssh 無法登錄,只要清除本地的~/.ssh/known_hsots 文件相關的刪除即可
Git
$ yum -y install git //安裝git
$ git –-version //驗證
關於git clone 權限的問題
$ cd ~/.ssh #如果沒有密鑰則不會有此文件夾,有則備份刪除 #生成密鑰: $ ssh-keygen -t rsa -C "[email protected]" # 按3個回車,密碼為空。 #最後得到了兩個文件:id_rsa和id_rsa.pub #添加密鑰到ssh: $ ssh-add ~/.ssh/id_rsa (需要之前輸入密碼.) # id_rsa.pub 添加到gitlib or github
Git忽略規則和.gitignore規則不生效的解決辦法
git rm -r --cached .
關於git一些常用的命令
#保存密碼到本地 $ git config credential.helper store #創建遠程分支 $ git checkout -b dev #新建本地分支 $ git push origin dev:dev #push到遠程分支 #刪除分支 $ git branch -D dev #刪除本地分支 $ git push origin :dev #刪除遠程分支 ,push一個空到分支到遠程分支上 $ git push origin --delete dev #刪除遠程分支 #切換分支 $ git branch -a #查看分支列表,看不到最新分支,執行git pull $ git checkout -b dev origin/dev #把遠程的分支搞到本地並切換 $ git checkout dev # 切換到dev #放棄清理本地更改 $ git checkout . && git clean -xdf #緩存區操作 $ git add <file> | git add -A #加入到緩存區 $ git reset HEAD <file> #緩存區退回工作區,沒有commit之前,已經git add $ git checkout -- <file> | git checkout . #丟棄工作區修改,沒有git add #版本退回 $ git reflog #查看commit 版本 $ git reset --soft <版本號> #切回版本,本地代碼不會變,只是改變版本號 $ git reset --hard <版本號> #切回版本,本地會改變,版本號也會變,慎用 $ git reset --soft HEAD~1 #直接切回上一個版本 $ git rm --cached <文件名> | git clean -xdf # 丟棄本地或者其他 $ git push origin <分支> --force #加上--force 覆蓋遠程分支,因為退回版本之後本地版本比線上版本低,無法提交
Node
$ wget https://npm.taobao.org/mirrors/node/v8.7.0/node-v8.7.0-linux-x64.tar.gz //下載git包
$ tar -zxvf node-v8.7.0-linux-x64.tar.gz // 解壓
$ vi /ect/profile //編輯配置
#最後一行加入,路徑為解壓相對路徑
export PATH=/node-v8.7.0-linux-x64/bin:$PATH
$ source /etc/profile 應用
$ node -v //驗證
#npm 註冊淘寶鏡像
npm config set registry https://registry.npm.taobao.org --global
npm config set disturl https://npm.taobao.org/dist --global
#yarn
yarn config set registry https://registry.npm.taobao.org --global
yarn config set disturl https://npm.taobao.org/dist --global
Mysql
#1 下載mysql的repo源
$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
#2 安裝mysql-community-release-el7-5.noarch.rpm包
$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
#假如報錯的話, 先查詢下是不是已經安裝過了
$ rpm -qa | grep mysql
#有的話幹掉他 --nodeps 強制卸載
$ rpm -e xxx (--nodeps)
#3 安裝這個包後,會獲得兩個mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo
#4 安裝mysql
$ sudo yum install mysql-server
$ service mysql start #啟動
#根據步驟安裝就可以了,不過安裝完成後,沒有密碼,需要重置密碼。
#查看版本
$mysqld -V
#5 重置密碼
#重置密碼前,首先要登錄
$ mysql -u root
mysql > use mysql;
mysql > update user set password=password(‘123456‘) where user=‘root‘;
mysql > flush privileges; exit;
#6 遠程登錄
需要更改權限才能實現遠程連接MYSQL數據庫
$ mysql -h localhost -uroot -p
mysql> use mysql; #此DB存放MySQL的各種配置信息
mysql> select host,user from user; #查看用戶的權限情況
mysql> select host, user, password from user;
mysql> Grant all privileges on *.* to ‘root‘@‘%‘ identified by ‘123456‘ with grant option;
#(%表示是所有的外部機器,如果指定某一臺機,就將%改為相應的機器名;‘root’則是指要使用的用戶名,‘123456‘為密碼)
mysql> flush privileges; #運行此句才生效,或者重啟MySQL
最後一步, 在服務器防火墻配置加入規則 開放3306 端口.
Nginx
$ yum -y install nginx #安裝nginx
$ nginx -v #查看版本
$ sudo nginx #開啟服務
nginx.pid 失敗問題
執行
sudo nginx -c /usr/local/etc/nginx/nginx.conf
sudo nginx -s reload #重啟
sudo nginx -t #測試配置文件
nginx 轉發node 配置
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name chuchur.com www.chuchur.com;
location / {
proxy_pass http://127.0.0.1:7001;
proxy_redirect off;
proxy_set_header $Host sync;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_send_timeout 300;
proxy_read_timeout 300;
}
}
nginx 如何開啟https 和http2 (傳送門)
ningx css 字體的支持,需要修改mime.types
加入以下代碼
application/octet-stream eot;
application/font-sfnt ttf;
application/font-otf otf;
application/font-woff2 woff2;
application/font-woff woff;
如果是跨域的話,還需要做跨域配置
location ~* .(eot|ttf|woff|svg|otf)$ {
add_header Access-Control-Allow-Origin *;
}
[完]
服務器代碼部署篇