廖雪峰webApp部署

一、准备

这两周都在学廖雪峰老师的Python教程,这里写的是最后实战的部署部分。源码可以 看这里 。

1)部署没有用到服务器,而是虚拟机,VitualBox安装的Ubuntu 16.04.2。

2)代码用到的是Python3.4(教程是3.5),部署的时候 Fabric用的是2.7版本,所以这里用到了virtualenv。

# 安装virtualenv
pip instal virtualenv

# 创建文件夹存放vitualenv环境
mkdir virtual

cd virtual

# 创建Python2.7对应的虚拟路径 ENV2.7
# C:\Python27 就是你下载Python2.7的存放位置
virtualenv -p C:\Python27\python ENV2.7

# 激活虚拟环境
ENV2.7\Scripts\activate

# 虚拟配置前本地的 C:\Python27 已经安装了 pip
pip install fabric
3)配置好后把virtualenv的路径放到环境变量PATH中,我的是:D:\virtual\ENV2.7\Scripts。

4)Fabric 部署需要运行linux命令,用windows自带的cmd是完成不了的,需要 Cygwin。但是我直接用之前下载的Git Bash就可以了(其实是一直下不成功Cygwin,才想起替代的)。


二、部署

1)在 webApp下运行 fab build,不知道是缺少对应文件还是环境的问题,一直 Aborting,但是我直接运行 tar ** 命令来生成代码压缩包就没有问题。

廖雪峰webApp部署_第1张图片


2)上传并且按装到虚拟机。fabfile.py 中有个地方需要更改,不然没办法成功。

#服务器登录用户名
env.user = 'eric'
env.password = 'eric' # sudo password

#sudo为root
env.sudo_user = 'root'
env.password = 'eric' # sudo password 这是你虚拟机获取管理员权限的密码,必须要加上

#服务器地址,这里是我的虚拟机的 ipv4 地址
env.hosts = ['192.168.2.10']

#服务器MySQL用户名和密码
db_user = 'root'
db_password = 'eric'

_TAR_FILE = 'dist-awesome.tar.gz'

3)fab deploy 效果。

廖雪峰webApp部署_第2张图片

....

廖雪峰webApp部署_第3张图片


4)如果fab deploy出现错误,记得更改nginx和supervisor配置文件对应自己服务器的信息。比如下面awesome.conf对应的user就是你当前 linux 的用户名。还要 command 需要加上 python3 而不是直接运行 app.py的目录(这是廖老师没有加上,我看error log得到的结论,linux装的是python3.5)。

廖雪峰webApp部署_第4张图片


5)nginx配置文件。我没有申请域名,直接把 server_name填上本机地址。

廖雪峰webApp部署_第5张图片


6)重启supervisor 和 nginx。

廖雪峰webApp部署_第6张图片


7)在虚拟机的浏览器打开 127.0.0.1。

廖雪峰webApp部署_第7张图片


8)顺便配上部署到linux的项目目录。

廖雪峰webApp部署_第8张图片


三、结束语

只是部署完后作一个总结,如果能帮到一些人,那是最好的。


四、补充

1)去万网买了个域名,然后解析到虚拟机的IP上面,再在 nginx的配置文件awesome上把server_name改成域名,再重启nginx和supervisor。

廖雪峰webApp部署_第9张图片


2)这时候在主机(windows)上面已经可以通过域名访问网站了,而且,连了本机WiFi的手机也可以通过域名访问。就是外界访问(类似用手机4G网络)不成功,因为我的域名绑定的只是本地虚拟机的IP,而不是共享服务器的IP。具体我还要好好学习。

廖雪峰webApp部署_第10张图片


廖雪峰webApp部署_第11张图片


3)上面分别是windows主机和手机访问域名的结果。



你可能感兴趣的:(nginx,python3)