Flask项目部署到Ubuntu上

前期准备

将在本地开发好的Flask项目打包,发送到云主机上,可以使用xftp等传输工具放到远程主机上。

安装python虚拟环境

  1. 为python3安装pip
sudo apt install python3-pip
#为python安装pip 使用时要输入pip3

2.安装virtualenv

sudo pip install virtualenv
sudo pip install virtualenvwrapper

3.配置环境变量

#在~/.bashrc末尾添加下面两句
export WORKON_HOME=$HOME/.virtualenvs #路径可以自行修改
source /usr/local/bin/virtualenvwrapper.sh

4.刷新配置文件

source ~/.bashrc

5.虚拟环境操作

mkvirtualenv 名称	#创建虚拟环境,默认创建python2虚拟环境
mkvirtualenv -p python3 名称 #创建python3虚拟环境
workon			 #查看所有的虚拟环境
workon 名称	   #切换到xx虚拟环境
deactivate		 #退出虚拟环境

5.删除虚拟环境

rmvirtualenv 虚拟环境名称
例 :删除虚拟环境py3_flask
先退出:deactivate
再删除:rmvirtualenv py3_flask

6.问题

1./usr/bin/python: No module named virtualenvwrapper

错误原因:

Ubuntu安装了2.7和3.x两个版本的python,在安装时使用的是sudo pip3 install virtualenvwrapper在运行的时候默认使用的是python2.x,但在python2.x中不存在对应的模块

解决办法:

#在bashrc中加入如下命令,指定使用python3解释执行
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

安装Nginx

sudo apt-get install nginx

安装好Nginx后,系统会默认创建一个目录“/var/www/html”,若通过公网ip地址能够看到一个大写的Nginx界面就说明成功了。
Nginx配置文件路径:/etc/nginx/sites-available/default,后面会用到

安装环境

1.执行pip3 freeze > requirements.txt在本机中将项目所需的依赖输出到文本文件中。

2.在服务器中进入虚拟环境,在执行pip3 install -r requirements.txt安装所需依赖包
3.执行pip3 install uwsgi安装uwsgi

配置Nginx

vim /etc/nginx/sites-available/default

修改文件如下所示

server {
	#listen 80 default_server;
	#listen [::]:80 default_server;
	listen 8002; #监听端口
	# SSL configuration
	#
	# listen 443 ssl default_server;
	# listen [::]:443 ssl default_server;
	#
	# Note: You should disable gzip for SSL traffic.
	# See: https://bugs.debian.org/773332
	#
	# Read up on ssl_ciphers to ensure a secure configuration.
	# See: https://bugs.debian.org/765782
	#
	# Self signed certs generated by the ssl-cert package
	# Don't use them in a production server!
	#
	# include snippets/snakeoil.conf;

	root /var/www/Flask;

	# Add index.php to the list if you are using PHP
	index index.html index.htm index.nginx-debian.html;

	server_name 公网ip(或域名);

	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		try_files $uri $uri/ =404;
		include         uwsgi_params;
                uwsgi_pass      127.0.0.1:8000;   #此地址要和uwsgi.ini的套接字相同
                uwsgi_param UWSGI_PYHOME /var/www/Flask/venv;  #指向虚拟环境
                uwsgi_param UWSGI_CHDIR /var/www/Flask;  #指定网站根目录
                uwsgi_param UWSGI_SCRIPT app:app;   

	}

}

修改完成后重启Nignx服务

sudo service nginx restart

配置uwsgi

//进入Falsk项目目录
vim config.ini

填入以下内容

# uwsgi 启动时所使用的地址与端口
#内网ip可即ifconfig命令可查看到的ip
#socket = 127.0.0.1:8002
http = 内网ip:8002

# 指向网站目录
chdir = /var/www/Flask
# python 启动程序文件
wsgi-file = app.py 

# python 程序内用以启动的 application 变量名
callable = app 
# 处理器数
processes = 4
# 线程数
threads = 2
#状态检测地址

