用 Python 搭建一个 Web 服务器

文章结构

  一、安装  Apache、Python、django

  二、安装 mod_wsgi,Apache 为 Python 提供的 wsgi 模块

   三、将 Django 应用到 Apache 中

  四、安装并配置 postgreSQL,(并使用 psycopy2 Python模块操作 postgreSQL;可选)

  五、将 Django 的数据库设置为 postgreSQL

一、安装 Apache、Python、Django

二、安装 mod_wsgi

  mod_wsgi 官方文档:https://modwsgi.readthedocs.org/en/develop/user-guides/quick-installation-guide.html

  一般 linux 发行版包含的预编译包可能过时很久了,所以直接从源码编译

  因为是从源码编译,确保系统已经包含 httpd-devel(apxs apache 扩展工具)、python-devel(python )

  如果没有,那么就安装一个

sudo yum install httpd-devel python-devel

  获取 mod_wsgi 源码包:

wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.4.20.tar.gz

  解压源码包

tar xvzf 4.4.20.tar.gz

  载入目录,依次输入以下命令

./configure

./make

./make install

  安装完成,一般可以在目录 /var/lib64/httpd/modules 中查看

三、配置 apache

  加载 mod_wsgi

    在 Apache 配置文件中,将 mod_wsgi 添加进去

    打开 Apache 配置文件:

vim /etc/httpd/conf/httpd.conf

    添加:

LoadModule wsgi_module modules/mod_wsgi.so

    验证 Apache 是否加载模块 mod_wsgi

    重启 Apache:

systemctl restart httpd

    在命令终端输入:

httpd -M

    如果出现 wsgi_model(shared)字样,说明加载成功

  创建 Django 项目,并配置 Apache

    创建 Django 项目:

django-admin startproject mysite

    打开 Apache 配置文件:

vim /etc/httpd/conf/httpd.conf

    添加:

WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
WSGIPythonPath /path/to/mysite.com <Directory /path/to/mysite.com/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory> 

    重启 Apache:

      systemctl restart httpd

    配置完成!

四、安装并配置 postgreSQL,并使用 psycopy2 Python模块操作 postgreSQL

  安装postgreSQL 服务器

    使用 yum 安装

sudo yum install postgresql-client postgresql-server 

//可选安装包
postgresql-contrib //额外模块
postgresql-devel //开发工具
pgadmin3 //图形化工具

    初始化数据库

service postgresql initdb
chkconfig postgresql on

    开启数据库

systemctl start postgresql

    修改数据库配置文件,使得可以使用 psql -U 命令登陆(可略过)

vim /var/lib/pgsql/data/pg_hba.conf

    修改其中内容,将

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only
local all all md5

    中的 “ peer ” 改为 “ md5”

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only
local all all md5

    登陆数据库,其中 postgres 为管理员账号

psql -U postgres

    出现 postgres=# 则表示登陆成功

    如果出现密码错误的问题,输入

su postgres

    进入 “ bash-4.2$ ” 提示符下,输入

psql

    进入 “postgres=#” 提示符,输入

ALTER USER postgres PASSWORD 'newPassword';

    更改密码即可

  安装 psycopg2 ,Python 对 postgreSQL 的适配函数库

    使用 pip 安装

sudo pip install psycopg2

    进入 python 解释器,输入

import psycopg2 

    没有提示则表示安装成功

