Apache2+Django+Python3.6部署

本文指导安装Apache2, mod_wsgi 4.6.5, Django2.1,以及安装过程中可能出现的问题及解决方法。 1,安装Apache2.4 我本机是Ubuntu16.04的系统,如果时CenterOS,使用yum安装就好了. sudo apt install apache2 这个

本文指导安装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”)

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 检查你的网站,也可以在浏览器打开相应的地址

版权声明:(Apache2+Django+Python3.6部署)由互联网用户自发贡献,该文观点仅代表作者本人,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件标题或链接至 service#hao123w.com ,本站将立刻删除。
(0)
上一篇 2019年10月7日 下午4:42
下一篇 2019年10月7日 下午5:04
hao123w, hao123生活号 - 让生活更简单!,更多信息请访问 http://www.hao123w.com/