Apache+wsgl配置trac详解
来源:互联网 发布:centos 清理磁盘空间 编辑:程序博客网 时间:2024/06/17 22:25
操作系统:CentOS 6
软件:apache2.2,trac0.12,python2.6,mysql
概述
trac以python写成,python应用可以用多种方式布署到apache上,比如mod_python,FastCGI,WSGI等。
我们将以WSGI的方式将trac布署到apache上,因为WSGI是python的原生态协议。
一个WEB应用要使用WSGI,必须提供一个叫做*.wsgi的脚本,实际这个脚本是个python文件。在Apache的<Directory>配置中指定一个地址映射到.wsgi的路径,这样在访问这个地址时,就会执行这个wsgi脚本文件,于是兼容wsgi的web应用就被执行。
要使trac正常运行,除了要提供这个脚本外还应为它提供数据库。我们将使用mysql为例,为trac的一个项目创建一个数据库。并告诉trac如何连接到这个数据库。
创建数据库要在mysql中,使用mysql工具创建数据库和trac的数据库用户。
在trac中创建项目要使用trac-admin工具,可在其中指定要连接的数据库和使用的数据库用户。
过程
1 安装各种软件
# yum install xxxxx...略
2 安装trac
# easy_install trac
3 为trac中第一个项目创建数据库
比如我们有一个python项目名字叫 proj1,我们把它对应的数据库命名为proj1
先保证mysql server运行起来:
# service mysqld start
设置mysql root帐户的密码为 123:
# mysqladmin -u root password 123
进入mysql管理器:
# mysql -u root -p 123
创建一个数据库 proj1 :
mysql> CREATE DATABASE proj1 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
为数据库 proj1 创建一个用户proj1user,密码为 111
mysql> grant usage on proj1.* to proj1user@localhost identified by '111';
mysql> grant all on proj1.* to proj1user@localhost identified by '111';
mysql> quit
4 在trac中创建第一个项目proj1
我们把proj1项目放在/var/trac目录下:
# cd /var
# mkdir trac
# cd trac
在proj1目录下创建一个项目的环境
# trac-admin ./proj1 initenv
在这个命令执行过程中会要求输入项目名字和数据库访问字符串,项目名字就是proj1,数据库字符串是:
mysql://proj1user:111@localhost:3306/proj1
其中包含了数据库用户名和密码,以及数据库的名字。
5 将一些静态数据布署到trac的新建项面中
# trac-admin /var/trac/proj1 deploy /tmp/deploy
# mv /tmp/deploy/* /var/trac/proj1
此时已经可以用trac自带的http server运行trac服务了:
tracd -s --port 8000 /var/trac/proj1
客户端可以在浏览器中输入: http://trac-server-ip:8000/ 来测试。
当然我们的目标是让trac运行在apache下,所以还要继续搞下去...
6 apache配置WSGI
apache 要使支持WSGI,需要安装 mod_wsgi :
# yum install mod_wsgi
然后在/etc/httpd/conf/httpd.conf文件中,增加
LoadModule wsgi_module modules/mod_wsgi.so
7 trac配置WSGI
要使一个web应用程序通过WSGI与apache配合工作,它必须提供一个.wsgi脚本,这其实是一个python文件。
我们把这个脚本放在trac项目环境所在的文件夹中:/var/trac 。
在/var/trac中创建一个trac.wsgi文件:
# cd /var/trac
# mkdir trac.wsgi
编辑这个文件如下:
os.environ['TRAC_ENV_PARENT_DIR'] = '/var/trac' 指明了trac项目们的父目录,这样可以在/var/trac下建多个trac项目(创建项目环境),并被trac自动在网页中列出。
os.environ['PYTHON_EGG_CACHE'] = '/var/trac/eggs' 指明了python EGG包解压到的目录。现在还没有,所以手动创建一个:
# mkdir /var/trac/eggs
8 告诉apache如何访问trac的wsgi
打开apache配置文件 /etc/httpd/conf/httpd.conf
增加<Directory>
WSGIScriptAlias /trac /var/trac/trac.wsgi
<Directory /var/trac>
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
9 为apache分配文件权限
apache要读写trac项目的文件,所以要为apache分配权限:
# chown -R apache.apache /var/trac
重启apache就可以在浏冷览器中访问了:
# service httpd restart
浏览器中输入:http://trac-server-ip/trac
10 login的问题
但是还有一个问题,当要登录proj1项目中时,报出错误,为什么尼?因为我们没有配置用户权限。
我们将让trac使用apache的验证机制,使用basic权限管理方式。
用apache创建帐户admin:
# htpasswd -c /var/trac/trac.htpasswd admin
创建帐户admin和文件trac.htpasswd。下一步把这个文件告诉apache,在httpd.conf中输入以下:
<Location "/trac/[^/]+/login">
AuthType Basic
AuthName "Trac"
AuthUserFile /var/trac/trac.htpasswd
Require valid-user
</Location>
重启apache。好了,现在可以登录了,但为什么权限不多?我可是admin啊!没关下,再来一句:
# trac-admin /var/trac/proj1 permission add admin TRAC_ADMIN
完成收功!
软件:apache2.2,trac0.12,python2.6,mysql
概述
trac以python写成,python应用可以用多种方式布署到apache上,比如mod_python,FastCGI,WSGI等。
我们将以WSGI的方式将trac布署到apache上,因为WSGI是python的原生态协议。
一个WEB应用要使用WSGI,必须提供一个叫做*.wsgi的脚本,实际这个脚本是个python文件。在Apache的<Directory>配置中指定一个地址映射到.wsgi的路径,这样在访问这个地址时,就会执行这个wsgi脚本文件,于是兼容wsgi的web应用就被执行。
要使trac正常运行,除了要提供这个脚本外还应为它提供数据库。我们将使用mysql为例,为trac的一个项目创建一个数据库。并告诉trac如何连接到这个数据库。
创建数据库要在mysql中,使用mysql工具创建数据库和trac的数据库用户。
在trac中创建项目要使用trac-admin工具,可在其中指定要连接的数据库和使用的数据库用户。
过程
1 安装各种软件
# yum install xxxxx...略2 安装trac
# easy_install trac3 为trac中第一个项目创建数据库
比如我们有一个python项目名字叫 proj1,我们把它对应的数据库命名为proj1先保证mysql server运行起来:
# service mysqld start
设置mysql root帐户的密码为 123:
# mysqladmin -u root password 123
进入mysql管理器:
# mysql -u root -p 123
创建一个数据库 proj1 :
mysql> CREATE DATABASE proj1 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
为数据库 proj1 创建一个用户proj1user,密码为 111
mysql> grant usage on proj1.* to proj1user@localhost identified by '111';
mysql> grant all on proj1.* to proj1user@localhost identified by '111';
mysql> quit
4 在trac中创建第一个项目proj1
我们把proj1项目放在/var/trac目录下:# cd /var
# mkdir trac
# cd trac
在proj1目录下创建一个项目的环境
# trac-admin ./proj1 initenv
在这个命令执行过程中会要求输入项目名字和数据库访问字符串,项目名字就是proj1,数据库字符串是:
mysql://proj1user:111@localhost:3306/proj1
其中包含了数据库用户名和密码,以及数据库的名字。
5 将一些静态数据布署到trac的新建项面中
# trac-admin /var/trac/proj1 deploy /tmp/deploy# mv /tmp/deploy/* /var/trac/proj1
此时已经可以用trac自带的http server运行trac服务了:
tracd -s --port 8000 /var/trac/proj1
客户端可以在浏览器中输入: http://trac-server-ip:8000/ 来测试。
当然我们的目标是让trac运行在apache下,所以还要继续搞下去...
6 apache配置WSGI
apache 要使支持WSGI,需要安装 mod_wsgi :# yum install mod_wsgi
然后在/etc/httpd/conf/httpd.conf文件中,增加
LoadModule wsgi_module modules/mod_wsgi.so
7 trac配置WSGI
要使一个web应用程序通过WSGI与apache配合工作,它必须提供一个.wsgi脚本,这其实是一个python文件。我们把这个脚本放在trac项目环境所在的文件夹中:/var/trac 。
在/var/trac中创建一个trac.wsgi文件:
# cd /var/trac
# mkdir trac.wsgi
编辑这个文件如下:
import syssys.stdout = sys.stderrimport osos.environ['TRAC_ENV_PARENT_DIR'] = '/var/trac'os.environ['PYTHON_EGG_CACHE'] = '/var/trac/eggs'import trac.web.mainapplication = trac.web.main.dispatch_request
os.environ['TRAC_ENV_PARENT_DIR'] = '/var/trac' 指明了trac项目们的父目录,这样可以在/var/trac下建多个trac项目(创建项目环境),并被trac自动在网页中列出。
os.environ['PYTHON_EGG_CACHE'] = '/var/trac/eggs' 指明了python EGG包解压到的目录。现在还没有,所以手动创建一个:
# mkdir /var/trac/eggs
8 告诉apache如何访问trac的wsgi
打开apache配置文件 /etc/httpd/conf/httpd.conf增加<Directory>
WSGIScriptAlias /trac /var/trac/trac.wsgi
<Directory /var/trac>
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
9 为apache分配文件权限
apache要读写trac项目的文件,所以要为apache分配权限:# chown -R apache.apache /var/trac
重启apache就可以在浏冷览器中访问了:
# service httpd restart
浏览器中输入:http://trac-server-ip/trac
10 login的问题
但是还有一个问题,当要登录proj1项目中时,报出错误,为什么尼?因为我们没有配置用户权限。我们将让trac使用apache的验证机制,使用basic权限管理方式。
用apache创建帐户admin:
# htpasswd -c /var/trac/trac.htpasswd admin
创建帐户admin和文件trac.htpasswd。下一步把这个文件告诉apache,在httpd.conf中输入以下:
<Location "/trac/[^/]+/login">
AuthType Basic
AuthName "Trac"
AuthUserFile /var/trac/trac.htpasswd
Require valid-user
</Location>
重启apache。好了,现在可以登录了,但为什么权限不多?我可是admin啊!没关下,再来一句:
# trac-admin /var/trac/proj1 permission add admin TRAC_ADMIN
完成收功!
- Apache+wsgl配置trac详解
- Apache+SVN+Trac配置详解!
- trac apache 配置
- [转载]Subversion+Trac+Apache配置
- Ubuntu Apache+SubVersion+Trac 配置
- Apache+SVN+Trac搭建项目管理服务器的安装与配置详解!
- Linux下配置Apache,Subversion和Trac
- 在mac下配置apache+trac+svn
- 配置trac
- 开发服务器配置笔记 (Apache PHP MySQL SVN Trac)
- Linux 下 Trac SVN apache SSL 配置安装以及整合
- windows下Apache+SVN+Trac安装及配置(一)
- Windows下Apache+SVN+Trac 的安装和配置
- CentOS 安装配置 Apache, nginx, SVN, Trac 日志
- Freebsd+Apache+Subversion+Trac
- Apache与Trac 构建
- Trac on Apache - 使用说明
- trac+mercurial+apache安装
- 计算机时间、unix时间、linux时间、java时间为何以1970年1月1日为原点?从1970年1月1日开始计算?
- sshd dead but subsys locked问题解决
- android版vlc支持rtsp
- iis的www服务器配置--怎样配置iis-iis配置详解
- qt 获取 MD5
- Apache+wsgl配置trac详解
- VS.NET 学习方法论
- 重新编译一下php的zip模块
- 嵌入式软件三大潜在问题及测试技术
- JSP 编译和运行过程与JSP源码简单分析
- dfdfd
- GXT之旅:第八章:Portal&Drag-Drop——项目使用Drag-Drop重构(2)
- C语言测试:想成为嵌入式程序员应知道的0x10个基本问题(转)
- android开发之VIM快捷键使用指南