昨晚開了個騰訊云,做一個店群的在線商品庫慧妄。這是我第一次使用云服務(wù)器顷牌,第一次接觸centos,第一次配置服務(wù)器環(huán)境塞淹】呃叮花了六七個小時才搞定,遇到很多坑饱普,很多問題非常小白运挫,還是很有趣的經(jīng)歷状共,特此記錄。
用的系統(tǒng)是CentOS 7.4 64位谁帕。
1峡继、Python3.65。
準(zhǔn)備編譯環(huán)境匈挖。
yum groupinstall 'Development Tools'
yum install zlib-devel bzip2-devel ?openssl-devel ncurses-devel
yum install sqlite-devel
sqlite-devel 第一次沒有先安裝碾牌,是個大坑。nginx+uwsgi設(shè)置好以后关划,運行報錯小染,找不到模塊sqlite3。重頭再來贮折。
下載Python3.6.5
wget --no-check-certificate https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
創(chuàng)建目錄裤翩,解壓,編譯
sudo mkdir /usr/local/python3
tar -zxvf Python-3.6.5.tgz
cd Python-3.6.5/
./configure --prefix=/usr/local/python3
make
make install
Linux里原來的python命令還是指向Python2调榄,這里創(chuàng)建python3的軟鏈接指向Python3踊赠,這樣Python2和Python3就都可以用了。
也保留pip指向Pip2每庆,創(chuàng)建pip3的軟鏈接指向Pip3
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
pip3 install --upgrade pip?
2筐带、uwsgi
pip3?uwsgi
uwsgi 這里花了最多的時間,其實是一個小問題缤灵,目錄設(shè)置的問題伦籍。但是因為第一次配置,對于目錄設(shè)置連猜帶蒙腮出,設(shè)置錯了導(dǎo)致運行報錯帖鸦,無法導(dǎo)入APP模塊。
flask項目文件放置在 /root/www/app/ 下面胚嘲。
在此目錄下創(chuàng)建uwsgi.ini
cd www/app/
vim uwsgi.ini
按i進入編輯模式作儿。
配置文件如下:
[uwsgi]
socket = 127.0.0.1:8001? ? ?
chdir = /root/www/?
wsgi-file = run.py? ? ? ?
callable = app? ? ? ? ? ? ??
processes = 1? ? ? ? ? ? ?
threads = 2??
master = true? ? ? ? ? ? ? ?
stats = 127.0.0.1:9191
按esc, :wq退出。
chdir 要寫上一級目錄馋劈,我第一次設(shè)置為/root/www/app 導(dǎo)致無法運行攻锰,from app import app ,找不到app模塊。
此目錄下
uwsgi uwsgi.ini
以ini配置啟動服務(wù)妓雾。
如果配置有更改娶吞,需要重啟服務(wù)——
查看進程:ps -ef|grep uwsgi
殺死進程:killall -9 uwsgi
重新運行 uwsgi uwsgi.ini
3、nginx
yum install?nginx
編輯配置文件君珠。
vim /etc/nginx/nginx.conf
就簡單配置了一下寝志。如下:
server {
? ? ? ? listen? ? ? ?80 default_server;
? ? ? ? listen? ? ? ?[::]:80 default_server;
? ? ? ? server_name? 你的云服務(wù)器公網(wǎng)IP;
? ? ? ? root? ? ? ? ?/root/www/app;
? ? ? ? # Load configuration files for the default server block.
? ? ? ? include /etc/nginx/default.d/*.conf;
? ? ? ? location / {
? ? ? ? include? ? ?uwsgi_params;
? ? ? ? uwsgi_pass? 127.0.0.1:8001;
? ? ? ? uwsgi_param UWSGI_SCRIPT run:app;
? ? ? }
root目錄輸入nginx 啟動服務(wù)。
重啟命令:nginx -s reload
至此配置完畢策添,用WinSCP把本地app文件夾上傳到/www/app材部。輸入公網(wǎng)IP,網(wǎng)站正常運行唯竹。
如果報錯403,試一下python3 import sqlite3 如果報錯乐导,說明sqlite3沒有安裝上。進入Python-3.6.5文件夾浸颓,使用下面命令重新安裝Python3.6.5物臂。
./configure --enable-loadable-sqlite-extensions
make
make install
完畢。很多事情沒有想像中難产上,一直想搞一個云服務(wù)器棵磷,總以為會很麻煩,并且很貴晋涣。真正去了解了仪媒,實施了,發(fā)現(xiàn)不過如此谢鹊。找了個學(xué)生證算吩,帶域名128一年,花了一個工作日的時間佃扼,部署完畢偎巢,雖然只是一個小CASE,對于個人來說兼耀,技能GET了压昼,這一個領(lǐng)域,不再是完全未知瘤运。