mod_wsgi和php,基于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

#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

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

cp /usr/local/apache2/modules/mod_wsgi.so /etc/httpd/modules

在/etc/httpd/conf/httpd.conf中添加:

LoadModule wsgi_module modules/mod_wsgi.so

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 &

# 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

[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

*/

#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

mysql -uroot -p

修改数据库root用户的密码:

mysqladmin -uroot -p password 1234//1234为新密码

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服务

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)

apache:service httpd start/restart/stop)

管理

mysql:service mysql start/restart/stop)

mysql:service mysql start/restart/stop)

5、安装setuptools

sh setuptools-0.6c9-py2.4.egg

sh 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

mysql_config =/usr/local/mysql/bin/mysql_config

 
 

#python setup.py build

#python setup.py install

测试:

# python

>>> import MySQLdb

>>>

# 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

# tar -xvf django.tar.gz

进入到安装目录,执行命令安装Django:

# cd Django_x.x.x

# python setup.py install

简单测试:

# python

>>> import django

>>>

# 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

# 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

#cd /var/www/html/wman

#django-admin.py startproject mdash

配置Apache的httpd.conf以运行wsgi

#vi /etc/httpd/conf/httpd.conf

# vi /etc/httpd/conf/httpd.conf

添加以下内容:

WSGIScriptAlias / /var/www/html/wman/mdash/django.wsgi

Order Deny,Allow

Allow from all

WSGIScriptAlias / /var/www/html/wman/mdash/django.wsgi

Order Deny,Allow

Allow from all

配置django.wsgi:

#cd mdash

#touch django.wsgi

#vi 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()

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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值