
前提条件
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
● 将 virtualenvwrappersh 添加到 bashrc
将此行添加到 ~/bashrc 的末尾,以便加载 virtualenvwrapper 命令。/usr/local/bin/virtualenvwrappersh
退出,然后重新打开您的 shell,或者使用 bashrc or source ~/bashrc 命令重新加载 bashrc,然后一切准备就绪。
2 安装 git。
apt-get install git
3 安装 Nginx 作为 Web 服务器,这样您便可在其之后运行您的应用程序。
Sudo apt-get install nginx
启动您的第一个 Linux 实例
接下来向您介绍使用阿里云管理控制台运行 ECS 实例的相关步骤。
1 登录到您的帐户,然后导航到“产品与服务”部分下的“云服务器”。单击侧边栏菜单中的概览。这会显示运行中的实例列表。单击购买实例从任意地域购买实例,或者继续到下一步创建新实例。
2 单击侧边栏菜单中的实例。在实例列表中选择所需地域,然后单击右上方栏中的创建实例。
3 系统会将您重新定向到“产品购买”控制台,在此您需要选择偏好的资源包 - 对 ECS 实例和数据传输提供特殊定价的初级资源包或提供两种定价模式的高级购买资源包。您可以根据自身需求选择订阅(按月或按年)或者按量付费。此案例中,我们选择了“按量付费”。
4 在此窗口中,选择要在其中启动 ECS 实例的数据中心地域和可用性区域。如果选择了地域但未选择可用性区域,系统会将实例随机放在任何区域。
5 现在您需要选择自己想要创建的实例类型。根据自身需求,从“生成”选项卡中选择生成实例类型。生成类型根据配置和所用的计算能力表示不同的实例类型。
6 接下来,选择网络类型以启动您的 ECS 实例。可根据自身需求选择经典网络或专有网络。在经典网络中,阿里云以分布式方式分配 IP 地址。它适合于需要简单快速地使用 ECS 的用户。专有网络更多的是一种逻辑隔离私有网络,它支持专用连接。它适合于熟悉网络管理的用户。选择适当的网络类型后,选择网络计费类型:数据传输或固定带宽。在这两种情况下,您都需要设置网络带宽峰值(最大数据传输速率)。
7 现在,您需要选择 *** 作系统。每个选项下都提供了不同 *** 作系统版本的列表。选择 Ubuntu。
8 根据自身需要,从下拉菜单中选择系统磁盘类型。您还可以通过单击“添加磁盘”向此列表添加更多磁盘。
9 在“安全设置”部分中,您可以创建密码以提高安全性,或者在此阶段跳过此步骤并稍后从管理控制台执行此 *** 作。
10 在“采购计划”部分中,键入您的实例名称并设置要启动的实例的数量。
11 在“概览”部分查看配置详情和总价,然后单击立即购买。
12 单击开通确认业务订单并启动实例。
13 启动实例后,您可以在控制台的实例选项卡中查看该实例。
安装和部署 Django 应用程序
您已使用阿里云管理控制台创建和启动 ECS 实例,接下来让我们了解如何安装和部署 Django 应用程序。
1 使用 ssh 命令登录到您的服务器
2 输入密码
3 通过创建一个新的 virtualenv 为部署 Django 应用程序设置环境:
mkvirtualenv DjangoApp
要退出新的 virtualenv,请使用 deactivate。
您可以使用 workon 在环境之间切换。要加载或在 virtualenv 之间切换,请使用 workon 命令:workon DjangoApp
4 在您的当前环境中安装 Django
pip install Django
5 使用 django-admin 命令创建样本项目并将目录更改为项目文件夹。
django-admin startproject todoApp
cd todoApp/
6 迁移或引导您的数据库。
python managepy migrate
7 创建超级用户以访问管理面板。
python managepy createsuperuser
8 设置用户后,通过运行由 managepy *** 作的 runserver 命令测试您的应用程序
python managepy runserver 0000:8000
您将看到以下内容在端口 8000 上运行
转至 /admin,这是您的管理面板,您可在此管理应用程序。
现在使用 Nginx 将您的应用程序置于 Web 服务器之后。
9 创建数据库架构 开通 python 环境。
● 将目录更改为 Django 项目目录
● 运行以下命令
python managepy migrate
10 收集所有静态文件(css、js 等)
● 运行以下命令以在任意特定位置收集所有静态文件
Python managepy collectstatic --noinput
● 开发人员负责将 STATIC_URL 路径设置为将收集所有静态文件的位置。
● 这些变量在项目目录内的 settingpy 中定义。
1 STATIC_URL
2 STATICFILES_DIRS
3 STATIC_ROOT
11 使用 uwsgi 服务器安装 uwsgi 库并启动服务器。
pip install uWSGI
● 创建用于部署 Django 应用程序的 ini 文件vim uwsgiini
● 将其保存到应用程序目录上的 uwsgiini。如需进一步了解如何编写 ini 文件,请参阅 Python/WSGI 应用程序快速入门。运行此命令以启动您的应用程序。
uwsgi uwsgiini (您的 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/uwsgisock; } }
13 重启 nginx,随后您的应用程序将启动并在端口 80 上的 nginx 之后运行。
Nginx 结合FastCGI 程序可以搭建高性能web service程序。
(a)Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用。FastCGI接口在Linux下是socket(这个socket可以是文件socket,也可以是ip socket)。为了调用CGI程序,还需要一个FastCGI的wrapper(wrapper可以理解为用于启动另一个程序的程序),这个wrapper绑定在某个固定socket上,如端口或者文件socket。
(b)当Nginx将CGI请求发送给这个socket的时候,通过FastCGI接口,wrapper接收到请求,然后派生出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据;接着,wrapper再将返回的数据通过FastCGI接口,沿着固定的socket传递给Nginx;最后,Nginx将返回的数据发送给客户端。这就是Nginx+FastCGI的整个运作过程,如图1所示。
FastCGI接口方式在脚本解析服务器(CGI应用程序服务器)上启动一个或者多个守护进程对动态脚本进行解析,这些进程就是FastCGI进程管理器,或者称为FastCGI引擎。 spawn-fcgi与PHP-FPM都是FastCGI进程管理器(支持PHP和C/C++)。
这是C#的一个特性,叫显式实现接口,通过这个方式,对象只能被当作接口引用的时候才能调用相关的方法。
这个东西出现的目的是因为java里面没有相关的概念,假如java里面一个对象要实现两个接口,一个是ICalculator,一个是ICombiner,两个接口同时包含Add方法,就没办法以不同的意义分别实现。而C#里面如果你使用两个接口实现两个不同的Add方法,那么在对象当作ICalculator的时候执行的是ICalculatorAdd的方法,而当作ICombiner的时候执行的是ICombinerAdd方法。但是当对象是实现类的时候是访问不到这两个方法的,只能强制转换((ICalculator)obj)Add这样调用
这应该是电脑显卡的驱动程序,有时候你玩游戏时启动显卡驱动,直接关掉就行了。
选中该进程->右键->结束进程
然后控制面板,卸载程序中,卸载显卡驱动,再下载一个驱动精灵或者驱动大师重新安装一下
希望对你有帮助
望采纳
以上就是关于如何在阿里云上部署django全部的内容,包括:如何在阿里云上部署django、nginx支持webservice吗、c# 中可以用接口直接定义一个变量吗为什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)