存档

文章标签 ‘apache2’

把opencart的url rewrite规则从apache转到nginx

2010年8月9日 作者:water

从网上找到一个好工具:

http://www.anilcetin.com/convert-apache-htaccess-to-nginx/

转换前

# SEO URL Settings
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php?_route_=$1 [L,QSA]

转换后:

if (!-f $request_filename){
set $rule_0 1$rule_0;
}
if (!-d $request_filename){
set $rule_0 2$rule_0;
}
if ($rule_0 = “21″){
rewrite ^/(.*)\?*$ /index.php?_route_=$1 last;
}

经测试,效果良好可用。

Linux , , ,

原来新版的subversion在ubuntu 10.04下配置如此简单

2010年7月12日 作者:water

记得5年多以前我写过一篇blog,名叫《SVN+Apache域用户认证配置方法》,搜索了一下,居然还能找到,还被到处转载,呵呵,也算是一件让人开心的事。

当时因为公司没人懂linux,而我自己又是长期出差在外,不方便维护服务器,只好在windows下部署。印象中整个过程还是相当繁琐的。

因工作需要,今天在ubuntu 10.04 server上部署了一套subversion,没想到这么简单,下面是配置步骤和注意事项:

  1. sudo apt-get install libapache2-svn subversion apache2
  2. sudo vim /etc/apache2/sites-available/default,加入
    <Location /svn/>
    DAV svn
    SVNParentPath /home/username/svn/repos
    SVNListParentPath on

    AuthType Basic
    AuthName “Subversion Repository”
    AuthUserFile /home/username/svn/passwdfile

    AuthzSVNAccessFile /home/username/svn/authzfile
    Require valid-user
    </Location>

  3. passwdfile可以用htpasswd passwdfile username passwd格式来生成,具体参数可以看man htpasswd
  4. 注意Location /svn/的svn后面有一条斜线,没有的话,会造成SVNListParentPath失效,提示403错误,看apache2日志的错误信息是:
    The URI does not contain the name of a repository.  [403, #190001],这一点官方手册写的范例就是没有斜线,是错误的,让人无语

其他类 , ,

ubuntu 10.04默认安装redmine注意事项

2010年7月3日 作者:water

在ubuntu 10.04中安装redmine比以往简单了很多,直接sudo apt-get install redmine redmine-mysql就可以了。但估计是初次尝试这种安装方式,还有一些bug。解决的注意事项如下:

安装步骤:

1.sudo apt-get install redmine redmine-mysql

2.修改自动建立的数据库编码为utf8_general_ci ,不改的话,会造成中文乱码

3.生成会话存储密钥:RAILS_ENV=production rake generate_session_store

4.创建数据库表结构:RAILS_ENV=production rake db:migrate

5.配置默认数据,选择zh:RAILS_ENV=production rake redmine:load_default_data

默认安装好后,在虚拟主机里面添加

RailsEnv production
RailsBaseURI /pm

然后ln -s /usr/share/redmine/public/ /var/www/pm

重启apache2后,打开http://localhost/pm/ 后提示Phusion Passenger错误:

Ruby on Rails application could not be started

Error message:Permission denied – /etc/redmine/default/session.yml

经查,这是因为Phusion Passenger默认运行帐户不是apache2默认的www-data,造成了权限的问题,需要在虚拟主机里面添加 PassengerDefaultUser www-data

重启apache2后就可以正常打开redmine了。

email提醒的功能需要增加一个/etc/default/email.yml文件,内容如下:

production:
  delivery_method: :sendmail

Linux ,

Ubuntu Server 9.10下部署apache2+mod_rails+redmine 0.8.7笔记

2009年12月21日 作者:water
  1. 安装ubuntu时,选择安装lamp server和mail server和openssh server
  2. 安装编译环境与常用工具:sudo apt-get install build-essential mc zip unzip unrar rar phpmyadmin subversion
  3. 下载redmine:wget http://rubyforge.org/frs/download.php/67144/redmine-0.8.7.tar.gz
  4. 解压:tar xzvf redmine-0.8.7.tar.gz
  5. 修改database.yml和email.yml,将其中email的发送邮件方式smtp改为sendmail
  6. 安装redmine基本运行环境:sudo apt-get install ruby ruby-dev rails librmagick-ruby libmysql-ruby
  7. 初始化redmine项目:rake config/initializers/session_store.rb;RAILS_ENV=production rake db:migrate;RAILS_ENV=production rake redmine:load_default_data;
  8. 安装mod_rails模块:sudo gem install passenger
  9. cd /var/lib/gems/1.8/gems/passenger-2.2.8/bin
  10. 安装passenger编译环境:sudo apt-get install apache2-prefork-dev libapr1-dev libaprutil1-dev
  11. 运行mod_rails安装到apache2绑定:sudo ./passenger-install-apache2-module
  12. 打开rewrite模块:sudo a2enmod rewrite
  13. 加入redmine虚拟主机配置到apache2配置文件
  14. <VirtualHost *:80>
        ServerName www.myapp.com
        DocumentRoot /myapps/redmine-0.8.7/public
        <Directory /myapps/redmine-0.8.7/public>
            Allow from all
            Options -MultiViews
        </Directory>
    </VirtualHost>
  15. sudo /etc/init.d/apache2 restart
  16. 打开www.myapp.com即可

Linux, 其他类 , , , ,

svn提交后测试网站自动发布的配置

2009年9月19日 作者:water

在以往的操作过程中,svn的提交跟测试服务器的更新是要分开进行的,这实在不是很必要,操作繁琐浪费时间。想起svn仓库中的hook,经过配置后,达到了想要的效果。

  • 环境:ubuntu server 8.04.2,为便于管理,采用基于apache2虚拟主机的配置方案,将svn绑定到具体的网站目录或二级域名。仓库存放在统一的一个目录/home/username/svn/,网站也统一放到一个目录/home/username/web/。
  • 步骤如下:
  1. sudo apt-get install apache2 libapache2-svn subversion
  2. sudo a2enmod dav_svn
  3. sudo /etc/init.d/apache2 reload
  4. 增加配置段到虚拟主机:<Location /svn>
    DAV svn
    SVNParentPath /home/username/svn/svnlib

    AuthType Basic
    AuthName “Subversion Repository”
    AuthUserFile /home/username/svn/dav_svn.passwd

    AuthzSVNAccessFile /home/username/svn/dav_svn.authz
    Require valid-user
    </Location>

  5. 用htpasswd建立dav_svn.passwd
  6. 再配置dav_svn.authz权限控制,具体参照svn手册
  7. 建立项目svn仓库:cd /home/username/svn/svnlib;svnadmin create project_demo
  8. 取出一份空svn代码,这是为了方便调用svn hook时svn up用的:cd /home/username/web/;svn co http://domain/svn/project_demo
  9. 为配置apache2调用的hook修改文件归属:sudo chown www-data:www-data -R project_demo
  10. 建立hook文件:sudo vim /home/username/svn/svnlib/project_demo/hooks/post-commit,输入内容:cd /home/username/web/project_demo;svn up
  11. 增加执行权限:sudo chmod +x post-commit
  12. 打完收工

其他类 ,