阿里云服务器超级详细配置(FLASK+UWSGI+NGINX)
一准备工作:
我们先到阿里云官网注册和登录以及实名认证,然后可以在官网上购买收费的云服务器或者领取一个月免费的云服务器。
我们这次安装的是Ubuntu 18.04 64位 阿里云目前最新版的系统。
输入root密码 记住哦~这个就是登录服务器的密码
服务器地址,第一个( ̄▽ ̄)"复制一下~
配置安全组,主要设置容许你的网页访问的端口。。。go on~
端口范围和授权对象必须要写哦,0.0.0.0/0就是对所有人公开~
OK,下面我们进入我们的服务器,当然如果你的不是阿里云的服务器也可以,你的服务器装好系统之后可以从这一步开始:
下载putty,SSH啥的 你自己随意,我觉得这个顺手一点吧。黑色的地方填写服务器地址 其他不变。然后OPEN!
二、进入ubunru终端界面并创建虚拟环境:
输入密码进来之后:
第一个命令,更新服务器列表 O(∩_∩)O
1.apt-get update
2.这个mysql需要就装。
如果你用的sqlite,这个可以不装,以后需要再装也行,但是还是要说一下:
apt-get install mysql-server
apt-get install libmysqlclient-dev
装完之后可以用命令查看安装的包和软件:
dpkg -s mysql-server
3.如果你安装了mysql,就顺便把redis也安装一下。
redis是什么,后面有说明的,想了解的可以去看看。
apt-get install redis-server redis的安装(缓存数据库)
4. 安装 virtualenv (虚拟环境):
如果这里提示要安装 PIP 就 安装一下 pip
apt install python-pip
再安装 :
pip install virtualenv
pip3 install virtualenvwrapper (虚拟环境管理工具) (如果是python3 切换下)
至此虚拟环境就安装好了 O(∩_∩)O
恭喜你完成了很多人要爬很多坑的一步。
-----------------------------------------这里应该有分割线---------------------------------------------
接下来我们看下 virtualenvwrapper.sh 的位置,为什么要看呢,因为我们的服务器怕找不到虚拟环境所需要的文件,
使用命令 :which virtualenvwrapper.sh 然后添加以下代码
编辑~/.bashrc文件,内容如下: (vim~/.bashrc 修改文件用 i 命令,改完之后esc退出编辑模式 ,输入:wq 保存退出)
(每一个用户在进入home目录后,其中都会有一个隐藏文件.bashrc ,按ctrl+h可以显示隐藏文件,该文件保存该用户角色下的环境变量,所以直接打开终端时,运行的命令都是从 这 个.bashrc中去寻找)。
在 .bashrc 文件中修改 :
export WORKON_HOME=$HOME/.virtualenvs/
export PROJECT_HOME=$HOME/workspace/
exportVIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
用的3.5版本安装的这个环境,系统的2.7版本是没有的。
“exportVIRTUALENVWRAPPER_PYTHON=/usr/bin/python3”
就是告诉服务器设置在python3的环境变量下
如果不指定python3的位置:
which python3
然后修改“ = ” 号后面的。
退出VIM后千万一定要加上这条命令,马上执行:
source ~/.bashrc
后面如果报错,那就是虚拟环境环境出问题了:
可以 whichvirtualenvwrapper.sh
然后修改下:
“source /usr/local/bin/virtualenvwrapper.sh”的路径。
理论上跟我的一步一步走 是不会错的。这里要小伙伴们好好理解一下。
OK 虚拟环境已经配置好了,
现在便是创建虚拟环境。
我们创建一个py3_flask的虚拟环境:
mkvirtualenv -p python3 py3_flask
查看刚刚创建的虚拟环境:
workon
进入虚拟环境:
workon py3_flask
这个时候 会有变化哦,是不是root前面已经有(py3_flask)了,代表我们已经进入这个虚拟环境了
(py3_flask) root@*******:
使用 pip list就可以查看当前虚拟环境安装了哪些包了。
附上虚拟环境常用命令:
mkvirtualenv env1:创建运行环境 env1
workon env1: 工作在 env1 环境 或 从其它环境切换到 env1 环境
deactivate: 退出终端环境
其它的:
rmvirtualenv ENV:删除运行环境ENV
mkproject mic:创建mic项目和运行环境mic
mktmpenv:创建临时运行环境
lsvirtualenv: 列出可用的运行环境
lssitepackages: 列出当前环境安装了的包
创建的环境是独立的,互不干扰,无需sudo权限即可使用 pip 来进行包的管理。
三、安装uwsgi:
升级下我们的 pip (如果提示 PIP 需要升级 可以这样:pip3 install --upgrade pip 升级PIP)
进入到虚拟环境安装:uwsgi
workon py3_flask 进入:
uwsgi 的安装:
pip3 uwsgi
如果觉得慢可以选择安装源,比如这样:
pip3 install -i https://pypi.douban.com/simple uwsgi
使用的 豆瓣的安装源 速度会快很多哦。
OK,安装好了 uwsgi 那么下一步就要安装 FLASK。
四、安装FLASK
一样的安装方法:
pip3 install flask
OK下面 我们用Flask 来测试下我们的网页:
用 vim 工具 修改下 app.py的一些小参数
如果你用 pycharm的话,应该指定创建Flask后会有一个 自动生成的app.py
我们就来测试它,复制那段代码,用vim创建一个test.py的文件。
(不测试,就可以跳过这段,完全不影响)
最后的app()修改如下:
app(host='0.0.0.0',port=5000 , debug='True')
然后保存退出 vim ,好了第一次运行我们的网站:
python3 app.py
浏览器打开 输入:
你的网址:5000
不要忘记加端口哦。
是不是看到网页了。
五、安装 nginx:
nginx的安装:
sudo apt-get install nginx
下载ngnix 也是在虚拟环境。
很快就安装好了。
如果出问题了,?@!
那好吧,升级下 sudo apt-get updata
在安装就可以了。
安装好了之后就是最重要的配置了。
六、配置uwsgi和nginx:
如果需要拷入你的项目文件到服务器:
一般推荐使用工具,比如【winscp】,把项目文件放好,一般放在HOME目录。
说一下配置文件的位置:
nginx的在etc文件夹下的nginx文件夹里:
uwsgi的 需要自己创建ini文件 放在虚拟目录就可以了,位置随便。
运行ini文件的时候要在创建的目录。
(复制下来后,注意去掉用 # 注释的部分)
---------------------------------------------------------------------------------------------
[uwsgi]
chmod-socket = 666
socket =127.0.0.1:5000 #和nginx配置的端口号
#http=0.0.0.0:5000 #单独启动uwsgi时使用
chdir=/home/51job/51_flask #项目路径
wsgi-file=app.py #项目启动文件
home = /root/.virtualenvs/py3_flask/ #这个是项目的虚拟路径
callable=app
processes=4
threads=2
master=True
pidfile=uwsgi.pid
daemonize=uswgi.log
-------------------------------------------
如果只想测试下 uwsgi 是否成功,
那么改成这样:
[uwsgi]
#chmod-socket = 666
#socket =127.0.0.1:5000
http=0.0.0.0:5000
chdir=/home/51job/51_flask #你的项目目录
wsgi-file=app.py #你的启动文件
home = /root/.virtualenvs/py3_flask/ #这就是你的虚拟目录,还记的开始的时候说的怎么得到虚拟目录吗?
callable=app
processes=4
threads=2
master=True
pidfile=uwsgi.pid
daemonize=uswgi.log
就可以了在uwsgi上访问了,注意浏览器的端口:5000哦
OK,下面就是ngnix的配置,so easy!!!
哎 说简单 其实我可是趴了俩天的坑啊 -,-
events {
worker_connections 768;
# multi_accept on;
}
http {
server {
listen 80; #监听端口,就是网站端口啦
server_name XXX.XXX.XXX.XXX #你的服务器地址,也可以是你的域名
charset utf-8;
location /static {
alias /home/51job/51_flask/static;
#这个是你项目的JS文件地址,是不是很熟悉static
}
#location /upload {
#alias /var/www/datavis/taihesite/upload;
#}
location / {
uwsgi_pass 127.0.0.1:5000;#这个是与你对接的uwsg的地址端口
include /etc/nginx/uwsgi_params;
}
}
##
# Basic Settings
##
复制下面这段代码到相应位置就可以了,注意覆盖哦,需要修改的地方 我都做了标记了,如果复制下来 请把注释去掉哦
七、启动我们的 服务器:
uwsgi uwsgi.ini
service nginx start
这样就启动了。。。
顺便说下停止服务器的方法:
sudo pkill -f uwsgi -9 停止uwsgi 最有效的办法 都不需要输入pid 去 KILL
service nginx stop 停止 nginx
那就一其说一下吧:
service nginx restart 重启Nginx服务
service nginx status Nginx服务的状态
service nginx reload在Nginx服务启动的状态下,重新加载nginx.conf这个配置文件
sudo nginx -t 检查nginx 配置是否正确
至此终于完成了所有的配置 ,你的服务器应该已经可以访问了,假如,还不能启动,那肯定都是小问题,无非就是版本不匹配啥的,
如果出问题不妨试一下:
sudo atp-get update
如果喜欢的小伙伴可以转载一下:)