Debian下使用Subversion(SVN)来管理Nginx Web网站发布

前面一篇文章讲解了如何不依赖Apache来直接使用SVN,这里我将讲解如何利用SVN来管理网站的发布,这次环境仍然是Debian,预装了SVN和Nginx,SVN服务已经启动,版本库已经建立并完成项目提交,假设我们拥有的版本库及项目路径为/home/user/repos/project1,web发布路径为/home/user/www/project1,这里的project1为Web项目,那么当我们在客户端将Web项目代码提交(commit)到project1代码库中时,能否自动更新/home/user/www/project1的Web发布路径的内容呢?

当然是可以的,首先我们需要checkout一次,把库的文件checkout到Web路径下:

cd /home/user/www
svn co svn://localhost/project1 --username bob --password 123456

其次是修改hooks目录下的post-commit文件以完成提交后挂钩,按上文所述,这个文件应该位于版本库中/home/user/repos/project1/hooks,如果没有则建立一个,内容如下:

#!/bin/sh 
# /home/user/www/project1为我们的web发布路径
svn up /home/user/www/project1 --username bob --password 123456 --no-auth-cache

注意--no-auth-cache,否则会提示验证信息ATTENTION! Your password for authentication realm导致执行失败。

最后为post-commit文件增加执行属性:

chmod +x post-commit

完成上述步骤后,试试从客户端提交代码到版本库中,看看Web内容是不是也改变了?

Debian不使用Apache直接架设Subversion(SVN)服务器

低配置的Debian服务器,想架设个Subversion(SVN)服务器用来托管部分代码,服务器上原先装有Nginx,网上大多数配置SVN的都要求结合Apache使用,低配服务器为这个装个Apache略显夸张,于是经过一段摸索,找到了一个方法,可以不使用Apache服务程序,记在这里留做备忘。

1. 首先是安装Subversion,直接使用apt-get命令:

sudo apt-get install subversion subversion-tools

2. 建立SVN仓库,假设代码仓库位于home路径下的repos文件夹,项目名称为project1:

mkdir ~/repos
svnadmin create ~/repos/project1

3. 修改配置文件~/repos/project1/conf/authz添加授权认证信息,比如将bob加入管理员组,并对其添加读写权限,内容如下:

[groups]
admin=bob # 将bob添加到admin组 
[/] 
bob = rw  # 成员bob对/目录的权限:r读,w写

4. 修改配置文件~/repos/project1/conf/passwd添加用户密码,比如设置bob的认证密码,可以像下面这样:

[users] 
bob = 123456

继续阅读“Debian不使用Apache直接架设Subversion(SVN)服务器”

配置基于Debian Linux工作环境备忘

以下内容以笔记备忘为主,可能比较乱,还望见谅,环境是Debian 6系列。

最近正好要将计算机上的工作环境迁移到另外一台电脑上来,下面将配置做个简单的备忘,也供大家参考。

首先以非图形方式安装最新的Debian系统,语言最好选择中文吧,看着顺眼些,当然这也会带来一些问题,比如接下来命令控制台的乱码。不过为了减少安装中文界面的麻烦,还是选择中文,这样GUI桌面安装完毕后将自动为中文界面,同时命令控制台也能恢复中文显示,乱码问题在安装完桌面后自然解决。

还有一点需要需要注意的是,如果希望安装其他桌面系统,比如Xfce;或者希望安装精简的Gnome系统,请在安装步骤中的“软件选择”步骤不要选择“图形桌面环境”。(注:Debian默认安装包自带的Gnome系统是完全版的,包含OpenOffice以及其他可能我们不需要的软件)

好了,经过若干步骤后基本上一个命令行界面的简易Linux是装上了,接下来是命令操作,先将APT源改为国内的,这里我们选择网易163的源,这样接下来安装软件会快得多:

继续阅读“配置基于Debian Linux工作环境备忘”