stats = 127.0.0.1:5000 #与nginx配置文件中的端口要一致
#输出内容放到uwsgi.log文件中,加上可后台执行
daemonize = /var/www/Flask/logs/uwsgi.log

最后执行uwsgi config.ini不出意外,flask项目就在后台执行起来了
在浏览器中输出域名(IP):端口即可访问

uwsgi开机自启动

1.首先需要将上面配置文件的daemonize改为logto,daemonize不仅告知了程序的日子文件输出位置还让程序后台运行,因此在系统启动的过程中会重复启动导致失败。

#daemonize = /var/www/Flask/logs/uwsgi.log
#改为
logto = /var/www/Flask/logs/uwsgi.log

2.创建开机启动项
/ect/init.d中新建脚本startuwsgi.sh,并赋予755权限,写入一下内容

#!/bin/sh
### BEGIN INIT INFO
# Provides:          espflask
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:
# Description:       espflask
### END INIT INFO
#头部信息可以从别的脚本中复制,然后修改Provids和Description

/usr/local/bin/uwsgi --ini /xxx/config.ini
#注意使用绝对路径

3.使用update-rc.d使脚本开机运行,然后重启即可完成

update-rc.d startuwsgi.sh defaults 99
#99代表启动顺序

参考:https://blog.csdn.net/weixin_39212776/article/details/81321055

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
要将Spring Boot项目部署Ubuntu上,您可以按照以下步骤进行操作: 1. 首先,将您的Spring Boot项目打包成一个可执行的jar文件。在Ubuntu中,您可以使用命令行运行`mvn package`或者使用IDE(如IntelliJ IDEA)的打包功能来完成这一步骤。 2. 将打包后的jar文件上传到Ubuntu服务器上。您可以使用FTP工具,如FileZilla,通过SFTP协议将文件上传到服务器上。根据您提供的引用,您可以使用FailZip工具来发送文件到Ubuntu虚拟机。 3. 在Ubuntu服务器上安装Java运行环境和Tomcat服务器。您可以使用命令行运行以下命令来安装OpenJDK和Tomcat: ``` sudo apt update sudo apt install default-jdk sudo apt install tomcat9 ``` 4. 编辑Tomcat的配置文件,以配置您的Spring Boot项目。打开`/etc/tomcat9/server.xml`文件,找到`<Host>`标签,并添加以下内容: ``` <Context path="/" docBase="/path/to/your/jar/file.jar" /> ``` 将`/path/to/your/jar/file.jar`替换为您上传到服务器的jar文件的实际路径。 5. 重启Tomcat服务,以使配置生效。使用以下命令重启Tomcat: ``` sudo service tomcat9 restart ``` 6. 现在,您的Spring Boot项目应该已经成功部署到Ubuntu服务器上了。您可以通过在浏览器中输入服务器的IP地址和Tomcat端口号来访问您的应用程序。 请注意,以上步骤仅适用于将Spring Boot项目部署到Tomcat服务器上。如果您希望使用其他服务器(如Nginx),则需要相应地进行配置。 引用: - [1]: 在Ubuntu中打开jar包编辑/BOOT-INF/classes/内的配置文件application.yml修改数据库配置 - [2]: 文章目录JavaWeb项目部署到阿里云服务器1. 把项目打包成war包1.1 方法一1.2 方法二2. 配置服务器的jdk和tomcat环境3. JavaWeb项目部署JavaWeb项目部署到阿里云服务器 服务器:阿里云服务器 Ubuntu 18.04 64位... - [3]: 我使用的putty来连接虚拟机,虚拟机是Ubuntu的,使用的是FailZip来向虚拟机发送文件的<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [spring boot项目部署ubuntu服务器详细教程](https://blog.csdn.net/weixin_44086476/article/details/129974531)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [将JavaWeb项目war包部署到阿里云服务器](https://download.csdn.net/download/weixin_38723683/14052421)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [在Ubuntu中部署Springboot项目](https://blog.csdn.net/qq_25447799/article/details/122481813)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值