<?php

Currently browsing centos

linux下erlang之OTP编译安装

在安装otp时遇到了一点问题,整体的安装过程比较简单。

wget http://erlang.org/download/otp_src_R13B04.tar.gz
tar xzf otp_src_R13B04.tar.gz
cd otp_src_R13B04
./configure --prefix=/home/erlang

configure之后发现有以下提示信息:
[code lang="code"]
*********************************************************************
********************** APPLICATIONS DISABLED **********************
*********************************************************************

odbc : ODBC library - link check failed
jinterface : No Java compiler found

*********************************************************************
*********************************************************************
********************** APPLICATIONS INFORMATION *******************
*********************************************************************

wx : wxWidgets not found, wx will NOT be usable

*********************************************************************
*********************************************************************
********************** DOCUMENTATION INFORMATION ******************
*********************************************************************
[/code]

我们只需要关注APPLICATIONS DISABLED部分的提示信息,至于其他提示信息需要根据使用情况酌情处理。
这里我只需要解决APPLICATIONS DISABLED部分的问题:
1,安装unixODBC和unixODBC-devel,解决第一个问题;
2,因为我这里用不上java编译了,因此可以在configure时增加 –disable-javac 避免第二个错误;

yum install unixODBC unixODBC-devel
./configure --prefix=/home/erlang --without-javac
make && make install

ok, 安装成功了。
下面给erl做一个软连接到/usr/local/bin/,以方便使用

ln -s /home/erlang/bin/erl /usr/local/bin/erl

测试一下:

bash-3.2# erl
Erlang R13B04 (erts-5.7.5) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.7.5  (abort with ^G)
1> EvenN = lists:filter (fun (N) -> N rem 2 == 0 end, lists:seq (1,100)).
[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,
 44,46,48,50,52,54,56,58|...]
2> halt().
bash-3.2#

注:以上操作在centOS5下完成。

nginx为目录增加auth_basic认证

之前几次配置一直失败,刚才闲来无事试了下。。居然成功了!记录一下

由于nginx的auth_basic认证采用的是与apache兼容密码文件,因此需要用到apache的htpasswd用以生成密码文件。

首先且到root, 安装httpd (如果已经安装的,可以跳过)

/usr/bin/yum install httpd

安装完毕之后就可以先找一下htpasswd的位置

/usr/bin/whereis htpasswd
htpasswd: /usr/bin/htpasswd /usr/share/man/man1/htpasswd.1.gz

可以看到路径是 /usr/bin/htpasswd

接下来就生成密码文件并添加一个用户(master)吧

/usr/bin/htpasswd -c /home/nginx/conf/authdb master

会得到以下提示信息
New password:
输入密码之后,系统会要求再次输入密码。确认之后即添加完毕。

然后就是修改nginx的配置文件,在需要使用auth_basic添加配置;
例如需要在 http://zhys9.com/secret/ 目录使用;

/bin/vi /home/nginx/conf/nginx.conf

找到zhys9.com对应的server段

增加一个location段

location /secret/
{
    auth_basic  "Secret Garden.";
    auth_basic_user_file  /home/nginx/conf/authdb;
}

保存退出之后,要记得reload一下nginx

/home/nginx/sbin/nginx -s reload

ok, 访问http://zhys9.com/secret/ 看看是否生效了?

centos下的ncftpd安装配置添、加用户

本来在测试机上一直都是用rz和sz上传下载文件的,但是遇到大批量时就感觉非常麻烦。。或者是用rsync? 其实也是不错的选择,只是有没有不需要主机权限的方式呢?

没错,就是ftp啦。。 目前公司用的比较多的是ncftpd所以这里也选择它了。下面进入安装阶段:

wget ftp://ftp.ncftp.com/ncftpd/2.8.6/ncftpd-2.8.6-linux-x86_64-export.tar.gz
tar xzf ncftpd-2.8.6-linux-x86_64-export.tar.gz
cd ncftpd-2.8.6
#安装到/home/ncftpd/ 并指定端口为11121
./install_ncftpd.pl --prefix=/home/ncftpd --port=11121

接下来是配置:

修改一下ftp用户登录认证相关的设置

vi /home/ncftpd/etc/ncftpd/domain.cf

77行修改为:server-type=non-anonymous-only
114行修改为:passwd=/home/ncftpd/passwd.db

以交互式增加一个用户:

/home/ncftpd/sbin/ncftpd_passwd -f /home/ncftpd/passwd.db -A

根据SHELL的提示信息很方便就可以增加ftp用户了。如果只是自己使用的话整个过程需要注意的就只是以下几项:
Short user name     (账号名)
Password    (密码)
UID    (uid,我用的是99)
GIDs    (gid,我用的也是99)
Home directory    (ftp用户登录后的默认目录,访问权限被限定到此目录之下)
Shell    (ftp用户可以使用的Shell,出于安全考虑最好还是使用 /sbin/nologin)

值得注意一点是uid和gid,我这里使用的都是99即nobody;

最后重启一下ncftpd:

/home/ncftpd/sbin/restart_ncftpd

现在就可以用ftp客户端连接了(记得要用端口11121喔),一切看上去都是那么简单。