通过apt-get在Debian Linux下安装FireFox和ThunderBird

一直奇怪为什么Debian环境下没有FireFox,后来才知道原来由于商标原因Debian重新编译了FireFox并改名为Iceweasel。可以这么说Iceweasel也就是FireFox,同样的FF的插件扩展什么的Iceweasel也应该可以用。

安装Iceweasel可以通过下面的命令(更多参考)

aptitude install iceweasel

在某些环境下Iceweasel浏览器的User Agent String可能不包含FireFox字样,这点是需要Web开发者注意的。

假如我们想安装原生的FireFox怎么办?除了到Mozilla官网下载手动安装外,我这里介绍一种apt-get自动安装的方法:

首先登录Ubuntuzilla项目主页,该项目主要是打包了最新的Mozilla基金会的FireFox、SeaMonkey以及ThunderBird的Repository,大家看到Ubuntu可能会认为只是为Ubuntu这款衍生系统准备的,其实不然,我们也可以将其应用到Debian系统上以及其他基于Debian的衍生系统上。下面通过几步来应用这个APT源:

继续阅读“通过apt-get在Debian Linux下安装FireFox和ThunderBird”

Debian下使用apt-get安装 Nginx + MySQL + PHPMyAdmin 备忘

首先添加必要的apt源,并使用下面的命令使服务器保持最新:

apt-get update
apt-get upgrade

假设服务器没有配置Web服务和MySQL数据库,首先安装Web服务,这里首选Nginx:

apt-get install nginx

其次安装MySQL数据库,尝试使用下面的命令(其间可能需要交互输入密码):

apt-get install mysql-server

接下来简单介绍一下PHP的安装,这里使用FastCGI模式,仍然使用apt-get命令,配置来至lowendscript,其中部分配置对于小内存VPS进行了优化,建议按要求修改,例如PHP_FCGI_CHILDREN和PHP_FCGI_MAX_REQUESTS等参数值:

继续阅读“Debian下使用apt-get安装 Nginx + MySQL + PHPMyAdmin 备忘”

Debian环境 Python + Django + Nginx + uWSGI + MySQL 配置备忘

最近尝试把项目迁移到Python环境下,特别新装了一台干净的Debian系统,准备重新配置环境,上网找了一些运行Python Web的环境方案,最后敲定Nginx+uWSGI组合,Nginx用得比较多,熟练些;uWSGI据说性能不错,想尝试一下。

网上大部分教程都是要求到uWSGI官方网站下载源码包,然后通过编译的方式安装,比如对于一台新Debian系统,可以通过下面的命令安装:

apt-get update
apt-get upgrade
apt-get install build-essential psmisc
apt-get install python-dev libxml2 libxml2-dev
apt-get install python-setuptools
cd /opt/
wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar -zxvf uwsgi-latest.tar.gz
mv uwsgi-latest/ uwsgi/
cd uwsgi/
python setup.py install

继续阅读“Debian环境 Python + Django + Nginx + uWSGI + MySQL 配置备忘”

解决Debian下sudo命令unable to initialize PAM问题

配置的Debian系统,先是用root账户apt-get install sudo安装sudo命令;然后通过useradd命令建立子账户;最后修改sudoers通过添加相应账户名来开放执行sudo的权限。

本以为做完一切万事大吉,可以切换到子账户痛快的用sudo了。其实不然,当我切换到刚才建立的子账户并执行sudo命令时出现了下面的错误提示:

$ sudo ls
sudo: unable to initialize PAM: No such file or directory

无法初始化PAM,什么是PAM?引用百度百科上的描述:

PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段。

实际上这是通过配置模块实现认证的认证模式,PAM的配置文件均位于Debian下/etc/pam.d目录下,通过ls列出该目录当前文件,发现sudo果然在其中。使用cat /etc/pam.d/sudo出现以下信息:

继续阅读“解决Debian下sudo命令unable to initialize PAM问题”