CentOS6下配置Django+Apache+mod_wsgi+Sqlite3过程
0. 安装环境:
CentOs版本: VMWare中CentOs 6.4
Apache版本: Httpd 2.2.15 http://httpd.apache.org/
Sqlite3版本: Sqlite3 3.8.11.1 http://www.sqlite.org/
Python版本: Python 3.4.0 https://www.python.org/
Django版本: Django 1.8.5 https://www.djangoproject.com/community/
mod_wsgi版本: Mod_wsgi 4.4.15 https://pypi.python.org/pypi/mod_wsgi
1. 安装CentOS
注意:
网络适配器选择
网络配置 /etc/sysconfig/network-scripts/ifcfg-eth0
克隆镜像
删除 /etc/sysconfig/network-scripts/ifcfg-eth0 中的MAC地址
删除关联 /etc/udev/rules.d/70-persistent-net.rules
重启系统 reboot
搭建服务器前:
确认是否已安装:gcc, gcc-c++, zlib
关闭防火墙
关闭SELinxu
检查80端口是否被占用
2. 安装Apache服务器
Apache就是Linux中的httpd
yum install httpd httpd-devel
测试
service httpd start
在浏览器输入IP,出现下图则成功
查看是否已安装某软件(针对rpm和yum方式安装的,无法查看源码安装的)
rpm -qa httpd
3. 安装Sqlite3
tar -zxvf sqlite-autoconf-3081101.tar.gz cd sqlite-autoconf-3081101 ./configure make make install
4. 安装Python3.4
yum install zlib zlib-devel tar -zxvf Python3.4.0.tgz cd Python3.4.0 vim Modules/Setup.dist 找到 #zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz 取消该行注释 ./configure --enable-shared make && make install #炒鸡慢......
运行会出错
# python3.4
python3.4: error while loading shared libraries: libpython3.4m.so.1.0: cannot open shared object file: No such file or directory
解决方案:
新建下面文件
vim /etc/ld.so.conf.d/python2.7.conf
加入内容:
/usr/local/lib
保存退出后运行:
ldconfig
为python3.4创建连接文件,取代原来的python
rm -f /usr/bin/python (只是删除连接,python2.6本身并没有删除)
ln /usr/local/bin/python3.4 /usr/bin/python
此时输入python会打开python3.4
修改后yum命令可能无法使用了
解决方案:
vim /usr/bin/yum
修改#!/usr/bin/python 为 #!/usr/bin/python2.6 (系统默认安装的)
5. 安装Django
tar -zxvf Django-1.8.5.tgz
cd Django-1.8.5
python setup.py #比较慢...
测试
service httpd stop
django-admin startproject xxx
cd xxx
python manage.py runserver 0.0.0.0:80
可以通过本地机浏览器访问虚拟机IP,出现It worked!
6. 安装mod_wsgi
安装mod_wsgi-3.4.tar.gz会报错
安装mod_wsgi-4.4.15.tar.gz
tar -zxvf mod_wsgi-4.4.15.tar.gz
cd mod_wsgi-4.4.15
./configure
make && make install
生成编译好的mod_wsgi.so文件 /usr/lib/httpd/modules/mod_wsgi.so
7. 配置Apache和Django
参考文档: How to use Django with Apache and mod_wsgi
a 配置httpd.conf
vim /etc/httpd/conf/httpd.conf
导入模型(一堆LoadMoudule处)
LoadModule wsgi_module modules/mod_wsgi.so
添加目录(最末尾)
<Directory /var/www/html/mysite/mysite>
<Files wsgi.py>
order deny,allow
allow from all #Apache小于2.4版本, 2.4及以上版本则将两句改为:require all granted
</Files>
</Directory>
b 部署Django
cd /var/www/html
django-admin startproject mysite
Django 1.4以上版本会自动在mysite/mysite下创建wsgi.py
重启httpd服务器 service httpd restart
浏览器输入IP即可