本文指导安装Apache2, mod_wsgi 4.6.5, Django2.1,以及安装过程中可能出现的问题及解决方法 。
1,安装Apache2.4
我本机是Ubuntu16.04的系统,如果时CenterOS,使用yum安装就好了.
sudo apt install apache2 这个安装一般没有什么问题
2,源码编译安装Python3.6
源码地址:https://www.python.org/ftp/python/3.7.1/Python-3.6.9.tgz
编译安装相关命令如下:
tar -zxf Python-3.6.9.tgz
cd Python-3.6.9
./configure --prefix=/usr/local/python36 --enabled-shared --enable-loadable-sqlite-extensions
配置选项 --prefix指定安装目录,跟其他Python环境独立开来,也方便不用的时候删除;
--enable-shared 启用共享库,mod_wsgi需要Python开发库支持;
--enable-loadable-sqlite-extensions django默认使用sqlite数据库
make
sudo make install
3, 编译安装mod_wsgi4.6.5
下载地址: https://github.com/GrahamDumpleton/mod_wsgi/releases
编译安装过程,如有不详细的地方,请参考:https://modwsgi.readthedocs.io/en/develop/user-guides/installation-issues.html#
tar xvfz mod_wsgi-X.Y.tar.gz
./configure --with-apxs=/usr/bin/apxs
--with-python=/usr/local/python36/bin/python3.6
配置选项--with-apxs 如果没有执行sudo apt install apache2-dev
--with-python 指定上面安装的Python路径
make
make install
安装完成可以看下:
文章插图
4, Apache配置支持wsgi
sudo vim /etc/apache2/site-available/wsgi.conf
<VirtualHost *:80>
WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
#WSGIPythonHome /path/to/venv
#WSGIPythonPath /path/to/mysite.com
# 使用 mod_wsgi 后台模式,"Daemon mode" 是运行 mod_wsgi 的推荐模式
WSGIDaemonProcess example.com python-home=/path/to/venv python-path=/path/to/mysite.com
WSGIProcessGroup example.com
<Directory /path/to/mysite.com/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
# 提供文件服务
Alias /robots.txt /path/to/mysite.com/static/robots.txt
Alias /favicon.ico /path/to/mysite.com/static/favicon.ico
Alias /media/ /path/to/mysite.com/media/
Alias /static/ /path/to/mysite.com/static/
<Directory /path/to/mysite.com/static>
Require all granted
</Directory>
<Directory /path/to/mysite.com/media>
Require all granted
</Directory>
</VirtualHost>
注意事项:
如果多个 Django 站点运行在同一 mod_wsgi 进程,它们会共用最先启动的站点配置 。能通过以下修改改变行为:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "{{ project_name }}.settings")
【Apache2+Django+Python3.6部署】wsgi.py 中也这么改:
os.environ["DJANGO_SETTINGS_MODULE"] = "{{ project_name }}.settings"
上传文件名称包含非 ASCII 字符的文件时,若抛出 UnicodeEncodeError,确认 Apache 是否被正确配置,能接受非 ASCII 文件名:
export LANG='en_US.UTF-8'
export LC_ALL='en_US.UTF-8'
常见的配置文件路径是 /etc/apache2/envvars
5, 启用网站
启用配置/弃用
sudo a2ensite/a2dissite path/to/wsgi.conf
检查你的配置文件
apache2ctl configtest如果有问题,可以根据提示解决
sudo service apache2 start/restart
6, 最后
curl http://localhost/api 检查你的网站,也可以在浏览器打开相应的地址
文章插图
推荐阅读
- 三江县,积极部署早春茶开采仪式准备工作
- 不知道这7个网络架构及部署常识,不能说自己是网络运维工程师
- Docker容器部署Zabbix监控系统
- PHP+Nginx部署配置文件正确优化改良详解
- 纯电动汽车与汽油车能源成本对比
- 只要输入网址,就知道网站所有信息
- 使用SQL Compare命令行来自动化数据库部署
- Linux死锁检测-Lockdep
- 11个审查Linux是否被入侵的方法
- 你真的会洗脸吗?这6个洗脸误区你别碰