在AWS的Linux服务器部署Flask预演(详细步骤)
作者:圈圈圈小明 发布时间:2022-03-23 18:30:44
我的开发环境是python3.11
以下资料来自对GPT回答的整合:
部署Flask应用程序到AWS Linux服务器,你可以选择多种方式。下面是一个基本的步骤,这个步骤假设你已经在AWS上设置好了一个EC2 Linux服务器实例并且你有SSH连接到服务器的权限。
1. **SSH连接到你的EC2实例**
你可以通过下面的命令连接到你的服务器。在这里,`<your.pem>`是你的私钥文件,`<user>`是服务器的用户,通常在Linux上是`ec2-user`或者`ubuntu`,`<public_dns>`是服务器的公共DNS地址。
ssh -i <your.pem> <user>@<public_dns>
这里采用了命令方式连接服务器,也可以采用xshell
2. **安装必要的软件**
你需要Python和pip。你可以通过下面的命令安装:
sudo yum update
sudo yum install python3 pip3
因为我的开发环境是python3.11,所以,各自分别安装。以下具体的安装python3.11的方法:
实际上,Python 3.11 可能不会直接包含在你的 Linux 发行版的仓库中,尤其是如果你使用的是一个较旧或者长期支持(LTS)版本的发行版。你可以使用`yum`检查可用的Python版本:
sudo yum list | grep python3
如果Python 3.11没有在列表中,你可能需要使用其他方法来安装它,例如从源码安装或使用`pyenv`。假设我们要使用`pyenv`来安装Python 3.11,你可以按照以下步骤进行:
2.1. 首先,安装`pyenv`的依赖:
sudo yum install -y git gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel findutils
2.2. 然后,安装`pyenv`:
curl https://pyenv.run | bash
然后,将以下行添加到`.bashrc`:
export PATH="/home/username/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
然后,应用更改:
source ~/.bashrc
2.3. 现在,你可以安装Python 3.11:
pyenv install 3.11.0
2.4. 然后,将其设置为全局默认版本:
pyenv global 3.11.0
2.5. 检查你的Python版本,确认更改已生效:
python --version
2.6. 现在你可以安装pip:
python -m ensurepip --upgrade
【添加软连接】
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
报错文件存在,删除现有链接再执行添加软连接
rm /usr/bin/python3
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
【添加pip3软连接】
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
报错文件存在,直接删除现有链接再创建新链接
rm /usr/bin/pip3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
3. **设置Python虚拟环境**
【创建站点目录 】
mkdir /var/www
进入目录
cd /var/www
【创建项目目录】
mkdir mysite
你可以使用git来把你的Flask应用从你的代码库中拉到服务器上。
git clone <your_repository_link>
cd <your_repository_folder>
【安装uwsgi】(在虚拟环境中安装)
pip3 install uwsgi
使用Python虚拟环境是一个好习惯,它可以防止你的Python库在不同项目间相互冲突。你可以用下面的命令创建和激活虚拟环境:
python3 -m venv venv
source venv/bin/activate
【虚拟环境下安装Flask 】
pip3 install flask
4. **在你的服务器上克隆你的Flask应用**
你可以使用git来把你的Flask应用从你的代码库中拉到服务器上
git clone <your_repository_link>
cd <your_repository_folder>
5. **安装你的Flask应用的依赖**
你应该在你的Flask应用的根目录下有一个`requirements.txt`文件,这个文件列出了你的应用所有的依赖。你可以用下面的命令安装所有依赖:
pip3 install -r requirements.txt
6. **运行你的Flask应用**
现在你可以运行你的Flask应用了。默认的Flask命令是:
flask run
这样做只会在你的服务器的本地运行你的应用,要让你的应用可以被公网访问,你可以设置`host`参数为`0.0.0.0`:
flask run --host=0.0.0.0
【更改访问】
python app.py runserver -h 0.0.0.0 -p 5000 -d
需要把上述的运行设置成后台运行,否则关闭了虚拟环境窗口,浏览器就不能访问了
python?app.py??runserver?-h?0.0.0.0?5000?-d?&
注意你应该在AWS的安全组设置中打开你的Flask应用监听的端口,否则你的应用是无法被访问的。
这只是最基本的设置,生产环境中你可能需要更复杂的设置,例如使用Nginx做反向代理,使用Gunicorn作为WSGI服务器,以及设置环境变量等等。以上步骤可以作为你的起点,然后你可以根据你的需求进行调整和优化。
【其他命令】
切换到root用户
sudo -s
删除文件夹
rm -rf 文件夹??
查文件、文件夹
find /. -name 'Python-3.9*' -type d
创建虚拟环境(在站点中)
python3 -m venv venv
进入虚拟环境
cd venv/bin/source activate
离开虚拟环境
deactivate
来源:https://blog.csdn.net/wenxi2367/article/details/130746925


