Total Pageviews

Thursday, 5 October 2017

基于mod_wsgi模式安装Django

安装Apache和MySQL的时候尽量选择源代码编译安装,因为后面安装Python的MySQL扩展的时候需要用到MySQL的开发包及编译头文件。Python的版本最好为2.6.X的。
本文中源码的存放目录为:/usr/local/src,源代码均可以到各自的官方网站进行下载。
1、安装apache
#cd httpd-2.2.17
#./configure --enable-track-vars --enable-cgi --with-config-file-path=/opt/apache/conf --enable-modules=all --enable-mods-shared=all --enable-file-cache --enable-disk-cache --enable-cache --enable-mem-cache --enable-dumpio --enable-logio --enable-mime-magic --enable-headers --enable-usertrack --enable-version --enable-ssl --enable-http --enable-rewrite --enable-proxy --enable-proxy-connect --enable-proxy-http --enable-proxy-ftp --enable-proxy-ajp --enable-proxy-balancer --enable-so
#make
#make install
2、安装 mod_wsgi
cd mod_wsgi-3.3
./configure --with-apxs=/usr/local/apache2/bin/apxs \   --with-python=/usr/bin/python
make
make install
将编译生成的库文件拷到apache的库文件目录:
cp /usr/local/apache2/modules/mod_wsgi.so /etc/httpd/modules
在/etc/httpd/conf/httpd.conf中添加:
LoadModule wsgi_module modules/mod_wsgi.so
3、安装mysql
# cd mysql-VERSION
# ./configure
# make
# make install
# cp support-files/my-medium.cnf /etc/my.cnf
# cd /usr/local/
# bin/mysql_install_db --user=mysql
# bin/mysqld_safe --user=mysql &
配置my.cnf
改动如下:
[client]
#password = your_password
port = 3306
socket = /tmp/Mysql3306.sock
# The Mysql server
[Mysqld]
port = 3306
socket = /tmp/Mysql3306.sock
/*
若是你的mysql不是安装在默认路径,如安装在/usr/local/mysql,安装完成后,记得设置PATH环境变量,加上/usr/local/mysql/bin,以便运行mysql。
直接编辑/etc/environment文件,在里面修改PATH环境变量。该方法必须重启系统后才能生效,但是对于任何用户都有效。
可以设置为:
#PATH=.:/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/mysql/bin
*/
注:
安装了mysql以后,mysql的库文件默认放在/usr/local/lib/mysql下面,必须修改一下库文件的配置文件,不然在使用MySQLdb时会出现找不到库文件的错误。
(1)往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig,不然这个library会找不到
(2)想往上面两个目录以外加东西的时候,一定要修改/etc/ld.so.conf,然后再调用ldconfig,不然也会找不到。
安装了mysql后,mysql有一大堆library在/usr/local/lib/mysql/下面,这时就需要在/etc/ld.so.conf下面加一行/usr/local/lib/mysql,保存过后ldconfig一下,新的library才能在程序运行时被找到。
连接数据库:mysql -uroot -p
修改数据库root用户的密码:mysqladmin -uroot -p password 1234//1234为新密码
4、将mysql加入系统服务cp /usr/local/share/mysql/mysql.server      /etc/init.d/mysql     #把msql的脚本文件拷到系统的启动目录下
cd /etc/init.d/
chkconfig --add mysql                                #将mysql加到启动服务列表里
chkconfig mysql on                                    #让系统启动时自动打开mysql服务
apache安装以后,默认已经在系统服务里面了,通过下面的命令可以方便的进行管理。同时也可以通过setup命令对系统服务进行设置,使其开机自启动。
管理apache:service httpd start/restart/stop)
管理mysql:service mysql start/restart/stop)
5、安装setuptoolssh setuptools-0.6c9-py2.4.egg
6、安装MySQLdb
如果你是像前面说的,默认编译安装的MySQL,不用做任何修改。若是自定义的安装路径有所不同,对于MySQLdb的安装,用vi打开MySQLdb目录中的site.cfg文件,找到“mysql_config=”,修改后面的路径到你机器中mysql_config文件的路径。
mysql_config =/usr/local/mysql/bin/mysql_config
#python setup.py build
#python setup.py install
测试:
# python
>>> import MySQLdb
>>>
没有任何输出,安装成功!
如果出现了安装或者使用错误,请参照:http://mysql-python.sourceforge.net/FAQ.html
7、安装配置Django
下载最新安装包到本地,解压缩:
# tar -xvf django.tar.gz
进入到安装目录,执行命令安装Django:
# cd Django_x.x.x
# python setup.py install
简单测试:
# python
>>> import django
>>>
没有任何输出,安装成功!
8、本地测试django(开发环境):# cd /var/www
# mkdir /test
# cd /htdocs
# django-admin.py startproject myproject
# cd myproject
# python manager.py runserver 0.0.0.0:80
现在访问 http://服务器IP,看到“It works”了吧 ^_^
若是其他端口,可能不能访问,这可能是由于你服务器的防火墙阻挡了,在防火墙里添加相应的端口即可。
测试正常后,按Ctrl + C退出服务器。
9、在apache上的部署创建项目mdash,mdash的源代码存放在wman目录下:
#cd /var/www/html/wman
#django-admin.py startproject mdash
配置Apache的httpd.conf以运行wsgi
# vi /etc/httpd/conf/httpd.conf
添加以下内容: 
WSGIScriptAlias /  /var/www/html/wman/mdash/django.wsgi
<Directory /var/www/html/wman>
   Order Deny,Allow
   Allow from all
</Directory>
配置django.wsgi:
#cd mdash
#touch django.wsgi
#vi django.wsgi
添加如下内容:
import os, sys
sys.path.append('/var/www/html/wman')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mdash.settings'
os.environ['PYTHON_EGG_CACHE'] = '/tmp/.python-eggs'    #防止PYTHON_EGG_CACHE无权限的问题
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

No comments:

Post a Comment