编译安装 vsftpd + pam-mysql 管理虚拟用户 

鉴于pureftpd最近不稳定的发布新版本,我觉得应该更换一个更加安全的ftp服务端。

于是,vsftpd 出现了。之所以选择它是因为

1.它的名字比较安全 2.像 openbsd.org,redhat,gnu.org等都在用它,应该错不了.

于是下载了vsftpd最新版本 2.2.2.解压

编译vsftpd是一件很easy的事情,因为作者Chris已经提供了现成的makefile了,不存在依赖问题了,你只要make一下即可.

不过在编译之前,你得根据自己的需求,编辑一下builddefs.h文件,把你需要编译进来的功能定义进来。就是把#undef 改成 #define 即可(切忌不要和我一样想当然,认为是把前面的"#"删掉... 囧rz)

比如我待会要用到pam验证,所以改成 #define VSF_BUILD_PAM。

接下来make install,完了之后把需要的配置文件(源码提供的配置样式)拷过来.


cp vsftpd /usr/local/sbin/vsftpd
cp vsftpd.conf /etc
cp RedHat/vsftpd.pam /etc/pam.d/ftp

vsftpd.conf 的具体配置可以参见官方提供的doc:
http://vsftpd.beasts.org/vsftpd_conf.html

现在敲命令"vsftpd &",已经可以正常启动vsftpd了,只不过login failure罢了,因为没有用户.

至此看来,vsftpd的确是比pureftpd方便,不过现在的认为是大错特错了。
因为pureftpd 自带了与时下流行的跨平台数据库,如mysql、postgresql、oracle等的桥接.
只要编译时带个 --with-mysql 之类的参数,而后再编辑一个pureftpd-mysql.conf就可以了.

但是vsftpd却是通过pam去验证用户的.
首先安装pam-devel(我已经有了).
yum install pam-devel 即可.

下载pam-mysql源码,解压
我的configure:

It was created by pam_mysql configure 0.7RC1, which was
generated by GNU Autoconf 2.59. Invocation command line was

$ ./configure --prefix=/usr/local/pam --with-mysql=/usr/local/mysql

完成后, ls -l /lib/security/ ,看看有没有 pam_mysql.so 文件.

而后编辑之前拷来的 /etc/pam.d/ftp 文件,
"#"注掉里面所有内容,加入

auth required pam_mysql.so user=USER passwd=PASSWD host=localhost db=DATABASE table=TABLE usercolumn=USERNAME passwdcolumn=PASSWORD crypt=2

account required pam_mysql.so user=USER passwd=PASSWD host=localhost db=DATABASE table=TABLE usercolumn=USERNAME passwdcolumn=PASSWORD crypt=2

这些都是指定哪个用户,密码是什么,它通过pam-mysql去查询哪个数据库的哪张表的哪些字段,ftp用户的用户名和密码对应的哪两个字段等.
当然,这些数据库,表都得事先建好.并给你指定的用户授权一下。
大写内容如 USER 等根据实际更改.crypt=2 表示用mysql自带的PASSWORD()函数加密, 0 表示明文存放.

此时编辑 /etc/vsftpd.conf,找到pam_service_name=字段(没有就自己加),赋值给刚刚修改pam的文件名 vsftpd.

之后重启vsftpd,按照你数据里面插入的用户数据便可成功登录ftp.

PS:在建用户表的时候,密码字段(varchar)一定要设置长一点,我当时就是设了40,谁知道mysql PASSWORD()函数加密后有50位,害得我总是登录不了。郁闷了好长时间.

vsftpd的确是一个很强大的ftp服务端,只要你配置vsftpd.conf得当,它的能力是不可估量的。
具体配置可以参见官方提供的doc:
http://vsftpd.beasts.org/vsftpd_conf.html
[ ] ( 2390 次浏览 ) 永久链接 ( 3 / 2845 )
编译安装 mysql-5.4.3-beta 通过 

由于我的vps上面跑的是老版本的mysql 5.1.33,最近打算升级到最新版本.

5.1 支线是官方推荐的稳定版,最新的是刚刚发布的 5.1.41 吧。不过我这个人比较喜欢尝鲜,于是自己下载了最新的开发版分支5.4的最新beta 版--5.4.3.

解压,编译.

我的configure:

It was created by configure, which was
generated by GNU Autoconf 2.63. Invocation command line was

$ ./configure --prefix=/usr/local/mysql --with-charset=gbk --with-extra-charsets=all --with-system-type --with-machine-type --with-unix-socket-path=/var/mysql.sock --with-mysqld-user=my_sql --with-zlib-dir=bundled --with-error-inject --with-embedded-server --with-embedded-privilege-control

值得注意的事,如果你的mysql上要跑像 discuz! 等社区论坛,用到了gbk,gb2312编码,那得像我一样加上 --with-charset=gbk 参数,不然导入数据时候,会报错...

