ubuntu 开机自动挂载分区 

可能很多人和我一样有这样的一个习惯,就是喜欢把视频、图片、文档这些相对于系统的独立静态文件,放在与系统所在分区无关的一个分区里。

比如 Windows 下,系统装C盘,而这些资源文件(比如我的文档)放入D盘.可是在linux下,我却不喜欢把 /home 挂载到一个其他分区。

我更喜欢的是,把 / 挂载在分区下,而手动把 ~/图片、~/视频 等定位到其他地方.

可是这样一来就出现了一个问题,这些资源文件所在的分区,在开机的时候不会被自动挂载,所以之前的设定会被认定为无效,恢复至默认值。

这是个杯具。

所以,要使这些生效,就要在gdm启动之前,让我设定的那些目录 如"/mnt/Common/Home4Linux/图片" 路径存在.

考虑到gnome 是使用gvfs-mount 挂载设备的,而且这样也可以更好的与nautilus 交互。
我便打算把 gvfs-mount 挂载的脚本 放入 /etc/rc.local 中。

首先,安装 gvfs-mount, sudo apt-get install gvfs-bin.
编辑,/etc/rc.local,加入
/usr/bin/gvfs-mount -m -d /dev/sda6

保存。重启,查看效果。

不行,杯具……

我想,要不直接设为服务试试看,应该可以.

于是,火速在/etc/init.d/ 下创建了 名为 automount 的服务,内容很简单,

#! /bin/sh
#
# auto mount Common on start
/usr/bin/gvfs-mount -m -d /dev/sda6


设置权限为775,sudo update-rc.d automount defaults.

重启,查看效果。

还是不行,杯具~

直接运行服务,service automount start,提示 No volume for device file /dev/sda6.

我日,坑爹呐!!

最后,实在没办法了,就采用了最老套的一个办法,就是在/etc/fstab 里面设好.这是最恶心的一个办法,我其实是最不想用的。不过没办法了~

不过,我个人推荐使用PySDM 这个前端,很好用.
安装 sudo apt-get install pysdm 即可.之后可以在系统菜单里找到它。
进去后小小的设置下就行了,操作很简单.

重启下,挂载成功.

不过,我发现就是PySDM 好像分不清 /dev/sda1 和 /dev/sdb1,会出现挂载出错的现象。难道这是一个bug???
[ ] ( 2729 次浏览 ) 永久链接 ( 3.1 / 2698 )
分享点网易的源 - for ubuntu 11.04 

上个月28号,我最爱的linux 桌面发行版-ubuntu 发布了代号为 natty 的11.04版本,我也在第一时间下载,刻了盘。今天终于安装上了,感觉很棒!

用linux,最重要的就是更新源的速度,网易一直是好样的~一直是稳定和最快的。

先将其同步的ubuntu 的最新版本的源地址分享至此:

deb http://mirrors.163.com/ubuntu/ natty main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ natty-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ natty-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ natty-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ natty-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ natty main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ natty-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ natty-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ natty-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ natty-backports main restricted universe multiverse

