用 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
没有提示则表示安装成功