mysql编译有点慢,得等等.机器配置好另当别论
[ ] ( 2215 次浏览 ) 永久链接 ( 2.9 / 2662 )
成功编译 php 5.3.1 通过 

最近php 发布了最新的一个版本5.3.1,由于修复了很多bug,于是决定升级.

废话不说,我的configure:

[root@linuxserver php-5.3.1]# ./configure --prefix=/usr/local/php --enable-mod-charset --with-apxs2=/usr/local/apache/bin/apxs --enable-safe-mode --with-pcre-regex --with-zlib --with-bz2 --enable-calendar --with-curl --enable-dba --enable-exif --enable-ftp --with-gd --with-mhash --with-imap --with-kerberos --with-imap-ssl --enable-intl --with-ldap --enable-mbstring --with-mcrypt --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-sockets --enable-wddx --enable-zip --with-icu-dir=/usr/local/ICU --with-pear --enable-zend-multibyte

这次的编译较往常的源码编译安装,最大的不同点就是php不会在生产 如 libphp5.so 的扩展模块文件了,而是根据用户的编译参数,
直接通过
libtool --finish /path/to/src/libs
这样的命令直接生成到目标目录.
省事了不少,大家也不要在make install 后为找不到 .so 扩展而惊讶了.
[ ] ( 2686 次浏览 ) 永久链接 ( 2.9 / 3033 )
編译安装 wine 1.1.32 成功 

我不得不说:源码安装 wine 是一件很轻松的事情.因为它几乎不需要你做什么.

我的 configure:

It was created by Wine configure 1.1.32, which was
generated by GNU Autoconf 2.64. Invocation command line was

$ ./configure --prefix=/usr/local/wine --with-x

編译wine有个好处,就时它会在检查依赖的最后,告诉你缺少了什么. ^_^

我的报告:

configure: libXxf86vm development files not found, XFree86 Vidmode won't be supported.
configure: libxcomposite development files not found, Xcomposite won't be supported.
configure: lib(n)curses development files not found, curses won't be supported.
configure: libsane development files not found, scanners won't be supported.
configure: libgphoto2 development files not found, digital cameras won't be supported.
configure: libcapi20 development files not found, ISDN won't be supported.
configure: libgsm development files not found, gsm 06.10 codec won't be supported.
configure: libmpg123 development files not found (or too old), mp3 codec won't be supported.
configure: libopenal development files not found (or too old), OpenAL won't be supported.
configure: libldap (OpenLDAP) development files not found, LDAP won't be supported.
configure: WARNING: libxml2 development files not found, XML won't be supported.
configure: WARNING: libxslt development files not found, xslt won't be supported

一个个 apt-get 即可.

虽说,wine很方便设置,不过它的 make 过程的确是很恐怖,足足花掉了我半个小时的时间.
不敢想象,如果机器配置一般的话,估记要疯了.

附 在ubuntu上用wine跑龙卷风收音机 截图一张:

话說这款小巧的软件很不错.
[ ] ( 3126 次浏览 ) 永久链接 ( 3 / 2913 )
编译安装 MPlayer SVN-r29832-snapshot-4.4.1 通过 

最近换上了UBUNTU 9.10,许多软件都要全新安装,mplayer也不例外.

下载mplayer最新的 snapshot版本,解压.

我的 configure:

configuration: --prefix=/usr/local/mplayer --enable-gui --enable-radio --enable-radio-capture --enable-wii --language-doc=zh_CN --language-man=zh_CN --language-msg=zh_CN --language=zh_CN

缺依赖就 apt-get.

值得注意的是:mplayer编译 --enable-gui 需要 gtk+ 库的支持.

下载gtk+最新版本 2.19.0的源码編译,需要依赖glib,pango,cairo,atk等
(一定要先cairo后pango,否则编译gtk+时会找不到cairo).
而在 built glib 的时候,又需要gettext.
当make gettext 的时候,如果和我一样,用的是GCC4.4.1 这样的较新的版本,会报一个传递参数数量不匹配的错,要注意修改.

附我安装gtk+组件的 configure:

It was created by gtk+ configure 2.19.0, which was
generated by GNU Autoconf 2.63. Invocation command line was

$ ./configure --prefix=/usr/local/gtk+

It was created by glib configure 2.22.2, which was
generated by GNU Autoconf 2.63. Invocation command line was

$ ./configure

It was created by pango configure 1.26.0, which was
generated by GNU Autoconf 2.63. Invocation command line was

$ ./configure

It was created by configure, which was
generated by GNU Autoconf 2.61. Invocation command line was

$ ./configure

当然,这一切都可以通过 apt-get 获得.

[ ] ( 2865 次浏览 ) 永久链接 ( 3 / 2929 )

<< <上一页 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 下一页> >>