Archive for the ‘设计和代码’ Category

Ubuntu 下 iRedMail 在 Nginx 的配置

最近需要搭建邮件系统,逐个测试了ExtMail、Zimbra和iRedMail,最后选定iRedMail。我喜欢用Nginx,所以尝试着从Apache到Nginx的转换。

1、RoundCube

RoundCube 的配置可参考 Nginx 网站 上的例子。

# roundcube
server {
    listen          80;
    server_name mail.example.com;

    location / {
            rewrite ^ https://mail.example.com permanent;
    }

    location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME /usr/share/apache2/roundcubemail$fastcgi_script_name;
    }

}

server {
    listen       443;
    server_name  mail.example.com;

    location / {
        root   /usr/share/apache2/roundcubemail/;
        index  index.php index.html;
    }

     location ~ \.php$ {
        root            /usr/share/apache2/roundcubemail/;
        include         fastcgi_params;
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME /usr/share/apache2/roundcubemail$fastcgi_script_name;
        fastcgi_param   SERVER_NAME $http_host;
        fastcgi_ignore_client_abort on;
    }

    ssl                  on;
    ssl_certificate      /etc/ssl/certs/iRedMail_CA.pem;
    ssl_certificate_key  /etc/ssl/private/iRedMail.key;
    ssl_session_timeout  5m;
    ssl_protocols  SSLv2 SSLv3 TLSv1;
    ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers   on;
}

2、phpLDAPadmin

phpLDAPadmin 亦是 php 开发,配置与 RoundCube 类似。

#phpLDAPadmin
server {
    listen       443;
    server_name  ldap.example.com;

    location / {
        root   /usr/share/phpldapadmin/;
        index  index.php index.html;
    }

     location ~ \.php$ {
        root            /usr/share/phpldapadmin/;
        include         fastcgi_params;
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME /usr/share/phpldapadmin$fastcgi_script_name;
        fastcgi_param   SERVER_NAME $http_host;
        fastcgi_ignore_client_abort on;
    }

    ssl                  on;
    ssl_certificate      /etc/ssl/certs/iRedMail_CA.pem;
    ssl_certificate_key  /etc/ssl/private/iRedMail.key;
    ssl_session_timeout  5m;
    ssl_protocols  SSLv2 SSLv3 TLSv1;
    ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers   on;
}

3、iReaAdmin

iReaAdmin 是 python 代码,所以采用 uwsgi,Nginx 原生就支持 uwsgi。这一段主要参考了PTMoinMoin 与 Nginx, fastcgi 与 uwsgi 的配置 一文。

准备工作

#安装
sudo -s
add-apt-repository ppa:nginx/stable
add-apt-repository ppa:uwsgi/release
apt-get update
apt-get install nginx uwsgi-python python-virtualenv

#组件配置
cat >/etc/uwsgi-python/apps-enabled/uwsgi.xml << EOF
<uwsgi>
  <limit-as>256</limit-as>
  <processes>6</processes>
  <memory-report/>
  <vhost/>
  <no-site/>
</uwsgi>
EOF

#Python环境预备
mkdir /usr/share/apache2/iredadmin/python-home
virtualenv /usr/share/apache2/iredadmin/python-home

