这篇文档是我回滚服务器以后从零开始操作的,适合新手小白,大神勿喷!
(假设看这篇文档之前你已经有了自己的服务器和自己的域名)
(假设你已经会将自己的项目文档放进服务器)
下面开始我们的操作:
1, 更新一下系统:
apt update
2,安装nginx
apt install nginx
3,安装MySQL
apt install mysql-server
4, 安装git apt install git
5,安装vim apt install vim
6,安装虚拟开发环境
1.安装pyenv
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
-
将安装路径写入
~/.bashrc
vim ~/.bashrc
将以下三条语句写入 :(安装pyenv最后生成的3句话)
export PATH="/root/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
$ source ~/.bashrc
#配置立刻生效$ echo $PATH #如果路径第一个结尾是shims则表示成功 /home/python/.pyenv/plugins/pyenv-virtualenv/shims:/home/python/.pyenv/shims:/home/python/.pyenv/bin:/home/python/bin:/home/python/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin #也可以将上面三条命令写入到~/.barsh_profile,然后重启一下shell 更新一下 $ pyenv update
然后就可以使用了
查看pyenv的安装版本:
$ pyenv
#1.查看pyenv当前支持哪些Python版本 python@ubuntu:~$ pyenv install --list Available versions: 2.1.3 2.2.3 2.3.7 ...
安装python
#1.在安装python之前,我们必须要安装python所需要的依赖包,这个必须要安装,安装会失败的: $ sudo apt-get install libc6-dev gcc $ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm #2. 安装python $ pyenv install 3.6.5 -v #-v 以日志模式显示安装过程 #因为pyenv会自动到github上下载,速度超慢,所以一般会选择使用curl或者wget下载到~/.pyenv/cache下,然后再用pyenv安装,下面是可选的安装模式 $ cd ~/.pyenv $ sudo mkdir cache $ wget -c http://mirrors.sohu.com/python/3.6.5/Python-3.6.5.tar.xz -P ~/.pyenv/cache/ $ pyenv install 3.6.5 -v #3.更新pyenv数据库 $ pyenv rehash #4.列出所安装的python版本 $ pyenv versions #5.切换python版本 $ pyenv global 3.6.5 #6.验证版本 $ python
首先使用pyenv建立一个虚拟开发环境,然后使用pip安装
pyenv virtualenv 3.6.5 flask
然后将你的项目以及数据库的sql文件放进 ~/var/www/HaiTao
HaiTao是项目根目录
切换到项目根目录下,启动虚拟机 pyenv activate flask
更新一下虚拟环境
pip freeze
pip install --upgrade pip
安装flask pip install Flask
pip install flask-script
pip install Flask-Cache
pip install Click
pip install Flask-Migrate
pip install Flask-RESTful
pip install Flask-SQLAlchemy
pip install Flask-Session
pip install Mako
pip install MarkupSafe
pip install pillow
安装MySQL pip install pymysql
安装uwsgi pip install uwsgi
打开uwsgi配置文件 cd ~/var/www/HaiTao
vim uwsigconf.ini
[uwsgi]
# 外部访问地址,可以指定多种协议,现在用http便于调试,之后用socket #
socket = 0.0.0.0:5000
chdir = /root/var/www/HaiTao
wsgi-file = manage.py
callable = app
plugins = python# 这行一定要加上,不然请求时会出现-- unavailable modifier requested: 0 --错误提示
# 处理器数
processes = 1
# 线程数
threads = 2
试着运行nginx uwsgi --http 0.0.0.0:5000 --wsgi-file manage.py --callable app
ctrl + c 结束运行
切换到nginx 配置文件 cd /etc/nginx/sites-available/
建立配置文件 vim haitao
server {
listen 80;
server_name www.jianfeihenshuai.xyz; #这里写自己的域名
location / {
# 转发端口必须和uwsgiconf.ini中socket端口一致
uwsgi_pass 0.0.0.0:5000;
include uwsgi_params; # 导入uwsgi配置
uwsgi_param UWSGI_SCRIPT manage:app; # 指定启动程序
# 项目的根目录
uwsgi_param UWSGI_CHDIR /var/www/HaiTao;
}
# 静态资源所在位置
location /static {
alias /var/www/HaiTao/static/;
}
}
切换到 sites-enabled 下加一个软连接
cd /etc/nginx/sites-enabled
ln -s ../sites-available/haitao haitao
ll
看一下有没有成功
切到项目根目录 cd /var/www/HaiTao
试着运行nginx uwsgi --socket 127.0.0.1:5000 --wsgi-file manage.py --callable app
在浏览器输入你的域名,出现 Welcome to nginx!
说明成功!
在MySQL中建立你的数据库 create database flask_ht default charset=utf8;
退出数据库,将你的数据文件导入, 切到家目录下 mysql -uroot -p flask_ht < /root/var/www/HaiTao/flask_ht.sql
然后启动nginx uwsgi --socket 0.0.0.0:5000 --wsgi-file manage.py --callable app
在浏览器输入域名看看效果
修改一下底层源码:
vim /root/.pyenv/versions/3.6.5/envs/flask/lib/python3.6/site-packages/flask_cache/jinja2ext.py
将 flask.ext.cache 改成 flask_cache
否则cache模块不能用
如果出现502错误,可能redis没装好: $ redis-cli
用 ping
测试,看会不会出现 pong
如果没有,说明redis 没装好:apt install redis-server
apt install redis-tools
在执行运行命令之前增加nohup,在命令后增加& ,退出X-shell,程序继续运行:
nohup uwsgi --socket 127.0.0.1:5000 --wsgi-file manage.py --callable app &
如果被报端口被占用:
1,首先,用ps查看进程,方法如下:$ ps -ef
找到需要杀死的进程
2,此时如果我想杀了火狐的进程就在终端输入:$ kill -s 9 1827
这里的1827指的是火狐的pid端口号
服务启动
-
sudo service nginx start
-
sudo service nginx stop
-
sudo service nginx restart