最新版的 nginx 必須與 2.0 版以上的 uwsgi 配合, 否則無法啟動.

這是發生在編號 103 HP 伺服器上的問題, 透過查驗, 才知道, 其實在各種協同合作模式中, 必須了解細節才能解決問題.

2015.11.03 情況: IPV4 與 IPV6 都可以 SSH, 因此從遠端進入, 開始尋找為何 nginx 與 uwsgi 無法正常結合運作.

首先新增管理者用戶:

1
2
sudo adduser username
sudo visudo


將 username 納為可以執行 sudo 的帳號

在 %sudo 行下增加一行, 然後按下 Ctrl+O, 再按 Enter

經過 uwsgi 版次查驗, 發現透過 sudo apt-get install uwsgi 所安裝的版本為 1.9.17.1 版, 必須設法轉為 2.0 以上版本

版本查驗:

1
uwsgi --version


結果為 1.9.17.1-debian, 必須改為 2.0.11.2, 否則無法與 nginx 結合

移除利用 sudo apt-get install uwsgi 安裝的 1.9.17.1 版的 uswgi

1
sudo apt-get remove uwsgi


準備利用 pip3 安裝 uwsgi 其中必須執行 c 程式編譯, 因此必須安裝 build-essential 與 python3-dev

1
sudo apt-get install build-essential python3-dev


接著利用 pip3 安裝 uwsgi

1
sudo pip3 install uwsgi


利用 which uwsgi 找到 2.0.11.2 版的 uwsgi 位於 /usr/local/bin/uwsgi

因為 /etc/alternatives/uwsgi 指向 /usr/bin/uwsgi-core 為舊版, 因此必須重新設定 symbolic link, 讓 uwsgi 指令指到 2.0 版本.

1
2
3
cd /etc/alternatives
sudo rm uwsgi (刪除舊的 symbolic link)
sudo ln -s /usr/local/bin/uwsgi uwsgi (將新的 /usr/local/bin/uwsgi 對應到 uwsgi)


完成後執行:

1
sudo service uwsgi restart 


就可順利啟動 nginx 中所對應設定的 CMSimply


Comments

comments powered by Disqus