标签: CentOS

  • phpPgAdmin连接postgresql数据库的配置 CentOS6_64bit

    phpPgAdmin是Postgresql的图形化操作界面,但是很多ITGeeker往往在安装的时候很难一次性成功,根据多次实践,技术奇客在此与大家分享实战经验,此案例以postgresql9.3版本为例。

     

    确认一下是否已安装Postgresql数据库并启动:

    netstat -lnp|grep 5432

    1. 安装图形客户端phppgadmin

    yum install phpPgAdmin

    如果没有,安装一下EPEL源吧

    yum install epel-release

     

    2. phpPgAdmin.conf配置

    vi /etc/httpd/conf.d/phpPgAdmin.conf

    Alias /phpPgAdmin /usr/share/phpPgAdmin
    
    <Location /phpPgAdmin>
        Order allow,deny
    #   Deny from all
        Allow from all
    #   Allow from 127.0.0.1
        Allow from ::1
    # Allow from .example.com
    </Location>

    把Allow from改为客户端的ip地址或者本地127.0.0.1(安全性更好),或者改为Allow from all也可。

    3. pg_hba.conf配置

    vi /var/lib/pgsql/9.3/data/pg_hba.conf
    主要修改ipv4部分内容,都改成trust,这样最省事。

    # IPv4 local connections:
    host all all 127.0.0.1/32        trust
    host all all your IP/24          trust
    host all all your company IP/24  trust

    可以只添加公司的公网ip和自己家里的ip地址,这样比较安全。

    修改认证方式,将md5改为trust,然后保存

    4. postgresql.conf配置

    vi /var/lib/pgsql/9.3/data/postgresql.conf

    listen_addresses = '*'

    此处主要修改监听本地为监听所有ip,方便远程登入用。

    5. phpPgAdmin.conf配置

    vi \etc\httpd\conf.d\phpPgAdmin.conf

    Alias /phpPgAdmin /usr/share/phpPgAdmin
    
    Order allow,deny
    # Deny from all
    Allow from all
    # Allow from 127.0.0.1
    Allow from ::1
    # Allow from .example.com

    这里一定要配置好allow from all,不要让deny在前面,否则无法登入。

    6. phpPgAdmin的config.inc.php配置

    \usr\share\phpPgAdmin\conf\config.inc.php
    第18行改为

    $conf['servers'][0]['host'] = 'localhost';

    修改未localhost本地还是其它ip就看你要从哪里登入了。

    7. 现在准备登入phpPgAdmin了

    service httpd restart

    重启web apache服务

    service postgresql-9.3 restart

    重启postgresql服务,使刚才做的修改生效。
    访问 http://your ip address/phpPgAdmin/

    注意区分phpPgAdmin的大小写

    在Postgresql的web管理界面,输入登陆名及密码 -安装数据库时创建的用户和密码

     

    8. 相关问题及碰到困难

     

    1. 重置PostgreSQL密码:

     

     

    sudo - postgres
    
    psql
    
    #ALTER USER postgres with password '你的密码';
    \q
    
    exit
    或者有时需要重置postgres用户的linux密码:
    sudo passwd -d postgres 删除linux postgres的密码
    sudo -u postgres passwd 创建linux postgres的密码

     

     

    2. 如果碰到403 forbidden,请检查文件夹权限。

    3. 浏览器提示“您的 PHP 中没有完整的数据库支持”

    这表明没有安装php和php-pgsql软件包

    yum install php-pgsql

    yum会同时安装2个依赖包php-pdo,php-common,它们的安装顺序为php-common php-pdo php-pgsql,也可以手动依次安装。

    4. 网站打开后直接显示源码

    这表明没有安装php

    yum install php

    5. 如果碰到版本冲突

    Error: Package: php-pgsql-5.3.3-40.el6_6.x86_64 (updates)
               Requires: php-common(x86-64) = 5.3.3-40.el6_6
               Installed: php-common-5.4.33-2.el6.remi.x86_64 (@remi)
                   php-common(x86-64) = 5.4.33-2.el6.remi
               Available: php-common-5.3.3-38.el6.x86_64 (base)
                   php-common(x86-64) = 5.3.3-38.el6
               Available: php-common-5.3.3-40.el6_6.x86_64 (updates)
                   php-common(x86-64) = 5.3.3-40.el6_6
     You could try using --skip-broken to work around the problem
     You could try running: rpm -Va --nofiles --nodigest

    解决方案

    rpm -qa | grep php-common 
    rpm -e --nodeps php-common-5.4.33-2.el6.remi.x86_64

    使用强制移出冲突版本需注意其它软件和它依赖的关系,否则会引起其它软件无法运行等问题。

     

  • CentOS 7 64bit如何安装php soap模块

    错误提示:
    Your server does not have the SOAP Client class enabled – some gateway plugins which use SOAP may not work as expected.
    查看soap模块是否安装的办法:在php的安装目录下运行php -m来查看
    /usr/bin/php -m |grep 'sosap'

    如果没有安装,则进入php的安装源文件夹

    cd /tmp && tar zxvf php-5.4.16.tar.gz && cd php-5.4.16/ext/soap

    此处自己去php官方下载相应的版本。

    进入后运行phpize命令
    /usr/bin/phpize

    碰到错误提示,安装两个依赖包解决

    # /usr/bin/phpize
    Can’t find PHP headers in /usr/include/php
    The php-devel package is required for use of this command.
    yum install php-pear
    yum install php-devel

    查看信息是否有还有错误,没有出错的话运行如下命令:

    ./configure –-with-php-config=/usr/local/php/bin/php-config –enable-soap
    ./configure --with-php-config=/usr/bin/php-config --enable-soap

    然后是安装编译

    make
    最后是安装
    make install
    安装好之后会提示soap.so文件的保存路径
    # make install
    Installing shared extensions:     /usr/lib64/php/modules/
    接着修改php.ini文件
    vi /etc/php.ini
    查找/etc/php.ini中的extension_dir = “./”,默认是注释掉的
    修改为

    extension_dir = "/usr/lib64/php/modules/"

    并在此行后增加如下,然后保存:

    extension = "soap.so"

    执行php-fpm看看有没有错误

    没有php-fpm,安装一个吧
    yum install -y php-fpm
    重新启动apache:
    systemctl restart php-fpm
    再运行php -m就已经能看到扩展的soap模块了。
  • CentOS 7 x86_64适用的EPEL安装源 国内镜像列表

    EPEL 是 Extra Packages for Enterprise Linux 的缩写(EPEL),是用于 Fedora-based Red Hat Enterprise Linux (RHEL) 的一个高质量软件源EPEL(http://fedoraproject.org/wiki/EPEL) 是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。

    epel468x120

    安装EPEL源

    官方源直接安装

    rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

    国内的往往速度会更快

    #中科大镜像源 高质量源
    rpm -Uvh http://mirrors.ustc.edu.cn/centos/7.0.1406/extras/x86_64/Packages/epel-release-7-5.noarch.rpm
     
    #浙大源 也非常不错
    rpm -Uvh http://mirrors.zju.edu.cn/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
     
    #上海交大源,更新比较快
    rpm -Uvh http://ftp.sjtu.edu.cn/fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
    
    #还有东北的活雷锋东软的源,最近有些抽风,经常打不开
    http://mirrors.neusoft.edu.cn/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
    
    #sohu镜像源,更新比较慢 
    rpm -Uvh http://mirrors.sohu.com/fedora-epel/7/x86_64/e/epel-release-7-2.noarch.rpm

    这是来自官方公布的数据(2015-01-28)

    http://mirrors.fedoraproject.org/publiclist/EPEL/7/x86_64/#CN

    配置EPEL源

    vi /etc/yum.repos.d/epel.repo

    [epel]
    name=Extra Packages for Enterprise Linux 7 - $basearch
    baseurl=http://ftp.sjtu.edu.cn/fedora/epel/7/$basearch
    #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
    failovermethod=priority
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
    
    [epel-debuginfo]
    name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
    baseurl=http://ftp.sjtu.edu.cn/fedora/epel/7/$basearch/debug
    #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch
    failovermethod=priority
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
    gpgcheck=1
    
    [epel-source]
    name=Extra Packages for Enterprise Linux 7 - $basearch - Source
    baseurl=http://ftp.sjtu.edu.cn/fedora/epel/7/SRPMS
    #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch
    failovermethod=priority
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
    gpgcheck=1

    vi /etc/yum.repos.d/epel-testing.repo

    [epel-testing]
    name=Extra Packages for Enterprise Linux 7 - Testing - $basearch
    baseurl=http://ftp.sjtu.edu.cn/fedora/epel/testing/7/$basearch
    #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=testing-epel7&arch=$basearch
    failovermethod=priority
    enabled=0
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
    
    [epel-testing-debuginfo]
    name=Extra Packages for Enterprise Linux 7 - Testing - $basearch - Debug
    baseurl=http://ftp.sjtu.edu.cn/fedora/epel/testing/7/$basearch/debug
    #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=testing-debug-epel7&arch=$basearch
    failovermethod=priority
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
    gpgcheck=1
    
    [epel-testing-source]
    name=Extra Packages for Enterprise Linux 7 - Testing - $basearch - Source
    baseurl=http://ftp.sjtu.edu.cn/fedora/epel/testing/7/SRPMS
    #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=testing-source-epel7&arch=$basearch
    failovermethod=priority
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
    gpgcheck=1
    

    这是已经替换好上海交大源的文件,如果想使用中科大的,请用http://mirrors.ustc.edu.cn/来替换http://ftp.sjtu.edu.cn/fedora/就可。其它以此来推。

    检查源是否已添加

    yum repolist
    

    运行命令生成缓存

    yum clean all && yum makecache

    选择速度最快的yum源

    yum安装插件yum-plugin-fastestmirror

    yum install yum-plugin-fastestmirror

     

  • CentOS 7 64bit Minimal安装后的初步10项优化和配置(更新epel和remi源安装)

    CentOS官方于2014年7月7日发布64位CentOS 7.0.1406开始,不知不觉已快半年了。也已经有越来越多的软件开始支持CentOS7了。ITGeeker也尝试将越来越多的服务架构于其之上。

    CentOS 7是一个大版本更新,应该有不少提升。连服务的启动停止命令也有了很大的变化。

    CentOS 6及之前:

    service httpd restart

    CentOS 7:

    systemctl start httpd.service

    centos7

    1. 更新系统并安装必备的组件

    yum upgrade or yum update
    yum install wget telnet perl perl-devel net-tools kernel-devel 
    yum groupinstall "Development tools" -y

    安装这些之后会大大方便今后安装其他应用是碰到的依赖包问题。其中net-tools是为了提供dig, nslookup, ipconfig等命令,方便配置CentOS 7初始化网络环境。如果不安装这个,在CentOS 7中,可以使用ip addr命令来代替ipconfig进行当前ip地址查询。

    2. 添加源(repository)REMI & EPEL

    yum安装时,要想安装比较新的版本软件,可以试试这两个源。都有一些国内镜像,我添加的EPEL是阿里云镜像的。

    这是适合CentOS 6的源

    cd /tmp && wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm && wget http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm && rpm -Uvh remi-release-6.rpm epel-release-6-8.noarch.rpm

    真正适合CentOS 7的epel和remi源

    rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
    rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

    如果国外没法用,那用国内的镜像源

    #中科大镜像源
    rpm -Uvh http://mirrors.ustc.edu.cn/centos/7.0.1406/extras/x86_64/Packages/epel-release-7-5.noarch.rpm
    
    #浙大源
    rpm -Uvh http://mirrors.zju.edu.cn/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
    
    #上海交大源
    rpm -Uvh http://ftp.sjtu.edu.cn/fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
    
    #sohu镜像源,更新比较慢 
    rpm -Uvh http://mirrors.sohu.com/fedora-epel/7/x86_64/e/epel-release-7-2.noarch.rpm
    

    使用方法:

    yum --enablerepo=remi install php mysql php-mysql mysql-server phpmyadmin 
    
    或者
    
    yum --enablerepo=epel install php mysql php-mysql mysql-server phpmyadmin

    3. FQDN配置,全称Fully Qualified Domain Name

    有些软件,特别是邮件系统对这个要求比较高。

    vi /etc/hosts
    
    127.0.0.1 localhost.localdomain localhost geeker
    ::1 localhost.localdomain localhost geeker
    
    vi /etc/sysconfig/network
    HOSTNAME=geeker
    
    设置好之后,查询是否完整
    
    hostname -f

    4. 关闭Selinux

    这是Centos系统的安装机制,单单往往导致很多软件无法正常安装,让我们关掉它吧!

    /etc/selinux/config
    在 SELINUX=enforcing 前面加个#号注释掉它
    #SELINUX=enforcing
    然后新加一行
    SELINUX=disabled
    #SELINUXTYPE=targeted #注释掉这行

    保存,退出,重启系统,搞定。

    不想重启,可以使用

    setenforce 0 #使配置立即生效

    5. CentOS 7的防火墙关闭和iptables安装

    CentOS 7.0默认使用的是firewall作为防火墙,但可能一下子很难适应,让我们先改回原先的iptables防火墙吧!

    关闭CentOS 7的firewall:

    systemctl stop firewalld.servic #停止firewall
    systemctl disable firewalld.service #禁止firewall开机启动

    安装iptables防火墙

    yum install iptables-services #安装
    vi /etc/sysconfig/iptables #编辑防火墙配置文件

    启动iptables防火墙

    systemctl restart iptables.service #最后重启防火墙使配置生效
    systemctl enable iptables.service #设置防火墙开机启动

    6. 本地SMTP邮件发送功能(Postfix)

    很多软件和服务可以用到这个功能给用户发送通知邮件,需要配置一下。

    最好加上一个认证,使用Postfix + Saslauthd

    yum remove sendmail   #如果有原先的sendmail,先移除
    yum install postfix   
    vi /etc/postfix/main.cf   #编辑postfix主配置文件
    useradd itgeeker   #增加用户
    passwd itgeeker   #设置用户密码
    yum install cyrus-sasl*
    
    /bin/systemctl restart saslauthd.service && /bin/systemctl restart postfix.service   #启动postfix和saslauth服务

    最好用telnet测试一下,前面安装的telnet就发挥作用了。

    telnet localhost smtp
    ehlo localhost
    mail from:
    rcpt to:<alanljj@qq.com>
    data
    Welcome to itgeeker mail server
    .
    quit
    #查看邮件内容
    less /var/log/maillog
    cd /root/Maildir/new #注意M要大写
    ll
    cat ***** #*代表列出的文件名,可以查看新的邮件内容
    vi /var/log/maillog
    Tips小技巧:
    有时候telnet登陆后就退不出来了ctrl+c也不管用此时可以使用ctl+] 切换,然后quit退出。

    7.  CentOS 7时间同步及更改

    和之前基本一样:

    date
    
    yum install ntpdate -y
    ntpdate time.windows.com && hwclock -w
    
    #连网更新时间,如果成功,将系统时间,写入BOIS
    
    hwclock -w 或 hwclock --systohc
    
    date -s 20150119
    date -s 17:28:00

    8. Shell登陆操作显示中文乱码问题(和CentOS 6一样,问题还是存在)

    方法一:

    vi /etc/sysconfig/i18n 文件中修改LANG的设置为:
    #LANG="en_US.UTF-8"
    #SYSFONT="latarcyrheb-sun16"
    LANG="zh_CN.GBK"
    LANGUAGE="zh_CN.GBK:zh_CN.GB18030:zh_CN.GB2312:zh_CN"
    SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
    SYSFONT="lat0-sun16"
    
    然后在/etc/profile文件中增加export LC_ALL=zh_CN.GBK内容。使得全部的LC*都统一了。
    
    重启主机

    方法二: 更改shell的显示语言

    ITGeeker技术奇客使用的是xshell,直接在当前链接的属性-终端-选择UTF-8为编码即可。如果你经常使用变换使用shell,那就用第一种方法吧。

    9. FTP服务安装(vsftpd安装)

     

    为主机开通FTP服务还是非常有必要的,我们为主机快速安装vsftpd吧。

    可以参考详细教程 CentOS6.5 64bit如何安装配置FTP服务(vsftpd)

    yum install vsftpd -y
    vi /etc/vsftpd/vsftpd.conf
    
    #记得CentOS 7启动命令有所不同
    
    systemctl restart vsftpd
    systemctl enable vsftpd

    10.  Vmware Tools安装

    如果你使用的是虚拟机,那最好装一下Vmware Tools

     

    先点击Vmwar虚拟机管理界面菜单,虚拟机–安装Vmware Tools安装。

    mkdir /mnt/cdrom && mount -t iso9660 /dev/cdrom /mnt/cdrom && cd /mnt/cdrom && cp VMwareTools-9.6.2-1688356.tar.gz /root
    
    mount -t iso9660 /dev/cdrom /mnt/cdrom && cd /mnt/cdrom && cp VMwareTools-9.6.2-1688356.tar.gz /root
    
    cd /root && tar zxvf VMwareTools-9.6.2-1688356.tar.gz && cd vmware-tools-distrib
    
    安装vmware tools
    ./vmware-install.pl

    中间的问题全部选择默认,可能会有错误提示,基本没啥问题。

    依赖包,如果有需要 yum -y install perl perl-devel

    请使用你的版本代替VMwareTools-9.6.2-1688356.tar.gz

  • 如何使用logrotate分割管理dnsmasq的日志 CentOS6.5 64bit

    logrotate 程序是一个日志文件管理工具,Centos系统基本都默认已安装。它可以用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。也可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行。logrotate 程序还可以用于压缩日志文件,以及发送日志到指定的E-mail 。

    logrotate

    目前logrotate的版本是logrotate-3.7.8,它的默认配置文件及中文说明:
    cat /etc/logrotate.conf

     

    # see "man logrotate" for details
    # 所有的日志文件每周转储一次
    weekly
    
    # 转储的文件保留4份,也就是4周的文件
    rotate 4
    
    # 转储日志后,logrotate自动创建新的日志文件
    create
    
    # 给转储的日志文件加上日期后缀
    dateext
    
    # 压缩日志文件。默认是注释掉的
    #compress
    
    # 读入/etc/logrotate.d目录下的日志转储参数,当系统中安装了RPM软件包时,RPM包的日志转储参数一般会自动建立在/etc/logrotate.d目录下
    include /etc/logrotate.d
    
    # 对/var/log/wtmp日志转储的配置
    /var/log/wtmp {
        monthly
        create 0664 root utmp
         minsize 1M
        rotate 1
    }
    
    /var/log/btmp {
        missingok
        monthly
        create 0600 root utmp
        rotate 1
    }
    
    # system-specific logs may be also be configured here.

     

    dnsmasq日志分割案例

    1. 首先需要开启dnsmasq的日志记录

    vi /etc/dnsmasq.conf
    
    log-queries
    log-facility=/var/log/dnsmasq/dnsmasq.log

    2. 建立logrotate的配置文件

    vi /etc/logrotate.d/dnsmasq
    输入:
    /var/log/dnsmasq/dnsmasq.log {
    notifempty
    weekly
    dateext
    rotate 58
    sharedscripts
    postrotate
    [ ! -f /var/run/dnsmasq.pid ] || kill -USR2 `cat /var/run/dnsmasq.pid`
    endscript
    }

    参数说明:

    notifempty :如果是空文件的话,不转储。
    weekly :日志文件每天转储一次。
    rotate 5 ;转储文件分为5份。
    postrotate/endscript :日志转储后执行的脚本。

    完整参数参考

    compress            通过gzip 压缩转储以后的日志
    nocompress        不需要压缩时,用这个参数
    copytruncate       用于还在打开中的日志文件,把当前日志备份并截断
    nocopytruncate   备份日志文件但是不截断
    create mode owner group 转储文件,使用指定的文件模式创建新的日志文件
    nocreate              不建立新的日志文件
    delaycompress 和 compress 一起使用时,转储的日志文件到下一次转储时才压缩nodelaycompress 覆盖 delaycompress 选项,转储同时压缩。
    errors address     专储时的错误信息发送到指定的Email 地址
    ifempty                 即使是空文件也转储,这个是 logrotate 的缺省选项。
    notifempty            如果是空文件的话,不转储
    mail address         把转储的日志文件发送到指定的E-mail 地址
    nomail                  转储时不发送日志文件
    olddir directory     转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
    noolddir                转储后的日志文件和当前日志文件放在同一个目录下
    prerotate/endscript     在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
    postrotate/endscript   在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
    daily                     指定转储周期为每天
    weekly                 指定转储周期为每周
    monthly                指定转储周期为每月
    rotate count          指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
    tabootext [+] list 让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~
    size size               当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB(sizek)或者MB (sizem).

    3. 执行logrotate

    /usr/sbin/logrotate -vf /etc/logrotate.conf
    
    logrotate命令格式解释:
    logrotate [OPTION...] <configfile>
    -d, --debug :debug模式,测试配置文件是否有错误。
    -f, --force :强制转储文件。
    -m, --mail=command :发送日志到指定邮箱。
    -s, --state=statefile :使用指定的状态文件。
    -v, --verbose :显示转储过程。

    如果没有报错,生成了转储文件,dnsmasq正常运行,就OK了。

    4. cron定时自动执行logrotate

    在/etc/cron.daily目录下有logrotate执行的脚本。你可以通过crontab程序每天执行一次。也可以自己设定特定的计划来执行自己的日志切割脚本。
    测试一下脚本先:
    sh /etc/cron.daily/logrotate
    vi /etc/crontab
    33 3 * * * root run-parts /etc/cron.daily
  • CentOS6.5 64bit如何安装配置FTP服务(vsftpd)

    FTP看似一个简单的服务,但在Linux上配置起来往往并没那么容易。ITGeeker技术奇客分享简单而使用的CentOS FTP配置服务,让你不在为架设FTP服务而困扰。
    vsftpd-install-by-itgeeker2014

    一、 vsftpd安装


    一般在CentOS上都自动安装了vsftd,若没有安装则可以使用以下步骤进行安装
    yum -y install vsftpd
    service vsftpd start
    chkconfig vsftpd on
    touch /var/log/vsftpd.log # 创建vsftp的日志文件

    在CentOS中,这样就可以完成了一个简单的匿名FTP的搭建。你可以通过文件资源管理器访问 ftp://YOURIPADDRESS 来进行访问,这个时候你可以看到里面有一个目录“pub”,其它什么都不能干。

    二、 vsftpd虚拟用户配置

    1. 编辑配置文件vi /etc/vsftpd/vsftpd.conf

    anonymous_enable=NO                #设定不允许匿名访问
    local_enable=YES                   #设定本地用户可以访问
    chroot_list_enable=YES             #使用户不能离开主目录
    xferlog_file=/var/log/vsftpd.log   #设定vsftpd的服务日志
    ascii_upload_enable=YES
    ascii_download_enable=YES          #设定支持ASCII
    pam_service_name=vsftpd            #PAM认证文件名,PAM将根据/etc/pam.d/vsftpd进行认证

    以下这些是关于Vsftpd虚拟用户支持的重要CentOS FTP服务配置项目。

    默认vsftpd.conf中不包含这些设定项目,需要自己手动添加CentOS FTP服务配置。
    guest_enable=YES         #设定启用虚拟用户功能。
    guest_username=ftp       #指定虚拟用户的宿主用户。-CentOS中已经有内置的ftp用户了
    user_config_dir=/etc/vsftpd/vuser_conf  #设定虚拟用户个人vsftp的配置文件存放路径。存放虚拟用户个性化的配置文件名,和虚拟用户名相同

    2. 创建chroot list,将用户ftp加入其中

    touch /etc/vsftpd/chroot_list
    echo ftp >> /etc/vsftpd/chroot_list

    3. 进行虚拟用户认证配置

    安装Berkeley DB工具,后面找不到db_load的问题就是没有安装这个软件包的原因。
    yum install db4 db4-utils

    然后,创建用户密码文本vuser_passwd.txt

    vi /etc/vsftpd/vuser_passwd.txt
    
    ftpuser1
    ftppass1
    ftpuser2
    ftppass2

    #注意奇数行是用户名,偶行是密码

    生成虚拟用户认证的db文件
    db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

    编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句,并增加以下两行

    vi /etc/pam.d/vsftpd
    
    auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
    account required pam_userdb.so db=/etc/vsftpd/vuser_passwd

    现在可以创建虚拟用户个性化FTP服务配置文件

    mkdir /etc/vsftpd/vuser_conf/
    vi /etc/vsftpd/vuser_conf/ftpuser1
    
    local_root=/opt/var/ftp1 #虚拟用户的根目录(根据实际修改)
    write_enable=YES 可写
    anon_umask=022 #掩码
    anon_world_readable_only=NO 
    anon_upload_enable=YES 
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES

    4.建立目录和设定权限

    mkdir /opt/var/ftp/ftpuser1        #给刚建立的用户创建目录
    chmod 777 /opt/var/ftp/ftpuser1    #设定目录权限

    5. 启动vsftp服务

    service vsftpd restart
    CentOS上的FTP服务假设完毕!!!
奇客罗方公众号 奇客罗方小程序 奇客罗方客服 ITGeeker Telegram

网站由ITGeeker技术奇客开发并管理;隶属于GeekerCloud奇客罗方智能科技
Site designed and developed by ITGeekerwhich is a sub-website of GeekerCloud
网站地图 | 沪ICP备2021031434号-4