或者,你也可以直接下载源文件(http://mirrors.163.com/.help/sources.list.natty),重命名并覆盖掉/etc/apt/sources.list即可, 不过我本人不推荐。

更多参见:http://mirrors.163.com/.help/ubuntu.html

速度很好~
[ ] ( 2093 次浏览 ) 永久链接 ( 3 / 2502 )
升级安装 hiawatha 7.4.1 和 nginx 1.0.0 

最近吧,也就是几天的时间,我说用的hiawatha web server 放出了一个小幅度的安装升级包--7.4.1,主要是修复了前一稳定版7.4中会导致服务器崩溃的bug,官方标记为高危级别.

出于安全考虑,进而跟进。还有就是nginx居然1.0.0了,内牛满面~本月12号nginx的作者Igor Sysoev 发布了nginx最新稳定版1.0.0,继windows平台音频播放神器foobar2k后,版本号达到整数 "1".

就冲这版本号,咱也得火速跟进啊~囧

于是,今天午饭后抽出了一段时间,下载了各自的源码包,解压,进入目录

首先是hiawatha web server,
我的configure:
[root@PowerPC hiawatha-7.4.1]# ./configure \
> --prefix=/usr/local/hiawatha \
> --exec-prefix=/usr/local \
> --sysconfdir=/etc/sysconfig \
> --localstatedir=/var \
> --disable-largefile \
> --disable-ipv6 \
> --disable-ssl

检查依赖,通过.
注:关于hiawatha自带的 monitor的取舍,我犹豫了下,毕竟我基本没用到,最终还是编译进去了.

接下来,make && make install 编译和安装。

完成后,恢复安装之前备份好的配置文件,主要是 hiawatha.conf 和 fastcgi.conf 两个.

然后就可以成功启动服务器了.

接下来是nginx,一样,先备份配置文件,由于我的nginx只负责静态文件,故而只有nginx.conf文件.

我的configure:
[root@PowerPC nginx-1.0.0]# ./configure \
> --prefix=/usr/local/nginx \
> --sbin-path=/usr/local/sbin/nginx \
> --conf-path=/etc/sysconfig/nginx/nginx.conf \
> --error-log-path=/var/log/nginx/error.log \
> --pid-path=/var/run/nginx/nginx.pid \
> --lock-path=/var/run/nginx/nginx.lock \
> --user=http \
> --group=web \
> --with-select_module \
> --with-poll_module \
> --with-file-aio \
> --with-http_realip_module \
> --with-http_flv_module \
> --with-http_gzip_static_module \
> --without-http_ssi_module \
> --without-http_auth_basic_module \
> --without-http_geo_module \
> --without-http_rewrite_module \
> --without-http_proxy_module \
> --without-http_fastcgi_module \
> --without-http_uwsgi_module \
> --without-http_scgi_module \
> --http-log-path=/var/log/nginx/access.log \
> --http-client-body-temp-path=/tmp/nginx/req.tmp \
> --without-mail_pop3_module \
> --without-mail_imap_module \
> --without-mail_smtp_module \
> --without-pcre

检查依赖,一切顺利。打印出了编译大致:

Configuration summary
+ PCRE library is disabled
+ OpenSSL library is not used
+ md5: using system crypto library
+ sha1 library is not used
+ using system zlib library

nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/sbin/nginx"
nginx configuration prefix: "/etc/sysconfig/nginx"
nginx configuration file: "/etc/sysconfig/nginx/nginx.conf"
nginx pid file: "/var/run/nginx/nginx.pid"
nginx error log file: "/var/log/nginx/error.log"
nginx http access log file: "/var/log/nginx/access.log"
nginx http client request body temporary files: "/tmp/nginx/req.tmp"


粗略看下,没有问题。开始编译.make && make install.
之后安装完成.

再恢复下配置文件 nginx.conf,就可以启动nginx了.

至此,升级完成.
[ ] ( 3924 次浏览 ) 永久链接 ( 2.9 / 2604 )
升级 vsftpd 到 2.3.4 

我之前vps上的vsftpd 是2.3.2.今天闲的蛋疼,便逛逛vsftpd的官网,发现新版本2.3.4已经发布了,包含了一些bugfix,不过其中有个关于CPU占用率的问题还是蛮值得升级的,故而火速跟进。

注:有人会奇怪,那2.3.3 哪里去了?其实之前的那些更新内容是2.3.2和2.3.3之间的,不过在2.3.3发布一会后,就出现了编译的bug.于是2.3.4便火速发布了~~

下载源码包(ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.3.4.tar.gz),解压,进入目录

vsftpd 编译很简单,直接make 即可.之后便可以 make install 安装到对应目录下.
其实就是vsftpd 主程序和man手册的安装。

如果不愿意make install 安装的话,也可以手动安装。即

cp vsftpd /usr/local/sbin/vsftpd
cp vsftpd.conf.5 /usr/local/man/man5
cp vsftpd.8 /usr/local/man/man8


而且由于vsftpd 的安装并不包括配置文件,所以也不要备份我原来的配置。直接覆盖安装,即可重新启动了。

检查下版本,
[root@PowerPC vsftpd-2.3.4]# vsftpd -v
vsftpd: version 2.3.4

ok.

启动vsftpd,
[root@PowerPC vsftpd-2.3.4]# vsftpd &
[1] 23817

ok.

测试下pam_mysql 验证登录(其实没必要),
[root@PowerPC vsftpd-2.3.4]# ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 Welcome to XiaoXin's FTP site.
Name (127.0.0.1:root): xzx
331 Please specify the password.
Password:***
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,52,77).
150 Here comes the directory listing.
-rwxrwxr-x 1 502 500 230376 Apr 01 10:46 xmarks.json
-rw------- 1 502 500 246 Dec 12 05:49 unnamed
226 Directory send OK.
ftp> exit
221 Goodbye.

