1. 程式人生 > >一篇雲伺服器(網站)配置流程

一篇雲伺服器(網站)配置流程

系統:ubuntu:16

安裝python3
已經自帶
否則百度 Python升級

# 下載原始碼包
zhiranyouni$   tar xfz Python-3.6.1.tgz 
zhiranyouni$   ./configure --prefix=/usr/bin/python3.6 
zhiranyouni$   sudo make
zhiranyouni$   sudo make install

一個錯誤處理

報錯 No module named '_ctypes’ 3.7版本需要一個新的包libffi-devel,安裝此包之後再次進行編譯安裝即可。(百度出結果)

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install libssl-dev openssl
sudo apt-get install libffi-dev

建立軟連線

ln -s /usr/bin/python3.6/bin/python3.6 /usr/bin/python

python3中pip3安裝出錯, 找不到SSL

安裝mysql

安裝mysql服務:
	sudo apt-get install mysql-server   
安裝mysql客戶端:
	sudo apt install mysql-client
安裝連線渠道(應該是):
	sudo apt install libmysqlclient-dev
檢視mysql狀態:
	sudo netstat -tap | grep mysql
註釋只能本地訪問:
	sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
註釋掉
	 bind-address = 127.0.0.1
授予許可權:對外開放
	GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '
[email protected]
' WITH GRANT OPTION; 重新整理許可權: flush privileges; 重啟mysql: service mysql restart mysql預設埠:3306 password:******

安裝mongodb

簡書

sudo service mongod start
sudo service mongod restart
sudo service mongod stop

安裝git

git  --help    或者git   先檢視git是否安裝
sudo apt-get install git

安裝pip

# 先檢視是否安裝了
pip list
apt install python-pip
# pip升級 
pip install --upgrade pip

# pip 批量安裝包:
pip install -r requirements.txt
# 檢視教程
pip --help 

安裝虛擬環境

virtualenv --version # 先檢視是否安裝

pip install virtualenv

搭建專案

# 建立目錄:
mkdir chongli_front
# 初始化git: 
git init

# 檢視python版本,新建python虛擬環境
virtualenv -p /usr/bin/python3 venv_py3
# 啟用虛擬環境:  
source venv_py3/bin/activate

安裝flask

flask使用例項

pip install flask
新建目錄:
# 開始工程
mkdir chongli_tour  

測試是否外網可以訪問:

需要配置雲伺服器的公網,子網,安全組等,配置出站,入站規則
flask教程練習:Flask Web 開發

簽出版本,進行測試。
先建立虛擬環境,開啟虛擬環境,配置需要包檔案

git checkout 2c
python hello.py runserver --host 0.0.0.0

# 自動根據mysql表生成model
pip install sqlacodegen
sqlacodegen mysql://root:[email protected]:3306/mydb > models.py 
sqlacodegen mysql://root:[email protected]/crm

配置完flask_sqlalchemy, 發現連線不上資料庫,顯示ImportError: No module named MySQLdb
經百度發現:
https://www.cnblogs.com/guohaojintian/p/6030818.html
https://stackoverflow.com/questions/454854/no-module-named-mysqldb

然而在進行安裝這些mysql和python連線的庫的時候,又出現了其他錯誤。
setup script exited with error: command ‘x86_64-linux-gnu-gcc’ failed with exit status 1
https://stackoverflow.com/questions/26053982/setup-script-exited-with-error-command-x86-64-linux-gnu-gcc-failed-with-exit
經過,看上面的連線,才解決,python2,和python3安裝的東西,不一樣。具體看連線吧,

Python SQLAlchemy基本操作和常用技巧(包含大量例項,非常好)

https://www.jb51.net/article/49789.htm
https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0014021031294178f993c85204e4d1b81ab032070641ce5000 廖雪峰

flask設定可以任何ip訪問

if __name__ == '__main__':
    app.run(host='0.0.0.0',port=5000,debug=True)

靜態資源圖片上傳,下載
使用雲服務商物件處理的服務:
使用物件處理,更改域名指向,能夠直接取得圖片,但是是以跳轉的形式,進行鑑權和授權的。
https://blog.csdn.net/qq_28018283/article/details/78223478
回顧一下整個系統的流程,當用戶通過 www.leon0204.com 訪問 static.leon0204.com/article/like.jpg 的靜態資源時,會繞伺服器,解析到 static.leon0204.com.w.kunlunar.com 去,
cdn 會查詢快取是否有命中的,第一次訪問的時候 cdn 的快取為空,cdn 去設定的 源站oss 查詢, leonimg.oss-cn-shenzhen.aliyuncs.com ,然後分發給使用者,這樣一套流程就完成了。
https://www.leon0204.com/article/66.html

https://blog.csdn.net/DADADIE/article/details/50768947
網站開發動靜分離實踐—優缺點

微信小程式上傳圖片的處理和記錄方式。
https://blog.csdn.net/baidu_25797177/article/details/76397691

supervisor配置和理解

Supervisor是用Python開發的一套通用的程序管理程式,能將一個普通的命令列程序變為後臺daemon,並監控程序狀態,異常退出時能自動重啟。它是通過fork/exec的方式把這些被管理的程序當作supervisor的子程序來啟動,這樣只要在supervisor的配置檔案中,把要管理的程序的可執行檔案的路徑寫進去即可。也實現當子程序掛掉的時候,父程序可以準確獲取子程序掛掉的資訊的,可以選擇是否自己啟動和報警。supervisor還提供了一個功能,可以為supervisord或者每個子程序,設定一個非root的user,這個user就可以管理它對應的程序。

sudo supervisorctl 進入控制檯
help檢視看幫助,
start 開始
restart 重啟
status 檢視狀態

sudo supervisorctl restart www 命令疊加直接執行。 

uwsgi配置安裝和理解(https://blog.csdn.net/y472360651/article/details/77624263)

理解web框架(合併網站開發中重複的東西)<–>wsgi<–> web 伺服器(接受http請求,處理後將請求交給應用伺服器, 然後拼裝正確的http response返回)

web 伺服器:

快取機制:講一些經常被訪問的頁面快取起來,提高響應速度;
安全:防止黑客的各種攻擊,比如 SYN Flood 攻擊;
併發處理:如何響應不同客戶端同時發起的請求;
日誌:記錄訪問日至,方便做一些分析。
https://www.cnblogs.com/houruikk/p/6623594.html