vsftpd2.3.4 源码安装脚本

[不指定 2011/04/01 21:06 | by xiaoyuwxz ]
本内容为原创内容,转载请注明:
本文来自http://blog.gsywx.com

下载文件 (已下载 124 次)



本安装为vsftpd2.3.4源码包安装,安装环境为centos5.5 32位,安装过程中创建ftp用户为:www,密码为:123654,并打开日志,日志为:/var/log/vsftpd.log 和 :/var/log/xferlog

下面为安装脚本,也可以直接下载附件包上传后进行安装。


#!/bin/bash
clear
echo "----------------源码安装vsftpd安装程序,按任意键继续----------------"  
get_char()
  {
  SAVEDSTTY=`stty -g`
  stty -echo
  stty cbreak
  dd if=/dev/tty bs=1 count=1 2> /dev/null
  stty -raw
  stty echo
  stty $SAVEDSTTY
  }
  echo ""
  echo "本安装为本地用户登录FTP,并开启日志,请按任意键继续......"
  char=`get_char`

mkdir -p /usr/local/man/man8/
mkdir -p /usr/local/man/man5/

tar zxvf vsftpd-2.3.4.tar.gz
cd vsftpd-2.3.4
make
make install

cp vsftpd.conf /etc/
#touch /etc/vsftpd.chroot_list
touch /etc/ftpusers
cat >>/etc/ftpusers<<EOF
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
mysql
EOF

touch /var/log/vsftpd.log
cp RedHat/vsftpd.pam /etc/pam.d/vsftpd
cp ../vsftpd /etc/rc.d/init.d/
chmod 755 /etc/rc.d/init.d/vsftpd
chkconfig --add vsftpd
chkconfig  vsftpd on

sed -i 's#anonymous_enable=YES#anonymous_enable=NO#'  /etc/vsftpd.conf
sed -i 's\#local_enable=YES\local_enable=YES\g'  /etc/vsftpd.conf
sed -i 's\#write_enable=YES\write_enable=YES\g'  /etc/vsftpd.conf
sed -i 's\#local_umask=022\local_umask=022\g'  /etc/vsftpd.conf
sed -i 's\#ftpd_banner=Welcome to blah FTP service.\ftpd_banner=Welcome to xiaoyuwxzs FTP service.\g' /etc/vsftpd.conf
sed -i 's\dirmessage_enable=YES\#dirmessage_enable=YES\g' /etc/vsftpd.conf
sed -i 's\xferlog_enable=YES\#xferlog_enable=YES\g' /etc/vsftpd.conf
echo "dual_log_enable=YES" >>/etc/vsftpd.conf
echo "vsftpd_log_file=/var/log/vsftpd.log" >>/etc/vsftpd.conf
sed -i 's\connect_from_port_20=YES\#connect_from_port_20=YES\g' /etc/vsftpd.conf
echo "pam_service_name=vsftpd" >>/etc/vsftpd.conf
echo "chroot_local_user=YES" >>/etc/vsftpd.conf
echo "增加www用户组,并增加www用户,www家目录设为/home/wwwroot/"
sleep2
groupadd www
useradd www -g www -d /home/wwwroot/ -s /sbin/nologin
echo "123654" | passwd --stdin www
chown www.www /home/wwwroot/
service vsftpd start
sleep 1
echo "删除安装临时文件.............."
rm -Rf vsftpd-2.3.4
echo
echo
echo " ------------------- 如需增加新用户,请使用以下命令 -------------------"
echo "|      useradd 用户名 -g 用户组 -d 用户家目录 -s /sbin/nologin         |"
echo "|               如需禁用用户,增加用户名到 /etc/ftpusers               |"
sleep 1
echo " -------------------------- vsftpd 安装结束! --------------------------"
echo
Tags:
httpd.conf中增加:
Listen 81
Listen 82
Listen 83
并同时开启:
Include conf/extra/httpd-vhosts.conf

httpd-vhosts.conf配置三个站点,分别对应81 82 83 三个端口,配置如下:

#-------------------- default root open with http://ip -------------------------
<VirtualHost *:81>
    ServerAdmin root@localhost
    DocumentRoot "/home/wwwroot/htdocs"
    ServerName 192.168.0.2
#    ServerAlias locahost 127.0.0.1
#    DirectoryIndex index.html index.html.var index.php
#   ErrorLog "logs/error.log"
#   CustomLog "logs/access.log" common
</VirtualHost>

#------------------------- virtual web www.aaa.com -----------------------------
<Directory /home/wwwroot/htdocs>
    AllowOverride ALL
    Allow from all
</Directory>

<VirtualHost *:82>
    ServerAdmin admin@gsywx.com
    DocumentRoot /home/wwwroot/htdocs/www.aaa.com
    ServerName www.aaa.com
#    ServerAlias *.aaa.com
#    ErrorLog "logs/www.aaa.com-error.log"
#    CustomLog "logs/www.aaa.com-access.log" common
</VirtualHost>

#------------------------- virtual web www.bbb.com -----------------------------
<Directory /home/wwwroot/htdocs>
    AllowOverride ALL
    Allow from all
</Directory>

<VirtualHost *:83>
    ServerAdmin admin@gsywx.com
    DocumentRoot /home/wwwroot/htdocs/www.bbb.com
    ServerName www.bbb.com
#    ServerAlias *.bbb.com
#    ErrorLog "logs/www.bbb.com-error.log"
#    CustomLog "logs/www.bbb.com-access.log" common
</VirtualHost>



nginx中的vhost.conf中配置对应的三个虚拟主机,配置如下:

  upstream  phppool1 {
  server 127.0.0.1:81;
   }

  upstream  phppool2 {
  server 127.0.0.1:82;
   }

  upstream  phppool3 {
  server 127.0.0.1:83;
   }