至此,升级成功.
[ ] ( 2573 次浏览 ) 永久链接 ( 3 / 2854 )
让Vranish 传递客户端真实且唯一ip到后置服务器 

首先要说明的是,我的vps是使用varnish作为前置缓存服务器的,后置服务器使用的是nginx 和 hiawatha.前者主要负责 静态文件,而后者则连接php-fpm,处理动态页面.

varnish 监听的是80端口,hiawatha、nginx 分别是81,82.既然有了前置的varnish,自然不想让客户端绕过它直接访问后置服务器,所以我之前做法的是让nginx、hiawatha只监听和允许本地(127.0.0.1、localhost)请求,也就是本地的varnish的请求。

这一点不难做到,通过nginx 的allow、deny 以及 hiawatha 的allowlist 控制符即可达到,见下

#nginx

server {
listen 82;
server_name chinesepaladin.tk;
charset utf-8;
root /home/http/chinesepaladin_tk/;
index index.html index.htm;
allow 127.0.0.1;
deny all;
}


#hiawatha

VirtualHost {
Hostname = chinesepaladin.tk
WebsiteRoot = /home/http/chinesepaladin_tk
StartFile = index.php
UseFastCGI = PHP5
UseToolkit = pw
AccessList = allow 127.0.0.1,deny all
}


而varnish 默认的client ip 就是本身的 server ip(即 127.0.0.1),所以本地访问控制就成功了.

可是,用了一段时间后,问题来了。
由于后置服务器的访客来源都是本地,一直以访客ip作为唯一标识符的wp评分插件——wp-postrating出现问题了,因为来自各个地区的访客都被varnish 标记为了同一个用户——本地访客。

也就是说,一旦有一位访客对某篇文章评了分,之后的其他人都无法再评分了。 囧rz

这个问题很恶心,当我意识到后,我认为很棘手。于是向varnish 邮件列表写了一封求教信,不过收获不大。

终于,在昨天,当我在翻看varnish 的wiki时,我找到了一个大概可行的方案,于是今天我便尝试了一下。

还是与请求对象req有关系,详见下:

if (req.restarts == 0) {
if (req.http.x-forwarded-for) {
set req.http.X-Forwarded-For =
req.http.X-Forwarded-For ", " client.ip;
#req.http.X-Forwarded-For + ", " + client.ip; 不能加'+',报错。
#wiki 里的内容过期了.
} else {
set req.http.X-Forwarded-For = client.ip;
}
}


把上段配置放在vcl_recv()块里面,就行了.这样的话,后置服务器既不会挡掉来自本地的请求,也不会对不通过varnish的请求放行.最重要的是每个访客现在都有了一个唯一的ip来源.

重新读取配置文件,进入控制台
varnishadm -T 127.0.0.1:2000
vcl.load default /etc/sysconfig/varnish/default.vcl
vcl.use default

OK了,评分系统工作正常了。哈哈~

不过高兴没多久,我惊奇的发现使用混合ip的办法,hiawatha居然不认……所有分配给hiawatha的请求依然被无情的挡掉了。我擦~

好在又想到了一个解决方案,就是
1.注释掉hiawatha配置文件里面的所有allowlist.
2.将Binding 块里的Interface 项设成 127.0.0.1,如下

Binding {
Port = 81
Interface = 127.0.0.1 #监听且仅监听 127.0.0.1 地址
MaxKeepAlive = 30
MaxRequestSize = 9999
MaxUploadSize = 10
TimeForRequest = 8,20
}


这样就万无一失了,重启hiawatha.
pkill hiawatha && hiawatha

这次总算成功了。
[ ] ( 2036 次浏览 ) 永久链接 ( 3.1 / 2964 )

<< <上一页 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 下一页> >>