FreeBSD上搭建squid代理mysql认证服务器( 二 )



install:
$(INSTALL) -o nobody -g nogroup -m 755 mysql_auth /usr/local/squid/bin/mysql_auth
$(INSTALL) -o root -g wheel -m 700 mypasswd /usr/local/bin/mypasswd
$(INSTALL) -o nobody -g nogroup -m 600 $(CONF) /usr/local/squid/etc/mysql_auth.conf
$(INSTALL) -o nobody -g nogroup -m 600 $(CONF) /usr/local/squid/etc/mysql_auth.conf.default 关键是 CFLAGS = -I/usr/local/include -L/usr/local/lib 这一行它认为libmysqlclients.a在/usr/local/lib这个目录下,实际上我的在/usr/local/lib/mysql 下,这个就是错误的原因,所以你要改写这句话把它改成你的libmysqlclients.a所在的地方,(这个文件cp 到/usr/local/lib不行我试过,不知道别人怎么样)
我的就是 CFLAGS = -I/usr/local/include -L/usr/local/lib/mysql 这样就ok了,相信你也能ok的 。
然后在make install,如果这儿过不去,那么可能是这个问题看看你现在有没有对/usr/local/squid/bin和/usr/local/squid/etc
这个有权限,如果没有改过来,如果没有这个目录那么mkdir建立这两个目录,相信这样之后你就能通过编译了 。
哈哈 。差不多快搞定?br> 修改squid.conf
BSD# cd /usr/local/etc/squid
BSD# vi squid.conf
acl passWord proxy_auth REQUIRED
http_access allow password
auth_param basic program /usr/local/squid/bin/mysql_auth 有这三句话,mysql的认证就可以了,但是你要保证squid对mysql_auth有权限 。如果什么都是对的认证通不过往往就是mysql_auth的权限问题 。
运行squid看看正常吗,squid –z 先初始话cache,然后 squid -NCd1 如果squid出错你就看看squid的文档去吧,网上又很多的,随便提一句很可能是你的文件夹的权限问题,像log这类看看squid对她有没有权限 。Squid完成了接着是mysql了我的数据库没有初始话,一些安全措施都没有作,用的是root用户而且密码是空的所以可能和实际做的不一样了,实际的root的应该有密码
BSD# cd /tmp/10-13/mysql_auth-0.5/scripts
BSD# cd path/to/mysql_auth-source/scripts
BSD# mysql -u root -p < create_script
Enter password: 你的root的密码,如果没有那么就没有这行输入
To add a user:
BSD#> mysql –u root-p mysql_auth
Enter password:
Welcome message...mysql> insert into data values ("wjp", "123456");
Query OK, 1 row affected (0.00 sec)
mysql>
如果你希望data表里存的密码是加密的那么就用password这个函数如下如果这儿用的是加密方式那么mysql_auth.conf中也要指定是加密方式,默认的密码是不加密的 。mysql_auth.conf中的选项是 encrypt_password_form NO 改成YES就行了 encrypt_password_form YES shell> mysql -u your_user_name -p mysql_auth
Enter password:
Welcome message...mysql> insert into data values ("wjp", password("123456"));
Query OK, 1 row affected (0.00 sec)
到这一步你运行mysql,运行squid,然后设上代理用wjp这个帐号,用123456这个密码就可以了,good luck!^_^如果你的mysql不和squid装在一台机器上,你就要配置mysql_auth.conf这个文件了以下是对mysql_auth.conf简单的解释,说明写的很清楚,如果你熟悉mysql的话作这个没有问题的 。我也不多说了 。如果不太明白的我建议先看看mysql 。
现在来看看mysql_auth.conf
# mysql_auth.conf - an mysql authenticator config file
# this is the default name. you can call this by other name,
# but set up it in mysql_auth-source/src/define.h.
#
# comment: first character in line is "#"
# empty line (EOL at first) allowed
#
# format of parameters and their values:
# parameter - SPACE(S) and/or TAB(S) - value
#
# IMPORTANT: see the mysql_auth-source/scripts/create_script
# this configuration file made by this script
#
# by Ervin Hegedus, 2002# hostname
#
# where is the mysql server - the server hostname or IP address;
# first "hostname" directive, and after space(s) or tab(s) its
# value

推荐阅读