#------------------------------- default web dir -------------------------------
server
             {
                        listen 80;
                        server_name 192.168.0.2;
                        root /home/wwwroot/htdocs;
                        location / {
                              proxy_pass http://phppool1;
                              proxy_set_header Host $host;
}
}

#-------------------------------- www.aaa.com --------------------------------
server
             {
                        listen 80;
                        server_name www.aaa.com;
                        root /home/wwwroot/htdocs/www.aaa.com;
                        location / {
                              proxy_pass http://phppool2;
                              proxy_set_header Host $host;
}
}

#-------------------------------- www.bbb.com --------------------------------
server
             {
                        listen 80;
                        server_name www.bbb.com;
                        root /home/wwwroot/htdocs/www.bbb.com;
                        location / {
                              proxy_pass http://phppool3;
                              proxy_set_header Host $host;
}
}
本内容为原创内容,转载请注明:
本文来自http://blog.gsywx.com


在用centos建立网站环境时,出现了这样的问题:
网站上的图片无法在IE中正确打开,发现都变形了,或色彩变得模糊或一块块的,使用图片另存为,发现图片只有上面一部份,下面部份丢失,或索性整个都不完整。检查网站上的图片完全正确,是用ssh二进制上传的。
重新安装nginx后问题依旧,于是,再安装apache,测试还一样,再用yum安装centos自带的apache,还是如此,后来经朋友查找发现说apache下的sendfile会有某些系统或CPU情况下存在bug,具体不深究它,解决问题即可。
解决方法:
在apache情况下:在httpd.conf中增加语句:EnableSendfile Off
在nginx情况下:修改nginx.conf中的 sendfile on;为 sendfile off;

为了更深地了解此问题,以下内容为搜索来的:

apache 配置中的两个指令EnableMMAP与EnableSendfile详解
访问大文件时>100k,只能送出前30k左右的内容,
在 ie中如何刷新都不能显示完整, 在 firefox中刷新几次后可显示完整,用 wget时,可看出明显的续传的过程.

需要关闭以下两项, 具体还是不知为何,但行之有效:

EnableMMAP 指令
说明 在递送中使用内存映射(memory-mapping)来读取文件
语法 EnableMMAP On|Off
默认值 EnableMMAP On
作用域 server config, virtual host, directory, .htaccess
覆盖项 FileInfo
状态 核心(C)
模块 core

此指令指示httpd在递送中如果需要读取一个文件的内容,它是否可以使用内存映射。当处理一个需要访问文件中的数据的请求时,比如说当递送一个使用mod_include进行服务器端分析的文件时,如果操作系统支持,Apache将默认使用内存映射。

这种内存映射有时会带来性能的提高,但在某些情况下,您可能会需要禁用内存映射以避免一些操作系统的问题:

在一些多处理器的系统上,内存映射会减低一些httpd的性能。
在挂载了NFS的DocumentRoot上,若已经将一个文件进行了内存映射,则删除或截断这个文件会造成httpd因为分段故障而崩溃。
在可能遇到这些问题的服务器配置过程中,您应当使用下面的命令来禁用内存映射:

EnableMMAP Off

对于挂载了NFS的文件夹,可以单独指定禁用内存映射:

EnableMMAP Off

EnableSendfile 指令
说明 使用操作系统内核的sendfile支持来将文件发送到客户端
语法 EnableSendfile On|Off
默认值 EnableSendfile On
作用域 server config, virtual host, directory, .htaccess
覆盖项 FileInfo
状态 核心(C)
模块 core
兼容性 仅在 Apache 2.0.44 及以后的版本中可用

这个指令控制httpd是否可以使用操作系统内核的sendfile支持来将文件发送到客户端。默认情况下,当处理一个请求并不需要访问文件内部的数据时(比如发送一个静态的文件内容),如果操作系统支持,Apache将使用sendfile将文件内容直接发送到客户端而并不读取文件。译者注:Linux2.4/2.6内核都支持。

这个sendfile机制避免了分开的读和写操作以及缓冲区分配,但是在一些平台或者一些文件系统上,最好禁止这个特性来避免一些问题:

一些平台可能会有编译系统检测不到的有缺陷的sendfile支持,特别是将在其他平台上使用交叉编译得到的二进制文件运行于当前对sendfile支持有缺陷的平台时。
在Linux上启用IPv6时,使用sendfile将会触发某些网卡上的TCP校验和卸载bug。
当Linux运行在Itanium处理器上的时候,sendfile可能无法处理大于2GB的文件。
对于一个通过网络挂载了NFS文件系统的DocumentRoot (比如:NFS或SMB),内核可能无法可靠的通过自己的缓冲区服务于网络文件。
如果出现以上情况,你应当禁用sendfile :

EnableSendfile Off

针对NFS或SMB,这个指令可以被针对目录的设置覆盖:

EnableSendfile Off


Tags:

linux系统时间的设置

[不指定 2010/11/13 20:44 | by xiaoyuwxz ]
linux系统时间的设置

一、设置时区
命令 tzselect
选择 5) Asia
选择 9) China
选择1) east China - Beijing, Guangdong, Shanghai, etc.
选择1) Yes

以上如果不通过tzselect,也可以直接修改
/etc/sysconfig/clock
内容为
ZONE="Asia/Shanghai"
UTC=true
ARC=false
保存即可

二、设置时间自动更新
安装ntpdate,ntpdate使用UDP协议
yum install netdate
加入计划任务
crontab -e
00 */3 * * * ntpdate 210.72.145.44
每3小时更新一次,210.72.145.44 为中国国家时间检验中心IP

如果系统上层UDP协议被封,那么可以使用rdate命令来更新时间,格式如下:
00 */3 * * * rdate -s time-b.nist.gov
分页: 5/26 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]