阿里雲安裝Nginx+vue項目部署
nginx安裝包下載
http://nginx.org/en/download.html
nginx安裝
首先先安裝PCRE pcre-devel 和Zlib,因為配置nginx的時候會需要這兩個東西
PCRE(Perl Compatible Regular Expressions) 是一個Perl庫,包括 perl 兼容的正則表達式庫。nginx 的 http 模塊使用 pcre 來解析正則表達式,所以需要在 linux 上安裝 pcre 庫,pcre-devel 是使用 pcre 開發的一個二次開發庫。nginx也需要此庫。命令:
yum install -y pcre pcre-devel
zlib 庫提供了很多種壓縮和解壓縮的方式, nginx 使用 zlib 對 http 包的內容進行 gzip ,所以需要在 Centos 上安裝 zlib 庫。
yum install -y zlib zlib-devel
雖然我安裝的時候安裝着兩個兒就可以了,但是如果有需要,根據error提示可能還需要GCC和OpenSSL
yum install gcc-c++
yum install -y openssl openssl-devel
好,現在我們開始安裝nginx,1.14.0這個是目前最新版本
wget -c https://nginx.org/download/nginx-1.14.0.tar.gz
解壓並進入nginx目錄
tar -zxvf nginx-1.14.0.tar.gz
cd nginx-1.14.0
使用nginx的默認配置
./configure
編譯安裝
make
make install
查找安裝路徑:
whereis nginx
進入sbin目錄,可以看到有一個可執行文件nginx,直接./執行就OK了。
運行起來之后訪問服務器ip,可以看到nginx的歡迎頁面。
如果訪問不了,請在阿里雲服務器實例管理的安全組設置一下。
配置開機自啟動。
即在rc.local增加啟動代碼就可以了。
vi /etc/rc.local
增加一行
/usr/local/nginx/sbin/nginx
設置執行權限:
chmod 755 rc.local
按i進入編輯模式,按:wq保存退出
這樣就完成了
重啟服務
/usr/local/nginx/sbin/nginx -s reopen
查看服務
ps -ef | grep nginx
停止服務
kill 7332
查看配置
vi /usr/local/nginx/conf/nginx.conf
重新載入配置文件
在修改了配置文件后需要重新載入配置文件。
/usr/local/nginx/sbin/nginx -s reload
打包 Vue 項目並上傳至服務器
在 npm run build 打包項目之前,需要修改一下 config 目錄中的 index.js 文件,否則靜態文件可能會加載失敗。打開 config/index.js,定位到 build 對象下的 assetsPublicPath 位置,路徑修改為“./”:
build: {
// ...
assetsPublicPath: './',
}
然后執行 npm run build 打包項目。
打包成功后,會在項目目錄中多一個 dist 文件夾,里邊有一個 static 目錄(存放着靜態文件)和 index.html ,這就是打包好的項目,然后把這個文件夾上傳到服務器上就可以了。
打開 Xftp,在本機上找到 dist 這個目錄,傳輸到服務器上,我在服務器的 var 目錄下新建了一個 www 目錄,用來存放我的項目:
傳輸完成后,打開 XShell,修改一下 nginx 的配置文件,運行:
vim /usr/local/nginx/conf/nginx.conf
在 server 下的 location 中配置站點根目錄:
修改了配置文件,需要重新載入配置文件,執行:
/usr/local/nginx/sbin/nginx -s reload
訪問服務器 ip 地址,就可以看到自己的項目了。
常用操作
配置 nginx 常用命令:
查看配置:vi /usr/local/nginx/conf/nginx.conf
編輯配置:vim /usr/local/nginx/conf/nginx.conf
重啟配置:/usr/local/nginx/sbin/nginx -s reload
重啟服務:/usr/local/nginx/sbin/nginx -s reopen
可能遇到的問題
問題一
nginx 報異常"/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
解決辦法:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
還有一種可能就是nginx.conf的nginx.pid被注釋了,將下圖中pid前的#去掉,保存退出再次啟動nginx
問題二
訪問圖片鏈接報 403 Forbidden 錯誤。
解決辦法:
查看Nginx日志,顯示 failed (13: Permission denied), 沒有權限。
將nginx.config的user改為和啟動用戶一致。
vi /usr/local/nginx/conf/nginx.conf
如果nginx沒有web目錄的操作權限,也會出現403錯誤。
解決辦法:
給訪問文件夾設置讀寫權限,重啟Nginx即可。
chmod -R 777 /baiduMap
chmod -R 777 / baiduMap /map/