一篇云服务器(网站)配置流程

系统: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 'lijia@1611' 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

你可能感兴趣的:(web开发)