Chinaunix首页 | 论坛 | 博客
  • 博客访问: 349115
  • 博文数量: 81
  • 博客积分: 4060
  • 博客等级: 上校
  • 技术积分: 850
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-06 16:03
文章分类
文章存档

2011年(4)

2010年(4)

2009年(17)

2008年(24)

2007年(16)

2006年(15)

2005年(1)

我的朋友

分类: 系统运维

2011-01-14 15:57:42

Ubuntu 10.04.1 LTS 
因为我购买的VPS安装debian有BUG,所以选择了ubuntu.
一开始是用centos来进行搭建,但是2.6的python在centos上面编译有问题(自行编译),
经Z.Q.教导,转而使用ubuntu.  所以用centos的兄弟姐妹,以下文章中trac中的svn的问题我没处理好在centos上面.

目标: 建立一个高效的Trac环境.(相比Tracd的方式)

起因: 一直在用Tracd + svn + stunnel 来进行发布,小项目,4-5个人在提交的时候感觉非常差,经常没有反应. 注:构建在这里 http://blogold.chinaunix.net/u/10884/showart.php?id=2421306


TODO: SSL加密连接
      管理 trac中浏览 svn代码权限.
        

2011年01月23日更新
 巨型svn 在trac中浏览会造成uwsgi崩溃重启.解决方法是
#socket=/home/Trac/xxx/Tracs/Trac.sock
socket = 127.0.0.1:9001     启用端口绑定模式.  FD的问题,估计是VPS造成的问题.



选择工具.
python 2.6.5
Trac 0.12.1
nginx 0.8.53 ( 0.8.54一样)
uwsgi 0.9.6.6




(由于我购买的是国外VPS,选择了CentOS 5.5 ,默认安装的只有python2.4
所以自己去下载python2.6.5编译.千万别乱用其他安装源的.我就是yum了python2.6后,无法自拔了..给自己yum死了.)
ubuntu自带 python2.6,所以不用安装了.

这里给出配置文件,对Trac的入门了解还是看这个比较实在.  http://blogold.chinaunix.net/u/10884/showart.php?id=2421306 



uwsgi的配置请看这里
 

python Python 2.6.6 (r266:84292, Dec 1 2010, 23:08:07) [GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> for i in sys.path: ... print "pythonpath=%s"%i
对于新手,需要提醒一点的就是  print的时候 要给个table,这个貌似是python语法.否则要报错.
配置文件如下: (我的配置,请自己根据情况来订,不要完全照搬)
[uwsgi]
uid=root
gid=root
socket=/home/Trac/xxx/Tracs/Trac.sock
#socket = 127.0.0.1:9001                 //这种方式会增加重网卡I/O
processes=2
pidfile=/home/Trac/ddnas88f6281/Tracs/Trac.uwsgi.pid
wsgi-file=/home/Trac/ddnas88f6281/Tracs/cgi-bin/Trac.wsgi
chmod-socket=666
harakiri=30
disable-logging=true
master=true
memory-report=true
profiler=true
single-interpreter=true
pythonpath=/usr/local/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg
pythonpath=/usr/local/lib/python2.6/site-packages/Babel-0.9.5-py2.6.egg
pythonpath=/usr/local/lib/python2.6/site-packages/Genshi-0.6-py2.6.egg
pythonpath=/usr/local/lib/python2.6/site-packages/Trac-0.12.1-py2.6.egg
pythonpath=/usr/local/lib/python2.6/site-packages/supervisor-3.0a9-py2.6.egg
pythonpath=/usr/local/lib/python2.6/site-packages/meld3-0.6.7-py2.6.egg
pythonpath=/usr/local/lib/python2.6/site-packages/virtualenv-1.5.1-py2.6.egg
pythonpath=/usr/local/lib/python2.6/site-packages/TracGit-0.12.0.5dev-py2.6.egg
pythonpath=/usr/local/lib/python26.zip
pythonpath=/usr/local/lib/python2.6
pythonpath=/usr/local/lib/python2.6/plat-linux2
pythonpath=/usr/local/lib/python2.6/lib-tk
pythonpath=/usr/local/lib/python2.6/lib-old
pythonpath=/usr/local/lib/python2.6/lib-dynload
pythonpath=/usr/local/lib/python2.6/site-packages

启动uwsgi:  uwsgi --ini uwsgi.ini -d log (注意自己的目录,自行把握)
然后cat log看看是否工作正常.

nginx配置

server {
    listen   80;
# ssl_certificate /etc/nginx/myssl.crt;
# ssl_certificate_key /etc/nginx/key.key;

location / {
        include uwsgi_params;
# auth_basic "!!! !!";    
# auth_basic_user_file /home/Trac/ddnas88f6281/auth/nginx_passwd;
        #uwsgi_param SCRIPT_NAME /;
        #uwsgi_pass 127.0.0.1:9001;
uwsgi_pass unix://home/Trac/ddnas88f6281/Tracs/Trac.sock;
uwsgi_modifier1 30;
           index  index.html;
           autoindex off;
       }

   location /chrome/ {
         alias /home/Trac/ddnas88f6281/Tracs/htdocs/;
autoindex off;
 }

location /Trac/raw-attachment {
alias /home/Trac/ddnas88f6281/Trac/attachments/;
autoindex off;
}

location /Trac/pygments {
alias /home/Trac/ddnas88f6281/Trac/pygments;
autoindex off;
}
}

自行编译的nginx 一般加上ssl模块即可,其他的模块我没有加载.
所以安装再 /usr/local/nginx
启动nginx
/usr/local/nginx/sbin/nginx -t
看看报错信息有没有,没有就去掉t,正式让nginx上线.

trac就开始工作了!
当然,你现在没什么权限,自己加权限吧。

用户管理我使用了一个插件: 
TracAccountManager 0.3dev-r9591

开启了HtPasswdStore  这种认证方式.
也开启. 这样可以让其他人注册了. 提示:注意自己权限的分配!

按照wiki的配置
[account-manager]
account_changes_notify_addresses =
authentication_url =
force_passwd_change = true
htpasswd_hash_type = crypt
password_file = //XXXX/XXX/XXXtrac_passwd     //自行替换
password_store = HtPasswdStore
persistent_sessions = False
user_lock_max_time = 0
verify_email = true

[components]
acct_mgr.pwhash.htdigesthashmethod = enabled

然后htpasswd -c trac_passwd admin
登录后自己注意权限别泄漏了.



OK。基本完了.

参考文档: 
trachinese@googlegroups.com  maillist
http://blogold.chinaunix.net/u/10884/showart.php?id=2421306

感谢 trachinese里面朋友的帮助!在这里不一一列举了。




阅读(2409) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~