猜你喜欢
- LAMP框架是当前软件开发的一种重要模式,LAMP中的L代表开源的操作系统Linux,A代表最著名的WWW服务器,也是开源软件的Apache
- 或许当初连“开心农场”的开发团队“五分钟”也没有想到,一年之内一场热火朝天的全民“偷菜”运动正在全国兴起。农场游戏全面的流行造就了一个新兴的
- Web Game,顾名思义就是基于Web网络的在线多人游戏。我们接触最多的也就是这种基于Web浏览器的虚拟社区的游戏,说起sns的web g
- 本教程讲解的全新安装 Discuz!7.0.0 的方法。安装前请先确认您已经成功安装好了 UCenter ,UCenter 的安装方法、Di
- 1、一台主机上部署zookeeper集群下面这个是官方给出的docker-compose的部署方案(这个是都在一台主机上部署的):versi
- 5、配置作用域接着要为新建的应用程序IIS6URL授权配置作用域。右键点击“IIS6URL授权”选项
- 看到这样的广告太多了, 看到那些上完此类课程的人后写的感慨也不少, 相信各位也看了不少, 大家有什么感觉?我的一个感觉就是, 结果都差不多。
- centOS 7如何安装docker?本文给出详细的步骤。首先准备一台linux系统。Docker需要一个64位系统的系统,内核的版本必须大
- Inside Facebook博客曾发布了一篇名为“我有25万名用户,但是那又怎样呢?”的帖子,其作者提到了一个在Facebook上拥有40
- 大家慢慢的都开始知道软文在网络营销里的重要性,但是大部分的同学还停留在知其然而不知其所以然的阶段。写一篇与众不同又可以受到关注的软文是需要一
- 解决vmware上ubuntu无法共享文件夹问题解决vmware上ubuntu无法共享文件夹问题(ubuntu22.04)第一步:设置共享文
- 作为网站的所有者,我们总希望自已的内容能随时被搜索引擎收录,而同样有问题时,能随时从搜索引擎中删除。 Google 这一
- 过去的几年,由于大量广告主的大量资金注入互联网 ,已具实力的网站你争我斗,海量新兴的网站迅速崛起,都想在这个看起来赚钱很美、实则赚钱不易的互
- linux下的C\C++多进程多线程编程实例详解1、多进程编程#include <stdlib.h> #include <
- 如果你有自己的主页,需要经常将自己制作的网页文件上传到几个固定的站点,相信你一定会喜欢下面介绍的“可以编程序&r
- 广告展示位置AdSense 提供多种广告格式和广告产品。我们鼓励发布商在遵守下列政策的情况下尝试各种展示位置:每页可展示最多 3 个广告单元
- CentOS下实现普通用户和管理团员权限的切换使用su命令实现用户属性的转换普通用户切换到root用户:方法有多重 1
- 用户帐号与密码,就好像是自己家门的钥匙,是用户访问网络资源的一把钥匙。无论是即时聊天工具,如MSN或者QQ,又或者是邮件、论坛,等等,都需要
- 据消息人士爆料,“土豆”已经和“酷6”达成并购协议,“土豆”将以股权置换的方式全部并购“酷6”百分之百的股权,以对抗“优酷”的强劲发展势头。
- FTP服务器软件,一直是Serv-U的天下,方便好用,使用量巨大,但是这2年,安全问题严重,漏洞一个接一个,快赶上微软了,我维护的2台服务器