前言:
最近学习django框架。想在腾讯云的centos7上部署django+apache,试着找个简单的方法部署apache。
准备工作:
有python和Linux的基础,会使用命令行工具。拥有一台装了Linux并联网的电脑。一点点耐心。
我的运行环境
远程主机:腾讯云服务器,系统(centos7)
登录端:mac os + iterm2
开始安装
如果你使用腾讯云服务器,apache,python3,pip3,git等默认已经安装到了系统中。
如果没装apache可以这样装:
# yum install httpd
# yum install httpd-devel
httpd-devel
为开发版,包含一些库函数,必须安装。
其他软件安装方法同上。
python虚拟环境
安装
# pip3 install virtualenv
生成环境
# virtualenv <env_folder_name>
启动
# source ./<env_folder_name>/bin/activate
启动成功后 前边有个括号(wwwenv)
退出
# deactivate
安装django
# pip3 install django
安装mod_wsgi
pip 安装
# pip3 install mod_wsgi
验证安装成功否
# mod_wsgi-express start-server
浏览器打开http://localhost:8000
看到下图:
安装成功!
配置mod_wsgi
找到httpd.conf
centos7的在/etc/httpd/conf/
目录下
添加:
LoadModule wsgi_module /usr/lib64/httpd/modules/mod_wsgi.so
至最后一行
配置django项目
打开项目的settings.py
文件
添加STATIC_ROOT = os.path.join(BASE_DIR, 'static')
至文件中。
还有这里要修改:
INSTALLED_APPS =(
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'mod_wsgi.server',# 添加这行
)
要准备运行mod_wsgi-express,请确保首先将所有Django静态文件资源收集到Django设置文件中为它们指定的目录中:
$ python manage.py collectstatic
run django项目
tips:mod_wsgi不建议用root用户启动服务,需要指定用户和用户组。如果直接使用会报错,我比较偷懒的用一般用户登录,具体如何用root请参考教程。
现在,您可以通过运行以下命令来运行带有托管Django应用程序的mod_wsgi的Apache服务器:
$ python manage.py runmodwsgi
如果在开发环境中工作,并且您希望自动重新加载任何代码更改,则可以使用--reload-on-changes
选项。
python manage.py runmodwsgi --reload-on-changes
在浏览器地址输入
http://localhost:8000/<your urls>/
或
http://<远程服务器ip>:8000/<your urls>
已经可以加载django项目了。
就写到这里了,不懂的点下边自己研究。
mod_wsgi Pypi