Chinaunix首页 | 论坛 | 博客
  • 博客访问: 515303
  • 博文数量: 95
  • 博客积分: 5168
  • 博客等级: 大校
  • 技术积分: 1271
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-28 23:31
文章分类

全部博文(95)

文章存档

2013年(2)

2012年(3)

2011年(1)

2010年(8)

2009年(81)

分类: LINUX

2009-11-24 20:37:46

教研室需要,前几天在linux下搭建了一个php服务器,ftp服务器和squid代理服务器。

下面记录下这些东西:

环境:

Ubunut9.10

1. php服务器搭建:

       linux下一般采用apache+mysql+php

sudo apt-get install ssh

sudo apt-get install mysql-server-5.0

sudo apt-get install apache2

sudo apt-get install php5 libapache2-mod-php5
       sudo apt-get install php5-mysql

sudo mysqladmin -u root password newpassword
      (一般自动网站需要手工先建一个database)
(

$ mysql -u adminusername -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5340 to server version: 3.23.54
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
mysql> CREATE DATABASE databasename;
Query OK, 1 row affected (0.00 sec)
 
mysql> GRANT ALL PRIVILEGES ON databasename.* TO "wordpressusername"@"hostname"
    -> IDENTIFIED BY "password";
Query OK, 0 rows affected (0.00 sec)
  
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

mysql> EXIT

上面就安装完了,但是要配置一些东西:

1)修改ServerRoot

sudo gedit /etc/apache2/apache2.conf

     比如修改为ServerRoo=/var/www

   同时要修改: /etc/apache2/sites-enabled/000-default文件:


  2         ServerAdmin webmaster@localhost
  3
  4         DocumentRoot /media/data/service/www/
  5        
  6                 Options FollowSymLinks
  7                 AllowOverride None
  8        

  9        
 10                 Options Indexes FollowSymLinks MultiViews
 11                 AllowOverride None
 12                 Order allow,deny
 13                 allow from all
 14        
 15
 16         ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 17        
 18                 AllowOverride None
 19                 Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
 20                 Order allow,deny
 21                 Allow from all
 22        


     2php配置。

         sudo gedit /etc/php5/apache2/php.ini

这个只需修改一个东西就可以了。

extension=mysql.so取消注释。

既激活它,否则像mysql-connect等函数在php不能使用。

然后sudo /etc/init.d/apache2 restart既可以了。

然后php源码放到/var/www目录即可。

2.  ftp服务器搭建:

      sudo apt-get install vsFtpd

然后就是配置了,我们的要求是不能匿名登陆,有几个账号,不同的账号有不同的权限,比如一个账号拥有所有全新,而另一个账号能上传,但是不是新建文件夹,删除操作等。

这个要求是用vsftpd的虚拟用户很好实现。

首先是认证部分:

sudo apt-get install db4.6-util

sudo db3_load -T -t hash -f user.txt /etc/vsftpd_login.db

sudo chmod 600 /etc/vsftpd_login.db

上面user.txt中格式是:

用户名

密码

用户名

密码

/etc/pam.d目录中建立vsftpd.vu
sudo gedit /etc/pam.d/vsftpd.vu

内容如下

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

然后配置vsftpd.conf

/etc/vsftpd.conf

为:

listen=YES

anonymous_enable=NO

dirmessage_enable=YES

xferlog_enable=YES

xferlog_file=/var/log/vsftpd.log

xferlog_std_format=YES

chroot_local_user=YES

guest_enable=YES

guest_username=rtlab

user_config_dir=/etc/vsftpd_user_conf

pam_service_name=vsftpd.vu

local_enable=YES

secure_chroot_dir=/var/run/vsftpd

 

上面的/etc/vsftpd_user_conf是各个用户的配置文件:

下面就来配置:比如对于public用户:

Sudo gedit /etc/vsftpd_user_conf/public

 

输入:

write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/ftp/

上面还要建用户rtlab.

Sudo adduser –d /home/ftp -s /bin/false

sudo chown rtlab /home/ftp/

然后sudo server vsftpd restart

如果想要更多的权限限制可以使用:

比如要把删除文件和目录的命令取消,在vsftp_user_conf里添加如下命令:
cmds_allowed=ABOR,APPE,CWD,CDUP,FEAT,LIST,MKD,MDTM,PASS,PASV,PWD,QUIT,RETR,REST,
STOR,STRU,TYPE,USER
现在支持断点续传(上传和下载)。

3.  squid代理服务器搭建。

         我们实现的是用户名和密码验证的模式:

      首先是

sudo apt-get source squid squid-common

这就账号了,由于要认证,执行下面这个:

sudo htpasswd -c /var/squid/etc/password rtlab

 

然后在/etc/squid/squid.conf中的#http_access allow all前面加如下配置即可。

auth_param basic program /usr/lib/squid/ncsa_auth /var/squid/etc/password

auth_param basic children 5

auth_param basic realm My Proxy Caching Domain

auth_param basic credentialsttl 2 hours

acl normal proxy_auth REQUIRED

http_access allow normal

如果要添加时间限制:

     acl worktime time MTWHF 9:00-11:40 14:00-17:30
     http_access deny worktime

     http_access allow normal

这样即可。

同时要将linux的转发功能开通,这个我也困扰了很久。

后来试着去做才发现:

Sudo –i

echo “1”>/proc/sys/net/ipv4/ip_forward

即可。

                              

然后squid restart

然后其他代理客户端只需使用rtlab 密码即可使用这个代理。

 

阅读(1470) | 评论(0) | 转发(0) |
0

上一篇:有感钱学森逝世

下一篇:多核包围我们

给主人留下些什么吧!~~