经过两天的折腾,终于把我做的基于flask框架的网页部署到了阿里云服务器上面,地址:http://39.98.155.118:5657/大家可以去访问,查了一些资料和视频打了基础,最终是咨询了一位大佬,成功部署。当天下午我又自己部署了一个网站,验证了操作步骤。啊,终于搞定了,所以写一篇博客记录一下,同时也为其他小伙伴提供一些参考。
首先,作为学生党,阿里云有一个学生阿里云高校计划,链接:https://developer.aliyun.com/adc/student/
2核 4G内存,可以白嫖,需要学生认证,并且要通过阿里设置的考试,10道选择题吧,在这里我给大家推荐一个视频,里面讲的是整个的这个操作过程
按照视频的操作就可以,不过注意一点,在选择操作系统的时候(在控制台ECS里面的实例中,点击管理可以更换操作系统,一开始我跟着视频选择的win ,最后我又换了CentOS 7.7 64位,更换操作系统记得先停止),进入更换系统页面,点击镜像市场,选择宝塔控制面板,在这里附上一个链接
安装好宝塔,就需要登陆宝塔了,需要账户和密码。这里通过一个工具远程连接我们的阿里云服务器,我是用的工具是PuTTY,这里附上我下载好的安装包:链接:https://pan.baidu.com/s/1xzCkytx_4eDhHopx0g9wLQ
提取码:3tmf
或者下载宝塔提供的BT-Term,这里将我下载好的附在这里:链接:https://pan.baidu.com/s/1XxsseeUnr-Jg5Fq5a0OkKQ
提取码:yawx
通过远程连接进入到我们的云服务器,
在宝塔终端输入bt default命令来获取我们的账户和密码,
然后再浏览器中输入服务器的ip+8888端口(记得在阿里云安全组添加规则中将8888端口添加,在控制台实例中右侧点击更多,里面的网络安全组,点击安全组配置,配置规则)当然了,可以快速添加一些常用的端口,具体可以百度一下
添加好后,进入宝塔,输入账户密码登陆
进入宝塔后,根据提示安装左侧的那些软件。
安装好后,进行下一步
我配置环境主要是看了一个视频,跟着上面配置的环境,附上连接:https://www.bilibili.com/video/BV1CJ411y7AW?from=search&seid=4493776471749286114 这个视频的笔记: 链接:https://pan.baidu.com/s/1pXdXJTzO3xt0iLa2sujJ7g 提取码:1kng 跟着这个视频的步骤配置服务器的环境,最好你在本地跑项目的python版本和服务器的版本一致,我的本地python是3.6.7,服务器上面我安装的是3.6.8,没什么问题,如果跟着视频完成了他里面的测试网页成功,说明你的环境配置的成功了,注意一点,最后的location / {
include uwsgi_params;
uwsgi_pass unix:/www/wwwroot/test/uwsgi/uwsgi.sock;
}location ~ /static/ {
#root后面写项目static文件夹在你后台的绝对路径
root /www/wwwroot/test;
}的配置,我最后部署自己的没用这么配置,最后我会说。 (首先保证你的项目在你本地是可以跑通的) 接下来部署我们自己的项目的几个重要的基本步骤
首先我们在本地跑项目的时候最好创建虚拟环境进行操作,这个不太熟悉的可以去百度,然后再本地跑通项目在虚拟环境安装的包,例如flask pysqlite3可以通过一个命令来将这些包打包成依赖模块,这样子啊服务器上面就不用再pip安装了,直接调用(大佬教我的),这个命令是:pip freeze >requirements.txt 这个命令在pycharm中项目虚拟环境的终端运行即可,然后生成
在这里我们还需要一个工具将我们的文件传到云服务器,我是用的是WinSCP,登陆时主机名是服务器公网的ip,用户名是root,附链接:链接:https://pan.baidu.com/s/1AzSBRH5rpwg4kMESZnU0FQ
提取码:1hxk
在服务器上的/www/wwwroot路径下传入我们的文件夹,例如我的文件夹名称是webtest
webtest文件夹下面包含:(1)包含启动.py文件,静态文件夹static,html模板文件夹templates,还有以来模块文件requirements.txt(所用的命令是pip freeze >requirements.txt),uwsgi文件夹,__pycache__文件夹(这个是在本地生成的),还有gunicorn.conf文件
gunicorn.conf文件的内容:
bind = '0.0.0.0:2222' #可改动端口号 端口号记得在服务器添加,并在宝塔的安全里面放行该端口
user = 'www'
workers = 1
threads = 2
backlog = 512
daemon = True
chdir = '/www/wwwroot/webtest' #换成自己文件夹的路径,基本就改最后一个
access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"'
loglevel = 'info'
worker_class = 'geventwebsocket.gunicorn.workers.GeventWebSocketWorker'
errorlog = chdir + '/logs/error.log'
accesslog = chdir + '/logs/access.log'
pidfile = chdir + '/logs/testtest.pid'
在这里我传一份conf文件吧:链接:https://pan.baidu.com/s/13j9D3ADc2sU22968wfMhVw
提取码:qzh0
剩下的不动,然后在宝塔操作:
1、在宝塔安装下载python项目管理器
2、下载好后打开,添加项目
按照我上面写的操作就可以,添加项目完成后,出来记得点击映射
映射域名随便写就行
这些操作后,在我们服务器项目的文件当中就自动生成了几个文件,
1、2红色箭头是我们在宝塔添加项目成功后自动生成的
3、在完成了上面的步骤后,(注意一点,端口号在服务器添加上,并且在宝塔安全上面进行放行)
例如我添加的是我的公网ip+端口号:39.98.155.118:5657
然后 哈哈就可以访问了