Mac下搭建Django+XAMPP(Mysql+Apache)+Python网站开发环境
转自:http://blog.delai.me/2010/08/mc-django-mysql-python.html
最近需要用django做个内部网站,在Mac下搭了个开发环境,由于Mac方面资料不多,前前后后折腾了一个下午才搞定。总结一下,按照下面的步骤安装一定OK。
原有环境:
Mac Snow Leopard 10.6.4, 系统自带的Python 2.6。
一、XAMPP
它包含了MySQL,PHP等东西,绿色软件,好处是,部署简单,更新方便。具体中文介绍看这里
下载安装很简单到只要移动一下鼠标,看这里:
这是个绿色软件,事实上就是一个叫XAMPP的文件夹,我把它放在了/Application 里面,如果要卸载,把/Application/XAMPP卸载即可。
我安装的是1.7.3版本
二、Python
系统自带的2.6版本。但默认是位模式的,为了和XAMPP里32位的mysql配合,需要将其改成32位模式:在shell里执行下面代码:
defaults write com.apple.versioner.python Prefer-32-Bit -bool yes
三、Mysql
1)如果XAMPP的目录里没有include文件夹(里面有mysql的一些头文件),需要将32位源码安装包里的include文件夹放到XAMPP的目录里,如/Applications/XAMPP/xamppfiles。可以从这里下载源码安装包,选Mac OS X ver. 10.6 (x86, 32-bit), Compressed TAR Archive 下载。
2)修改PATH, 把/Applications/XAMPP/xamppfiles/bin添加到PATH里面,这样shell里就能使用mysql命令了
我安装的是1.7.3版本
四、MySQLdb for Python (让python能使用mysql)
1)这是Python和MySQL的连接模块。这里下载 。解压后一次执行一下命令:
sudo python setup.py clean
sudo python setup.py build
sudo python setup.py install
2)测试:shell里输入python打开python命令行,输入import MySQLdb回车,如无任何输出,说明安装成功
我安装的是1.2.3版本
五、Django
安装下载很简单,看这里
我安装的是1.2.1版本
判断是否安装成功:
按照官方指南 part one部分做下来,如果没出现什么错误,说明安装成功了。
六、Django用Apache作为web服务器
以下内容假设前提是你已经跟着django官方指南 part 1 到 part 4做过一遍了,对django有个大概的了解了,针对的是Mac,其他平台也是类似的,这年头装逼的软件都喜欢玩跨平台的。
1)MOD_WSGI (让Python(Django)能使用Apache作为web服务器)
1. Downloaded and installed Xcode.
2. Download and unpack mod_wsgi-2.6.tar.gz
3. Terminal “make distclean”
4. Terminal “./configure
5. Terminal “make”
6. Terminal “sudo make install”
7. edit “/Applications/XAMPP/xamppfiles/etc/httpd.conf” add lines below
#add python support
LoadModule wsgi_module modules/mod_wsgi.so
AddType text/html .py
#information about the xxx setting profile
WSGIScriptAlias /xxx /Applications/XAMPP/xamppfiles/django.wsgi
<Directory /Applications/XAMPP/xamppfiles>
Order deny,allow
Allow from all
</Directory>
8. 在/Applications/XAMPP/xamppfiles/添加一个文件 文件名:django.wsgi 如下内容:
import os
import sys
sys.path.append(‘/Users/arthasshih/python/django_pro’)
os.environ['DJANGO_SETTINGS_MODULE'] = ‘xxx.settings’
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
这是我的配置,需要修改的是xxx.settings(xxx是django工程的名字) 和 /Users/arthasshih/python/django_pro(这个是django工程xxx所在的目录) 具体看 这里 和 这里 和 这里
这样,就可以直接使用http://localhost/xxx来登录这个django网站了,由Apache来handle访问流量,而不需要使用manage.py runserver,比较这玩意儿只是简易的web服务器,用于测试可以,用来做对外服务是不行的。
2)使用静态文件
对于css, image, js等外部元素,Django不会对其进行直接管理的,官方的简易是,把这些静态文件与Django隔离开来(打网站确实都是这么做的),以保持Django内部逻辑的一致性。对于单机环境,可以利用Apache搞个目录或domain专门放这类文件,在html页面的head里直接引用即可,跟Django没关系。
1. edit “/Applications/XAMPP/xamppfiles/etc/httpd.conf” add lines below
#total media location like css js image
Alias /media/ “/Users/arthasshih/python/django_pro/media/”
<Directory “/Users/arthasshih/python/django_pro/media/”>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
里面有些部分需要修改成你自己的配置。
这样,你就可以把各种静态文件放到/Users/arthasshih/python/django_pro/media/下面,比如media下有style.css文件。在django的html页面文件里head部分加入
<link rel=”Stylesheet” href=”/medit/style.css” type=”text/css”/>
即可。这里/media对应的就是http://localhost/media/,实际指向/Users/arthasshih/python/django_pro/media/
3)解决Django admin页面显示不正常的情况
由于使用了Apache,可能会导致后台admini打开来显示不正常,具体表现就是没有正确加载css文件。修改Apache配置把他需要的路径选择好就可以了。可以举一反三。
编辑加入
#media location for django admin
Alias /admin_media “/Library/Python/2.6/site-packages/django/contrib/admin/media”
<Directory “/Library/Python/2.6/site-packages/django/contrib/admin/media”>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
这样,就有了个http://localhost/admin_media指向django admin的css等文件所在位置。
然后在工程的setting.py文件里配置一下这一信息即可:修改其中的
ADMIN_MEDIA_PREFIX = ‘/admin_media/’
这样,django admin这个app就知道从http://localhost/admin_media下面加载需要的css文件了。
#total media location like css js image
Alias /media/ “/Users/arthasshih/python/django_pro/media/”
<Directory “/Users/arthasshih/python/django_pro/media/”>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
里面有些部分需要修改成你自己的配置。
这样,你就可以把各种静态文件放到/Users/arthasshih/python/django_pro/media/下面,比如media下有style.css文件。在django的html页面文件里head部分加入
<link rel=”Stylesheet” href=”/medit/style.css” type=”text/css”/>
即可。这里/media对应的就是http://localhost/media/,实际指向/Users/arthasshih/python/django_pro/media/
4)解决Django admin页面显示不正常的情况
由于使用了Apache,可能会导致后台admini打开来显示不正常,具体表现就是没有正确加载css文件。修改Apache配置把他需要的路径选择好就可以了。可以举一反三。
编辑加入
#media location for django admin
Alias /admin_media “/Library/Python/2.6/site-packages/django/contrib/admin/media”
<Directory “/Library/Python/2.6/site-packages/django/contrib/admin/media”>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
这样,就有了个http://localhost/admin_media指向django admin的css等文件所在位置。
然后在工程的setting.py文件里配置一下这一信息即可:修改其中的
ADMIN_MEDIA_PREFIX = ‘/admin_media/’
这样,django admin这个app就知道从http://localhost/admin_media下面加载需要的css文件了。
结束
http://stackoverflow.com 这个网站非常好,关于程序的很多问题能在上面解决,强烈推荐。