#修改文件属性
chown www-data:www-data /usr/share/apache2/iredadmin/* -R

Nginx 配置如下:

# iRedAdmin
server {
    listen          80;
    server_name iredadmin.example.com;

    location / {
        rewrite ^(.*) https://$server_name$1 permanent;
    }
}

server {
    listen 443;
    server_name ira.example.com;

    access_log  /var/log/nginx/iredadmin.access_log;
    error_log   /var/log/nginx/iredadmin.error_log;

    location / {
        root /usr/share/apache2/iredadmin;
        uwsgi_pass unix:///var/run/uwsgi-python/uwsgi/socket;
        uwsgi_param UWSGI_PYHOME /usr/share/apache2/iredadmin/python-home;
        uwsgi_param UWSGI_CHDIR /usr/share/apache2/iredadmin;
        uwsgi_param UWSGI_SCRIPT iredadmin;
        include uwsgi_params;
    }

    location /static {
        alias /usr/share/apache2/iredadmin/static/;
    }

    ssl                  on;
    ssl_certificate      /etc/ssl/certs/iRedMail_CA.pem;
    ssl_certificate_key  /etc/ssl/private/iRedMail.key;
    ssl_session_timeout  5m;
    ssl_protocols  SSLv2 SSLv3 TLSv1;
    ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers   on;
}

4、启动运行

在 /etc/nginx/sites-enabled 建立以上配置文件。

#重启
/etc/init.d/nginx restart
/etc/init.d/uwsgi-python restart

访问地址:

https://mail.example.com

https://ldap.example.com

https://iredadmin.example.com

ubuntu下为多个 web 网站配置 vsftpd 服务器

ubuntu 下多个本地用户,比如:zhangsan、lisi,在服务器上均有自己的网站,网站文件对应的目录分别为 /var/ww 和 /home/lisi/www。为了能让用户通过 FTP 上传下载网页文件,选用 vsftpd 搭建 FTP 服务器。
vsftpd 是一个安全、快速和稳定的 FTP 服务器软件,适用于 unix、linux等操作系统,遵循 GPL 协议。

本例在 Ubuntu 10.04 LTS 下测试通过,Web 服务器为 apache2。与其他采用虚拟用户的案例不同,本例所列用户均为 ubuntu 本地用户。 Read more

Discuz 7 模板风格

仿 Abdul Turan phpBB 3 风格 sliverwhite 制作的 Discuz 7 风格,已完成5种色系。不喜欢复杂的设计,依然是简洁的风格。

适用版本:Discuz 7
语言: UTF-8

预览 下载

服务器迁移

服务器迁移成功!2008-10-27

回头有空写写空间商和花生壳的服务,对比太大了,感慨!

Dropbox–令人惊喜的新型网络硬盘

这几天试用了一个新武器-Dropbox,感觉很不错,特别推荐一下。

把 Dropbox定义为网络硬盘,我认为是委屈她的。如果没有更合适的名字,我觉得至少应该叫她“文件管家”。她带给我许多惊喜,暂时罗列如下:

1.  免费的2G空间,对我这样的一般用户已足够。

2.  由于具有本地同步储存功能,应用起来直观而灵活。同步储存功能指的是,Dropbox除了可以像其他网盘那样通过web上传文件,更方便的是还可以通过客户端来实现和本地计算机同步。安装好客户端后,本地计算机会自动创建一 个“My Dropbox ”目录,这个目录在本地计算机上的位置由应用者自己定义,而且与Dropbox 在服务器上的文件目录结构一致的,应用者修改本地文件或结构,就相当于修改了远程服务器上的文件或结构;客户端可以安装在不同的电脑上,实现多用户共同管理一个账户。这些功能对于我非常实用,上课去不再需要带移动硬盘,学生交作业只要交到教师机上我指定的目录就可以,回家我就可以批阅,而且每次都会自动更新,学生、教师机、家里的文件始终处于同步。

4. 可以实现本地静默上传,由于有了本地同步存储功能,应用者只要把需要上传的文件放在本地计算机的“My Dropbox ”目录下,文件就会自动上传,文件在上传的过程,应用者完全不需要管理,在不知不觉中完成了上传。上课时,我把my dropbox目录共享给学生,下课我就可以直接走人,不用再等到学生把作业上传完毕,拷到移动硬盘带回家。

还有更多的欣喜,慢慢体会,慢慢写上来。

目前只要安装了客户端就可以直接申请,不再需要邀请了。支持Windows, Mac and Linux平台。建议下载最新版本,以便可以自由选择本地目录。

官网地址:http://www.getdropbox.com/

Page 1 of 512345