‘壹’ 如何在服务器上部署python
使用pip或easy_install可以管理和安装python的package包,实际上它们都是从pypi服务器中搜索和下载package的。目前在pypi服务器上,有超过三万多个package,同时还允许我们将自己的代码也上传发布到服务器上。这样,世界上的所有人都能使用pip或easy_install来下载使用我们的代码了。
具体步骤如下:
首先创建项目文件和setup文件。
目录文件结构如下:
project/
simpletest/
__init__.py
test.py
setup.py
假设项目文件只有一个simpletest包,里面有一个test.py文件。
创建的setup.py文件格式大致如下,其中,install_requires字段可以列出依赖的包信息,用户使用pip或easy_install安装时会自动下载依赖的包。详细的格式参考文档。
from setuptools import setup, find_packages
setup(
name = 'simpletest',
version = '0.0.1',
keywords = ('simple', 'test'),
description = 'just a simple test',
license = 'MIT License',
install_requires = ['simplejson>=1.1'],
author = 'yjx',
author_email = '[email protected]',
packages = find_packages(),
platforms = 'any',
)
然后将代码打包。
打包只需要执行python
setup.py xxx命令即可,其中xxx是打包格式的选项,如下:
# 以下所有生成文件将在当前路径下 dist 目录中
python setup.py bdist_egg # 生成easy_install支持的格式
python setup.py sdist # 生成pip支持的格式,下文以此为例
发布到pypi。
发布到pypi首先需要注册一个账号,然后进行如下两步:
注册package。输入python setup.py register。
上传文件。输入python setup.py sdist upload。
安装测试
上传成功后,就可以使用pip来下载安装了。
另外,pypi还有一个测试服务器,可以在这个测试服务器上做测试,测试的时候需要给命令指定额外的"-r"或"-i"选项,如python
setup.py register -r "",python
setup.py sdist upload -r "",pip
install -i "" simpletest。
发布到测试服务器的时候,建议在linux或cygwin中发布,如果是在windows中,参考文档,需要生成.pypirc文件
‘贰’ 阿里云服务器部署flask项目
当我们执行下面的hello.py时,使用的flask自带的服务器,完成了web服务的启动。在生产环境中,flask自带的服务器,无法满足性能要求,我们这里采用Gunicorn做wsgi容器,来部署flask程序。Gunicorn(绿色独角兽)是一个Python WSGI的HTTP服务器。从Ruby的独角兽(Unicorn )项目移植。该Gunicorn服务器与各种Web框架兼容,实现非常简单,轻量级的资源消耗。Gunicorn直接用命令启动,不需要编写配置文件,相对uWSGI要容易很多。
区分几个概念 :
WSGI:全称是Web Server Gateway Interface(web服务器网关接口),它是一种规范,它是web服务器和web应用程序之间的接口。它的作用就像是桥梁,连接在web服务器和web应用框架之间。
uwsgi:是一种传输协议,用于定义传输信息的类型。
uWSGI:是实现了uwsgi协议WSGI的web服务器。
我们的部署方式: nginx + gunicorn + flask
web开发中,部署方式大致类似。简单来说,前端代理使用Nginx主要是为了实现分流、转发、负载均衡,以及分担服务器的压力。Nginx部署简单,内存消耗少,成本低。Nginx既可以做正向代理,也可以做反向代理。
正向代理 :请求经过代理服务器从局域网发出,然后到达互联网上的服务器。
特点 :服务端并不知道真正的客户端是谁。
反向代理 :请求从互联网发出,先进入代理服务器,再转发给局域网内的服务器。
特点 :客户端并不知道真正的服务端是谁。
区别 :正向代理的对象是客户端。反向代理的对象是服务端。
查看命令行选项 : 安装gunicorn成功后,通过命令行的方式可以查看gunicorn的使用信息。
直接运行 :
指定进程和端口号 : -w: 表示进程(worker)。 -b:表示绑定ip地址和端口号(bind)。--access-logfile:表示指定log文件的路径
作为守护进程后台运行 :
阿里云服务器默认安装到 /user/sbin/ 目录,进入目录,启动 ngnix:
Ubuntu 上配置 Nginx 也是很简单,不要去改动默认的 nginx.conf 只需要将/etc/nginx/sites-available/default文件替换掉就可以了。
新建一个 default 文件,添加以下内容:
修改完成后重启nginx即可。
Ubuntu 上配置 Nginx 另一种方法,cd 到 /etc/nginx/conf.d 文件夹,新建 xxx.conf 文件(xxx 可以是项目名,只要是 .conf 文件即可),写入以下内容:
需要监听 https 请求时,写入以下内容:
‘叁’ 如何将APP部署在阿里云服务器上
1。远程登录第一次购买ECS后,会把该ECS服务器的root账号、密码发送购买者的邮箱,然后购买者可以通过远程登录到ECS服务器。
2。安装web环境根据自己应用特点选择安装相关web服务器tomcat或者jetty,阿里云提供了一条龙安装部署脚本,为开发者提供了更多的方便。
3。打包应用将web源码下载到本地,使用命令mvnpackage打成war包。如果不是maven工程,可以用类似ant打成war包。
4。上传war包Linux下面可以使用sftp上传war包,上传war包到指定目录后进行解压。
5。启动web服务将tomcat或jetty服务启动。
6。配置反向代理、绑定域名。
‘肆’ 如何将APP部署在阿里云服务器上
1。远程登录第一次购买ECS后,会把该ECS服务器的root账号、密码发送购买者的邮箱,然后购买者可以通过远程登录到ECS服务器。
2。安装web环境根据自己应用特点选择安装相关web服务器tomcat或者jetty,阿里云提供了一条龙安装部署脚本,为开发者提供了更多的方便。
3。打包应用将web源码下载到本地,使用命令mvnpackage打成war包。如果不是maven工程,可以用类似ant打成war包。
4。上传war包Linux下面可以使用sftp上传war包,上传war包到指定目录后进行解压。
5。启动web服务将tomcat或jetty服务启动。
6。配置反向代理、绑定域名。
‘伍’ 如何在阿里云上部署django
前提条件
1. 为 Python 应用程序安装 virtualenv 和 virtualenv wrapper,目的在于为 Python 项目创建独立的环境。
● 安装 pip
sudo apt-get install python-pip
● 安装 virtualenv
sudo pip install virtualenv
● 创建目录以存储您的 virtualenv
mkdir ~/.virtualenvs
● 安装 virtualenwrapper
sudo pip install virtualenvwrapper
● 将 WORKON_HOME 设置为您的 virtualenv 目录
导出 WORKON_HOME=~/.virtualenvs
● 将 WORKON_HOME 设置为您的 virtualenv 目录
导出 WORKON_HOME=~/.virtualenvs
● 将virtualenvwrapper.sh添加到.bashrc
将此行添加到 ~/.bashrc 的末尾,以便加载 virtualenvwrapper 命令。/usr/local/bin/virtualenvwrapper.sh
退出,然后重新打开您的 shell,或者使用.bashrc or source ~/.bashrc命令重新加载 .bashrc,然后一切准备就绪。
2. 安装 git。
apt-get install git
3. 安装 Nginx 作为 Web 服务器,这样您便可在其之后运行您的应用程序。
Sudo apt-get install nginx
启动您的第一个 Linux 实例
接下来向您介绍使用阿里云管理控制台运行 ECS 实例的相关步骤。
1. 登录到您的帐户,然后导航到“产品与服务”部分下的“云服务器”。单击侧边栏菜单中的概览。这会显示运行中的实例列表。单击购买实例从任意地域购买实例,或者继续到下一步创建新实例。
2. 单击侧边栏菜单中的实例。在实例列表中选择所需地域,然后单击右上方栏中的创建实例。
● 将其保存到应用程序目录上的 uwsgi.ini。如需进一步了解如何编写 ini 文件,请参阅Python/WSGI 应用程序快速入门。运行此命令以启动您的应用程序。
uwsgi uwsgi.ini (您的 ini 文件)
12. 更改 nginx 配置文件以用于应用程序。
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name localhost; location /static/ { include uwsgi_params; alias /root/todoApp/public/; } location / { include uwsgi_params; uwsgi_pass unix:/tmp/uwsgi.sock; } }
13. 重启 nginx,随后您的应用程序将启动并在端口 80 上的 nginx 之后运行。
‘陆’ python程序怎么部署到云服务器
你需要登录云服务器管理控制台,记录被我打马赛克位置的公网ip。
登录服务器
windows推荐下putty进行连接远程服务器,linux和macos不需要那么麻烦,ssl就行了。
putty
在下图的host name中输入你的公网IP,点击open。
putty界面
输入密码,看不见输入不要慌,linux就是这样保护安全的。
Paste_Image.png
登录成功界面见下图,然后想怎么操作就怎么操作了。
登陆成功界面
运行我的python文件
推荐FileZilla进行文件传输(不具体说明了),我上传了我的flask网站项目
我的项目
记住服务器同时有Python2和Python3,
python
运行的时候记得使用合适的版本,我用的是虚拟环境(自行网络如何创建虚拟环境)
在运行python之前先安装一个screen,他可以将一个程序在后台运行
sudo apt-get install screen
运行python文件,成功后按下ctrl+A和ctrl+D可以隐藏。隐藏后可以输入screen -r 恢复。
运行成功
‘柒’ 如何将自己的项目部署到阿里云服务器之【服务器购买】
1.打开阿里云 服务器购买 地址。
2.肯定是要注册登录的(支付宝,钉钉都可以的)。这个过程就自己完成吧。
3.选择如下就是我购买的服务器(若要购买其他的看自己经济实力了。)
4.这个配置什么都是按照默认的就好了,按照提示一步一步往下走,直到付款成功。这里就不再依次截图了。
5.付款成功后打开: 阿里云控制台 就能看到你刚刚的订单消费。
6.点击已开通的云产品----云服务器ECS,就可以查看你的这台服务器详情。
‘捌’ 如何在阿里云上部署php后端
首先你需要买一个阿里云服务器,买的时候可以选择操作系统(买完之后在控制台也可以更改操作系统)我使用的是CentOS,买完服务器之后需要添加一个多语言环境,这个需要到云市场搜索“多语言环境”并购买,有免费的,有收费的,看你需要哪一种,我用的免费的。然后进入控制台,找到云服务器ECS进入云服务器ECS,点击实例,里面有你购买的服务器点击更多,然后重置密码,重置密码后需要重启服务器,点击管理,右上角有重启选项,配置好之后返回,点击远程连接,这时他会给你一个管理终端密码,记住这个密码。
然后输入管理终端密码进入服务器。进入时需要输入登陆账号(默认是root) 和密码(刚刚重置的密码)然后就连接成功。接下来需要下载Xftp和Xshell,Xftp是用于文件传输,也就是将你本地的php网页传输到阿里云服务器上,Xshell是登录到阿里云服务器。
打开Xshell,新建会话取名字,我的名称是test,协议选SSH,主机是阿里云服务器的公网ip地址,在控制台的实例中可以看到。然后输入用户名(root)和密码就可以用Xshell操作阿里云服务器了。之后如果你的多语言环境(上面有提到)配置好了,那么打开浏览器输入公网地址会有下面的页面出现(如果被拒绝请关闭阿里云服务器的防火墙,输入service iptables stop):点击《CentOS Nginx PHP JAVA多语言镜像使用手册V1.6.pdf》,建议将手册看一看,里面有很多操作我就不一一说了。注意到有一个 phpMyAdmin ,这是阿里云服务器的数据库,点击进入可以用本地浏览器操作。phpMyAdmin的用户名和密码在使用手册里有,自己去看下。登陆后将你本地的数据库导入,你需要新建一个数据库(跟本地数据库相同),然后把从本地数据库导出的SQL文件导入到阿里云服务器上,数据库导入就成功了。 将你需要部署的网站部署到网站根目录下,就可以访问你的网站了。具体将Xshell打开,确保你也下载了Xftp,点击新建文件传输。它会自动运行Xftp,左边是你本地的目录,右边是你的阿里云的目录,找到你的php文件,将php文件拖入右边网站根目录下,就可以访问网站了,注意是网站根目录不是root。如果还有不懂的可以去后盾人看看相关的教材。希望对你有用。