阿里云Ubuntu 16.04部署Python-Flask项目

  1. 预备环境 购买 阿里云Ubuntu 16.04 64位服务器,使用阿里云服务器安装包的时候使用阿里云的源比其他平台会快好多!
    本人在双十一的服务器优惠价:99.5/年

    优惠地址:https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=8urz6lie

  2. 更新pip

     pip install --upgrade pip
    

【更新pip是为了兼容我们待会要兼容的环境包
注意:这里执行pip -V会报一个错误:没有找到main模块】
处理方法:
1. 使用vim编辑器(系统自带的)进入到pip文件中:

		vim /usr/bin/pip

2. 修改文件:

	    from pip import  main
	    if __name__ == '__main__':
	        sys.exit(main())
	    改为:
	    from pip import __main__
	    if __name__ == '__main__':
	        sys.exit(__main__._main())
  1. 安装Nginx,uwsgi

     sudo apt-get install nginx
     
     sudo apt-get install uwsgi
    
  2. 安装,创建虚拟环境
    服务器本身是用来部署项目的,所以使用虚拟环境来运行项目更符合开发要求。

     sudo pip install virtualenv
     
     sudo pip install virtualenvwrapper
    

安装完虚拟环境后,如果提示找不到mkvirtualenv命令:

1.创建目录用来存放虚拟环境:mkdir $HOME/.virtualenvs
使用vim命令打开~/.bashrc文件,并在末尾添加:
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

运行:source ~/.bashrc,则以后创建的虚拟环境都配置在root[home]【看使用的帐号】文件夹下的.virtualenvs隐藏文件夹中。

创建虚拟环境(注意python版本):

(python2)
mkvirtualenv 虚拟环境名称
例 :
mkvirtualenv py_flask

(python3)
mkvirtualenv -p python3 虚拟环境名称
例 :
mkvirtualenv -p python3 py3_flask

创建完成会自动进入虚拟环境py3_flask中;如果要退出当前虚拟环境输入:deactivate即可,查找环境使用:workon 两次tab键;使用虚拟环境:worken 虚拟环境名称

  1. 安装Mysql数据库:

    1. 更新系统:sudo apt-get update 【注意:要在root用户下】
    2. 安装mysql-server:
      apt-get install mysql-server
      apt-get install mysql-client
      apt-get install libmysqlclient-dev

    3… 使用如下命令查询是否安装成功:sudo netstat -tap | grep mysql;【默认会自动设置开机自启动】

    1. 登录:mysql -uroot -p你的密码
    2. 默认mysql是设置为本地访问,为了数据安全,也支持远程访问:
      1. 更改配置文件:/etc/mysql/my.cnf:
      bind-address = 0.0.0.0
      2. 服务器重启:service mysql restart
      3. 查看端口情况:netstat -anp | grep 3306
      4. 修改数据库中的用户权限,使其支持远程访问:
      1. use mysql;
      2. select user,host,password from user;
      3. update user set host = ‘%’ where host = 127.0.0.1;
      4. GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘youpassword’ WITH GRANT OPTION;
      5. flush privileges
      5. 再次重启mysql:service mysql restart,发现远程还是访问不了,其实是阿里云那边设置的问题,这和redis设置远程访问同样访问不了,最后会讲解决办法!
  2. 安装redis数据库

     sudo apt-get install redis-server
    

如果要使redis也支持远程访问,需要如下操作:

1. 停止redis-server stop
	1. ps -ef | grep redis:查看当前redis进程
	2. kill -9 对应PID:结束redis进程
2. redis配置文件修改:
	1. daemonize yes:设置后台运行
	2. bind 0.0.0.0:监听所有可用端口\
	3. protected-mode no:关闭保护模式
	4. requirepass  redis:设置密码,提高安全性
	5. stop-writes-on-bgsave-error no
3. 启动redis:redis-server /usr/local/redis/conf/redis-conf
  1. 安装Git 管理工具

     sudo apt-get install git
    

一些常用的git命令:

git init :创建本地仓【进入空文件夹中】
git config user.name '张三':设置用户
git config user.email '[email protected]':设置邮箱
git status:查看文件状态
git add ./[文件/目录]:将工作区文件添加到暂存区
git commit -m '版本描述':提交到仓库(.git文件夹)
git commit -am "版本描述":以上两条可以合并为这一条命令
git log/git reflog:查看历史版本
git reset --hard HEAD^:回退版本
	HEAD表示当前最新版本
	HEAD^表示当前最新版本的前一个版本
	HEAD^^表示当前最新版本的前两个版本,以此类推...
	HEAD~1表示当前最新版本的前一个版本
	HEAD~10表示当前最新版本的前10个版本,以此类推...
git reset --hard 版本号:通过每个版本的版本号回退到指定版本
git checkout 文件名:撤销工作区代码
  1. 部署项目
    1.进入home文件夹中的projects文件夹中的flask-project文件夹中
cd /home/projects/flask-project【以下操作均在虚拟环境中进行】
git init
git config user.name '张三':设置用户
git config user.email '[email protected]':设置邮箱
git clone ‘https://gitee.com/xiao_29969155/News-Information.git’
pip install -r requirements.txt  安装环境
修改配置文件:
	1.配置mysql数据库连接IP,用户名,密码,数据库名[默认ip设置为127.0.0.1]
	2.配置redis数据库访问的ip,端口,密码[默认ip设置为127.0.0.1]
	
数据库中创建设置的数据库
    create database 数据库名 character set 'utf8';
    use 数据库名;
    
导入数据库文件
source sql文件地址[绝对地址]

启动项目
python manage

阿里云Ubuntu 16.04部署Python-Flask项目_第1张图片
到这里基本完成了!
但是为什么输入ip还是不能访问呢?要设置阿里云开放端口!

  1. 阿里云开放端口
    阿里云Ubuntu 16.04部署Python-Flask项目_第2张图片
    阿里云Ubuntu 16.04部署Python-Flask项目_第3张图片
    访问浏览器,成功了!
    阿里云Ubuntu 16.04部署Python-Flask项目_第4张图片
    同上
    mysql的端口号是:3306
    redis的端口号是:6379
    IP地址均设为:0.0.0.0/即可!
    解决mysql和redis远程访问的问题。
    项目源码地址:https://gitee.com/xiao_29969155/News-Information.git

你可能感兴趣的:(Flask项目)