寫完的項目如何部署上線呢?
前言:前幾天的文章有寫到虛擬機(jī)的安裝那一塊,配置了nginx,mysql,和php
(一)域名解析及ssl證書的申請
以騰訊云為例:
-
進(jìn)入控制臺,域名管理,解析,會進(jìn)入到另外一個頁面
image.png - 添加記錄
image.png
主機(jī)記錄:abc
記錄類型:A
線路類型:默認(rèn)
記錄值:服務(wù)器公網(wǎng)ip
其他不用改,直接解析
注:(1)如果你在主機(jī)記錄第一個框中填入了www,代表你解析的是一級域名,一級域名只能綁一個項目,也就是你上線后你的域名需要www.xxxx.com,
(2)解析成二級域名,主機(jī)記錄框隨便寫,例如abc,那么訪問就變成了abc.xxxx.com - 申請ssl證書(可要可不要,沒有就是http連接訪問,申請后配置可轉(zhuǎn)換為https訪問)例如:沒有證書:
http://abc.xxxxx.com加了證書之后https://abc.xxxx.com
證書的申請步驟:
(1) 控制臺,云產(chǎn)品點(diǎn)進(jìn)ssl證書
image.png
(2)申請免費(fèi)證書
image.png
(3)等待審核,審核完后才能下載到本地
(二)xshell連接服務(wù)器,配置nginx
命令:ssh xxx@xx.xxx.xx.xxx //xxx:線上服務(wù)器用戶名可修改 xx.xxx.xx.xxx:服務(wù)器公網(wǎng)ip 然后會彈出一個框再輸入線上服務(wù)器的密碼
sudo su //管理員權(quán)限
cd /返回根目錄
cd etc/nginx/sites-available/ //進(jìn)入nginx下面
ls
cp default php //php是我隨意定義的
vi php
laravel項目將nginx做如下配置

image.png
詳細(xì)代碼如下:
server {
listen 80;
server_name abc.xxxx.com;
server_tokens off;
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
ssl on; //開啟證書
ssl_certificate /opt/Nginx/abc.crt; //證書位置
ssl_certificate_key /opt/Nginx/abc.key; //key位置
root /var/www/abc/public;
index index.html index.htm index.php index.nginx-debian.html;
server_name abc.xxxx.com;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
}
注意:thinkphp項目與其不同,路由那里需要重寫,默認(rèn)的是將
上面的這一段
location / {
try_files $uri $uri/ /index.php?$query_string;
}
改寫為
#根據(jù)框架需求,配置url重寫
location / {
try_files $uri $uri/ =404;
}
但是url模式不同需要重寫路由,先將將URL_MODEL設(shè)置為2,然后改寫為:
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
注:第二段location可以改寫為:
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
配置完成之后按esc+:鍵輸入wq保存并退出 linux命令vi vim //打開的方式不同 注意一下,q! //強(qiáng)制退出
命令:nginx -t //檢查配置有沒有錯誤
service nginx restart //重啟nginx服務(wù)
命令:cd /
cd var
ls
chmod -R 777 www //給權(quán)限
(三)配置線上數(shù)據(jù)庫
-
新建mysql連接
image.png
然后點(diǎn)擊ssh
image.png - 新建數(shù)據(jù)庫 名字與本地一致,然后導(dǎo)入sql文件,刷新就可以看見表了
(四)上傳項目
- 將項目打包成zip格式
- 打開FileZilla Client軟件,這個網(wǎng)上直接下載很方便的

image.png
- 將打包的項目拖到線上站點(diǎn)的/var/www/下面
- 將下載的ssl證書解壓打開有一個Nginx的文件夾,打開將文件的長名字改為短名字,與之前nginx證書位置設(shè)置的名字一樣,然后壓縮Nginx文件夾,并拖到/opt/文件夾下面,發(fā)現(xiàn)傳輸失敗
- 回到xshell給
chmod -R 777 opt權(quán)限,然后再傳輸 - linux安裝解壓縮 命令:
apt-get install unzip - cd 命令進(jìn)入www 解壓縮
unzip xxx;然后給權(quán)限chmod -R 777 xxx - cd命令進(jìn)入opt,解壓縮證書,然后刪除壓縮包
- cd 進(jìn)入項目文件 命令:
vi .env對env文件里面的本地數(shù)據(jù)改為線上的例如數(shù)據(jù)庫等等其他環(huán)境變量;
(五)測試訪問ok?。。?/h4>
(六)線上線下開啟自動同步:修改線下的代碼讓線上與之同步
點(diǎn)擊Configuration

image.png
做如下配置

image.png
勾選自動上傳

image.png
取消勾選

image.png





