全部主题 | Blog | 时讯 | @fullstackpython | Facebook | 源码
操作系统
操作系统运行在服务器主机或者虚拟服务器主机上,并且控制计算资源的使用。操作系统当然也包括一种安装必要程序的途径,好让你的 Python web 应用能够运行。
为何操作系统是必要的?
操作系统使得我们觉得理所当然的许多计算任务变得简单。例如,操作系统能够写入文件、进行网络通信以及同时运行多个程序。否则的话,你需要自己完成底层的实现来控制 CPU、内存、网卡以及许多其它的硬件。
如果不使用现有的诸如 Linux、Mac OS X 或者 Windows 操作系统的话,那你就不得不为你的 web 应用编写一个新的操作系统。 如此一来,你就不可能再为你的 Python web 应用增加新功能了,因为你会忙于在你的汇编代码中追踪内存泄露问题,前提是你能够走到这一步。
幸运的是,开源社区为 Python 世界提供了坚若磐石的免费操作系统 Linux 来运行我们的应用程序。
操作系统推荐
唯一推荐用于在生产环境中部署 Python web 堆栈的操作系统是 Linux。有好几种常见的 Linux 发行版可以运行在生产服务器上。Ubuntu 长期支持版(LTS)、Red Hat Linux 企业版以及 CentOS 都是可行的选择。
Mac OS X 适合用于开发。 Windows 和 Mac OS X 都不适合在生产环境下部署,除非你有必须要替代 Linux 的充足理由。
Ubuntu
Ubuntu 是由 Canonical 公司推出的 Linux 发行版。 Ubuntu 软件包基于 Debian 发行版,包括这个 aptitude 包管理器。桌面版 Ubuntu 绑定了 GNOME(直到 11.04)或者 Unity(11.10 到现在)来提供用户界面。
Ubuntu 长期支持 (LTS) 发行版是推荐用于部署的发行版本。Canonical 会为 LTS 版本提供长达 5 年的后期更新支持。Canonical 每两年就会推出新的 LTS 发行版,这就为升级提供了非常方便的途径,同时灵活地允许在必要的情况下跳过其他的 LTS 发行版进行升级。截至 2016 年 4 月, 16.04 Xenial Xerus 是最新的 Ubuntu LTS 发行版。 Xenial Xerus 包括了 Python 3.5 作为其默认的 Python 版本,与 Ubuntu 14.04 LTS 上的 2.7 版本相比,这是一个主要的更新。
Ubuntu Python 软件包
在 Linux 服务器上有好几种 Aptitude 软件包来运行 Python 栈。这些包是:
python-dev 用于头文件和 Python 静态库。
python-virtualenv 用于创建并管理 Python virtualenvs 来隔离库的依赖。
Red Hat 和 CentOS
Red Hat Linux 企业版 (RHEL) 以及 社区企业版操作系统 (CentOS) 都是同一个发行版。这两个版本的主要区别是 CentOS 是开源的操作系统,它继承自 RHEL,并且是自由授权,免费使用的。
RHEL 和 CentOS 与基于 Debian 的 Linux 发行版相比,使用了不同的包管理器和命令行界面: RPM 包管理器(RPM)以及 Yellowdog 更新,修改(YUM)。RPM 使用特殊的 .rpm 格式的文件来管理库以及应用程序的打包和安装。YUM 提供了命令行界面用于和 RPM 系统交互。
操作系统相关的资源
Linux 性能 是一个很精彩的网站,上面有大量关注性能的资料链接,这些资料当你在任何的 Linux 发行版上开发或部署时都很有用。
Lifehacker 的 Linux 发行版选择指南.
Linux 之旅 是非常不错的 Linux 基础学习课程,比如可以学习命令行、包管理、文本处理。当然也有更多涉及高级话题的课程,比如内核是如何工作的,怎样设置日志以及管理设备。
Ops 学校课程 是学习 Linux 基本原理以及系统管理员通常会怎样开展工作的综合资源。
既然你的将要使用 Linux 作为生产环境下的操作系统,那么熟悉 Unix/Linux 命令和它的哲学就是非常重要的事情了。学习 这篇 Unix 教程 来对这个操作系统更加熟悉。
使用服务器的最初 5 分钟 说明了最初几个需要在你使用的任何服务器上应当手动或者自动完成的 安全步骤。
“数字海洋(Digital Ocean)”有一篇文章详细介绍了 在 Ubuntu 上配置 Python web 应用的步骤。
深入 Linux 是一系列讲解 Linux 在幕后是如何工作的文章,它从低层的启动过程开始介绍。
操作系统学习清单
选择一款 Linux 操作系统,可以是基于 Debian 的发行版如 Ubuntu,或者是基于 Fedora 的发行版如 CentOS。
通过一些基础的步骤加强系统的安全性。 安装一些基本的安全软件包,如 fail2ban 和 unattended-upgrades。 创建一个拥有 sudo 特权的新用户,并且禁用 root 登录。禁止仅使用密码登录选项,并且使用一个公私钥对来替换。 阅读下面列出的更多关于增强系统安全的资源。
安装特定的 Python 软件包为 Python 应用准备好运行环境。根据你选择的发行版来安装所需要的软件包。
仔细阅读 web 服务器,因为部署环节中的下一个就是安装一个 web 服务器。
在你设置好操作系统后,就应该配置 web 服务器了。
想找到一个完整的,一步一步的部署方案吗?请看《The Full Stack Python Guide to Deployments》.
邮件获取更新
目录
1. 简介学习编程为什么用 Python?Python 2 还是 3?企业 PythonPython CommunityBest Python Podcasts最佳 Python 资源最佳 Python 视频2. 开发环境VimEmacs3. 核心语言生成器推导式4. Web 开发Web 框架DjangoFlaskBottlePyramidMorepath其它 Web 框架Web 设计级联样式表 (CSS)JavaScriptWebSockets模板引擎Web 应用安全静态网站生成器Jinja25. 数据关系型数据库NoSQL 数据存储对象关系映射器PostgreSQLMySQLSQLite6. Web APIsAPI 集成API 的创建Twilio7. 部署服务器平台即服务(PaaS)操作系统Web 服务器WSGI 服务器源码控制应用程序依赖静态内容任务队列配置管理持续集成日志监控Web 分析Docker缓存微服务DevOpsNginxApache HTTP 服务器CaddyGreen Unicorn (Gunicorn)UbuntuPelicanLektorMkDocs8. 测试单元测试集成测试代码度量调试9. MetaBotsChange LogFuture DirectionsAbout the AuthorSQLAlchemyPeewee …或者显示全部目录内容.
操作系统
重要的更新内容会通过 Twitter 账号@fullstackpython发布。
需要更加详细的教程吗?请看 《The Full Stack Python Guide to Deployments》。
Chapters
1. 简介2. 开发环境3. 核心语言4. Web 开发5. 数据6. Web APIs7. 部署 » 操作系统 8. 测试9. Meta …or view the full table of contents.
This site is based on Matt Makai's project Full Stack Python, thanks for his excellent work!
此网站由 @haiiiiiyun 和 开源爱好者们 共同维护。 若发现错误或想贡献,请访问: Github fullstackpython.cn 项目