系统环境:CentOS8.1.1911 server with GUI 安装。
默认已经安装好 python3.6 pip
一、安装
1、安装必须组件:
dnf install httpd httpd-devel gcc python36-devel redhat-rpm-config -y
2、在pip下安装mod_wsgi和django
pip3 install mod_wsgi django
二、配置
1、导出apache所需的mod_wsgi模块
[root@bogon www]# mod_wsgi-express install-module
LoadModule wsgi_module "/usr/lib64/httpd/modules/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"
WSGIPythonHome "/usr"
把上面命令产生的第一行添加到apache的配置文件httpd.conf里:
vi /etc/httpd/conf/httpd.conf
添加:
LoadModule wsgi_module “/usr/lib64/httpd/modules/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so”
2、编辑 /etc/httpd/conf.d/django.conf:
WSGIPythonHome "/usr"
<VirtualHost *:80>
ServerName sheng.com
ServerAlias www.sheng.com
ErrorLog /var/log/httpd/sheng/error_log
CustomLog /var/log/httpd/sheng/access_log common
Alias /static /var/www/html/sheng/static
<Directory /var/www/html/sheng/static>
Require all granted
</Directory>
<Directory /var/www/html/sheng/sheng>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess sheng python-path=/usr/lib/python3.6/site-packages
WSGIScriptAlias / /var/www/html/sheng/sheng/wsgi.py
</VirtualHost>
这里面出现了两个/usr,是和上面导出apache所需模块产生的文件夹一致
这个文件放在/etc/httpd/conf.d/文件夹下,这个文件夹下所有以.conf结尾的文件都会被httpd.conf包括
3、编辑/etc/hosts:
127.0.0.1 www.abc.com
这里www.abc.com是你的域名,是不是你注册的都没关系,这里只是为了测试,你就用www.abc.com也可以
添加ALLOWED_HOSTS
4、使用django-admin在/var/www/html下创建一个项目,项目名称rocsite:
django-admin startproject rocsite
5、 编辑/var/www/html/rocsite/rocsite/settings.py配置文件:
vi myproject/settings.py
ALLOWED_HOSTS = [‘www.abc.com’]
LANGUAGE_CODE = ‘zh-Hans’
TIME_ZONE = ‘Asia/Shanghai’
6、修改wsgi入口文件
vi myproject/wsgi.py
import os, sys
os.environ.setdefault(“DJANGO_SETTINGS_MODULE”, “rocsite.settings”)
sys.path.append(‘/var/www/html/rocsite’)
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()