Centos 下,配置 Apache + Python + Django + postgresSQL 开发环境的更多相关文章

  1. window7 下配置python2.7+tornado3.3开发环境

    玩python的人大都在linux下进行开发,由于长期习惯在windows下开发代码,今天蛋疼尝试在window7下配置python2.7+tornado3.3开发环境,必然的中间遇到各种报错,但是最 ...

  2. 在Windows下配置Python+Django+Eclipse开发环境

    一.配置开发环境我的开发环境是:Python2.6.7 + Django1.6.2 + Eclipse1.安装Python2.安装Eclipse的Python插件PyDev如上两步如何操作请点击此进行 ...

  3. CentOS下配置Apache HTTPS

    一.安装Apache支持SSL/TLS yum install mod_ssl openssl 二.创建证书 证书(Cerificate)的基本作用是将一个公钥和安全个体(个人.公司.组织等)的名字绑 ...

  4. CentOS下配置apache+gitweb

    GitWeb支持多个版本库,可以对多个版本库进行目录浏览(包括历史版本),可以查看文件内容,查看提交历史,提供搜索及 RSS feed支持,也可以提供目录文件的打包下载等.可以看https://git ...

  5. Ubuntu16.04下配置VScode的C/C++开发环境

    博客转载:https://blog.csdn.net/weixin_43374723/article/details/84064644 Visual studio code是微软发布的一个运行于 Ma ...

  6. 17 win7 sp1 x64/VS2015下配置creo4.0二次开发环境——调用了众多开源库(ceres-solver,PCL1.8.0,office 2016COM接口,MySql数据库等)

    0 引言 本次开发环境的配置是在综合考虑了开源库的版本.VS版本以及CREO4.0的版本,同时针对甲方需求选择了win7 sp1 x64系统. 配置的过程中遇到了形形色色的问题,但是一一解决了.通过这 ...

  7. windows下python+Django+eclipse开发环境的配置

    1.JDK环境的安装 在http://www.java.com/zh_CN/download/faq/develop.xml 页面下,点击JDK下载,下载所需的jdk版本.直接点击安装即可. 2.py ...

  8. 阿里云 配置apache+python+django 环境 适合菜鸟

    云服务器环境:阿里云服务:20G+1M带宽+centos+512M 一.python安装: 刚开始没有好好利用centos 的yum方法.采用wget从python官网上下载的2.7.5版本.解压安装 ...

  9. ubuntu下配置Apache+mod_wsgi+Django项目(个人测试)

    经过了一个星期的摸索,查找资料以及实验,我搭建的环境基本能用(还有就是Django后台的静态文件加载的问题) 这里面只是介绍一下我的过程,因为对应Apache还不是很熟练,特别是配置文件.只能供大家参 ...

随机推荐

  1. mysql初始(6)

    随着mysql的运用不断加深,一些更复杂点的用法又需要总结起来. 1.将一个表中的数据插入到另一个表中: a.两张表字段相同,并且数据全部插入,命令如下:  INSERT INTO 目标表 SELEC ...

  2. WEB-INF目录

    背景: 在项目中,使用 "${pageContext.request.contextPath}/image/01.jpg"获取不到该图片.在浏览器中直接输入地址也找不到,报错404 ...

  3. 【工作感悟】——揭开“PM”的面纱

    [前言] 上次跟大家分享了面试的故事,小编觉得效果还不错,因此小编决定把工作感悟系列写下去,不过时间就不好说了.希望小伙伴们在评论列表中发表自己的看法和观点,积极参与啦~~ [背景] 初来Y公司,作为 ...

  4. Flink之状态之状态存储 state backends

    流计算中可能有各种方式来保存状态: 窗口操作 使用 了KV操作的函数 继承了CheckpointedFunction的函数 当开始做checkpointing的时候,状态会被持久化到checkpoin ...

  5. oracle约束条件

    约束条件有5种 非空约束(not null):约束该列一定要输入值 主关键字约束(primary key):用来唯一标示表中的一个列,一个表中的主键约束只能有一个 外关键字约束(foreign key ...

  6. 【题解】HAOI2012高速公路

    一节政治课的结果……推式子+推式子+推式子…… 首先注意到一个区间里面,选择(x, y)和(y, x)的费用是一样的.所以我们把这两种情况合为一种,那么现在询问的区间为(l, r),则一共的情况就有 ...

  7. MySQL之SELECT 语句详解

    本文参考实验楼的SELECT 语句详解结合自己操作部分而写成. 注意:大多数系统中,SQL语句都是不区分大小写的,但是出于严谨和便于区分保留字和变量名,在书写的时,保留字应大写,而变量名应小写.所谓的 ...

  8. Backup and Restore MySQL Database using mysqlhotcopy

    mysqlhotcopy is a perl script that comes with MySQL installation. This locks the table, flush the ta ...

  9. Working with large data sets in MySQL

    What does working with large data sets in mySQL teach you ? Of course you have to learn a lot about ...

  10. POJ1459:Power Network(多源点多汇点的最大流)

    Power Network Time Limit: 2000MS   Memory Limit: 32768K Total Submissions: 31086   Accepted: 15986 题 ...