风's profile风来西林PhotosBlogLists Tools Help

Blog


    November 05

    忘记了UBUNTU系统中的MYSQL ROOT 密码修改方法

    (1)以系统root权限登陆

    (2)停止MYSQL服务器:

    mysqladmin shutdown

    (3)跳过授权表执行MYSQL服务器:

    mysqld_safe --skip-grant-tables --skip-networking & (注:参数--skip-grant-tables为跳过授权表;--skip-networking为不监听TCP/IP连接)

    October 28

    ubuntu 下将通过APT安装将mod模式的PHP改成fastcgi

    在Ubuntu中搭建一般的LAMP环境实在是太简单的一件事, 只需要:

    $sudo apt-get install apache2 php5 mysql-server libapache2-mod-php5

    然而, 这样搭建出来的LAMP环境, PHP是通过Apache2的mod执行的, 这也就是软件包libapache2-mod-php5的作用. 通过mod执行的PHP有速度快, 方便等诸多优势.但是在其他方面诸如用户权限分离和使用动态虚拟主机创建等,都需要使用fastcgi模式来运行PHP。

    在网上找到了一篇资料测试通过,拿出来给大家分享!具体操作入下:

    首先, 删除libapache2-mod-php5, 因为没用了.$sudo a2dismod php5

    $sudo apt-get remove libapache2-mod-php5

    安装cgi版的php(自己会支持fcgi的)和apache2的action模块

    $sudo apt-get install php5-cgi
    $sudo a2enmod actions

    新建目录, 把安装的php5-cgi扔过去

    $sudo mkdir /usr/local/php5-fcgi
    $sudo mkdir /usr/local/php5-fcgi/bin
    $sudo cp /usr/bin/php5-cgi /usr/local/php5-fcgi/bin/

    下面关键了, 总是出错的就是这了
    在你的虚拟主机配置(sites-enabled那里)文件, <VirtualHost > 之内, 其他标签之外添加这些内容:

    ScriptAlias /fcgi-bin/ "/usr/local/php5-fcgi/bin/"
    Action php-fastcgi /fcgi-bin/php5-cgi
    AddHandler php-fastcgi .php
    AddType application/x-httpd-php .php
    <Location /fcgi-bin>
    Options FollowSymLinks ExecCGI
    </Location>

    然后重启apache2, 完事.

    October 27

    修改新数据在安装时没设置密码而无法登陆的办法

    今天拿到一台安装有UBUNTU系统的服务器,MYSQL都是APT安装的,哎,老大安装机器的时候不知道怎么了,都不喜欢在MYSQL里设置密码,我哭~!然后尝试登陆,怎么也登陆不上去,各种修改MYSQL root密码的方法都用都不成,后来急得我把user表的数据库文件用编辑器打开来看。发现里面只有一个debian-sys-maint用户。当时差点没哭出来。难怪我使用安全模式登陆到 MYSQL没有发现其他的用户。

    着下可有办法了。我先把一个正常能登陆(有没有设置密码都无所谓)的MYSQL的USER表文件CP到着个机器的数据库表文件目录里,然后修改文件权限,重启服务。此时提供会报错误~!

    error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'

    不怕。数据还是能起来的。呵呵。正常登陆进去后就开始修改一下user表中的debian-sys-maint用户密码,传说因为是系统启动MYSQL的时候专用帐号,每次关闭和启动的时候密码都是新的,所以就会出现前面那个系统错误。修改了它就OK了。当前最新的密码应该在你系统的

    vi /etc/mysql/debian.cnf

    # Automatically generated for Debian scripts. DO NOT TOUCH!
    [client]
    host     = localhost
    user     = debian-sys-maint
    password = 1orZidSkUO1iQtEF    《==这个
    socket   = /var/run/mysqld/mysqld.sock
    [mysql_upgrade]
    user     = debian-sys-maint
    password = 1orZidSkUO1iQtEF  
    socket   = /var/run/mysqld/mysqld.sock
    basedir  = /usr

    执行如下MYSQL命令:

    SET PASSWORD FOR 'debian-sys-maint'@'localhost' = PASSWORD('你的密码');

    然后再重启MYSQL就发现错误没辣~~!搞定。

    后话:发现咱老大也瞒懒的~~!怒~~!

    October 23

    指令名称 : chmod

    使用权限 : 所有使用者
    使用方式 : chmod [-cfvR] [--help] [--version] mode file...
    说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。
    参数 :
    mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中
    u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
    + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
    r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
    -c : 若该档案权限确实已经更改,才显示其更改动作
    -f : 若该档案权限无法被更改也不要显示错误讯息
    -v : 显示权限变更的详细资料
    -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
    --help : 显示辅助说明
    --version : 显示版本
    范例 :将档案 file1.txt 设为所有人皆可读取 :


    chmod ugo+r file1.txt


    将档案 file1.txt 设为所有人皆可读取 :


    chmod a+r file1.txt


    将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :


    chmod ug+w,o-w file1.txt file2.txt


    将 ex1.py 设定为只有该档案拥有者可以执行 :


    chmod u+x ex1.py


    将目前目录下的所有档案与子目录皆设为任何人可读取 :


    chmod -R a+r *


    此外chmod也可以用数字来表示权限如 chmod 777 file


    语法为:chmod abc file


    其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
    r=4,w=2,x=1

    若要rwx属性则4+2+1=7;

    若要rw-属性则4+2=6;

    若要r-x属性则4+1=7。

    范例:


    chmod a=rwx file



    chmod 777 file


    效果相同


    chmod ug=rwx,o=x file



    chmod 771 file


    效果相同


    若用chmod 4755 filename可使此程序具有root的权限

    October 14

    ubuntu 中proftpd+mysql+虚拟用户+匿名用户+磁盘限额的配置

    安装mysql和phpmyadmin,其中phpmyadmin不是必需的

    # apt-get install mysql-server mysql-client libmysqlclient15-dev phpmyadmin apache2

    为mysql设置root密码

    # mysqladmin -u root password yourrootsqlpassword

    如果需要其他人访问本机的mysql,同样需要设置密码

    # mysqladmin -h server1.example.com -u root password yourrootsqlpassword

    安装带mysql支持的proftpd,注意选择proftpd工作在standalone模式

    # apt-get install proftpd-mysql

    建立虚拟用户组,这个是为了把proftpd用户虚拟到本机的一个用户上。注意下面的2001修改为自定义的。

    # groupadd -g 2001 ftpgroup
    # useradd -u 2001 -s /bin/false -d /bin/null -c "proftpd user" -g ftpgroup ftpuser

    建立proftpd使用的mysql数据库ftp,并创建数据表。

    mysql> create database ftp;

    为proftpd访问数据创建的帐号

    mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO 'proftpd'@'localhost' IDENTIFIED BY 'password';
    mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO 'proftpd'@'localhost.localdomain' IDENTIFIED BY 'password';

    创建ftpgroup表

    CREATE TABLE ftpgroup(
          groupname varchar(16) NOT NULL default '',
          gid smallint(6) NOT NULL default '5500',
          members varchar(16) NOT NULL default '',
          KEY groupname (groupname)
    ) TYPE=MyISAM;

    CREATE TABLE ftpquotalimits (
          name varchar(30) default NULL,
          quota_type enum('user','group','class','all') NOT NULL default 'user',
          per_session enum('false','true') NOT NULL default 'false',
          limit_type enum('soft','hard') NOT NULL default 'soft',
          bytes_in_avail int(10) unsigned NOT NULL default '0',
          bytes_out_avail int(10) unsigned NOT NULL default '0',
          bytes_xfer_avail int(10) unsigned NOT NULL default '0',
          files_in_avail int(10) unsigned NOT NULL default '0',
          files_out_avail int(10) unsigned NOT NULL default '0',
          files_xfer_avail int(10) unsigned NOT NULL default '0'
    ) TYPE=MyISAM;


    CREATE TABLE ftpquotatallies (
          name varchar(30) NOT NULL default '',
          quota_type enum('user','group','class','all') NOT NULL default 'user',
          bytes_in_used int(10) unsigned NOT NULL default '0',
          bytes_out_used int(10) unsigned NOT NULL default '0',
          bytes_xfer_used int(10) unsigned NOT NULL default '0',
          files_in_used int(10) unsigned NOT NULL default '0',
          files_out_used int(10) unsigned NOT NULL default '0',
          files_xfer_used int(10) unsigned NOT NULL default '0'
    ) TYPE=MyISAM;

    CREATE TABLE ftpuser (
          id int(10) unsigned NOT NULL auto_increment,
          userid varchar(32) NOT NULL default '',
          passwd varchar(32) NOT NULL default '',
          uid smallint(6) NOT NULL default '5500',
          gid smallint(6) NOT NULL default '5500',
          homedir varchar(255) NOT NULL default '',
          shell varchar(16) NOT NULL default '/sbin/nologin',
          count int(11) NOT NULL default '0',
          accessed datetime NOT NULL default '0000-00-00 00:00:00',
          modified datetime NOT NULL default '0000-00-00 00:00:00',
          PRIMARY KEY (id),
          UNIQUE KEY userid (userid)
    ) TYPE=MyISAM;

     

    修改/etc/proftpd/proftpd.conf

    在<IfModule mod_sql.c>中增加以下代码:

    # The passwords in MySQL are encrypted using CRYPT
    SQLAuthTypes            Plaintext Crypt
    SQLAuthenticate         users groups

    # used to connect to the database
    # databasename@host database_user user_password
    SQLConnectInfo  ftp@localhost proftpd password

    # Here we tell ProFTPd the names of the database columns in the "usertable"
    # we want it to interact with. Match the names with those in the db
    SQLUserInfo     ftpuser userid passwd uid gid homedir shell

    # Here we tell ProFTPd the names of the database columns in the "grouptable"
    # we want it to interact with. Again the names match with those in the db
    SQLGroupInfo    ftpgroup groupname gid members

    # set min UID and GID - otherwise these are 999 each
    SQLMinID        500

    # create a user's home directory on demand if it doesn't exist
    SQLHomedirOnDemand on

    # Update count every time user logs in
    SQLLog PASS updatecount
    SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser

    # Update modified everytime user uploads or deletes a file
    SQLLog  STOR,DELE modified
    SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser

     

    在<IfModule mod_quotatab.c>中增加一下代码:

    # User quotas
    # ===========
    QuotaEngine on
    QuotaDirectoryTally on
    QuotaDisplayUnits Mb
    QuotaShowQuotas on

    SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM ftpquotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"

    SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM ftpquotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"

    SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" ftpquotatallies

    SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies

    QuotaLimitTable sql:/get-quota-limit
    QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally

    RootLogin off
    RequireValidShell off

    分别增加日志

    QuotaLog "/var/log/proftpd.quota.log"

    SQLLogFile /var/log/proftpd.sql.log

    录入测试用户数据

    INSERT INTO `ftpgroup` (`groupname`, `gid`, `members`) VALUES ('ftpgroup', 2003, 'ftpuser');

    INSERT INTO `ftpquotalimits` (`name`, `quota_type`, `per_session`, `limit_type`, `bytes_in_avail`, `bytes_out_avail`, `bytes_xfer_avail`, `files_in_avail`, `files_out_avail`, `files_xfer_avail`) VALUES ('test', 'user', 'true', 'hard', 15728640, 0, 0, 0, 0, 0);

    INSERT INTO `ftpuser` (`id`, `userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`, `count`, `accessed`, `modified`) VALUES(1, 'test', 'test123', 2001, 2001, '/home/www.example.com', '/sbin/nologin', 0, '', '');

    注意:如果的你的proftpd版本大于1.3.0的话 SQLHomedirOnDemand 需要改用 CreateHome来代替!

    name: - 用户帐号
    quota type: - user, group, class, all (we use user)
    per_session: - true or false (we use true)
    limit_type: - 硬限制 or 软限制 (我们一般用硬限制)
    bytes_in_avail: - 允许上传的字节数
    bytes_out_avail: - 允许下载的字节数
    bytes_xfer_avail: - 允许传输的字节数(包括上传/下载)
    files_in_avail: - 允许上传的文件数
    files_out_avail: - 允许下载的文件数
    files_xfer_avail: - 允许传输的文件数(包括上传/下载)

    debian 软件的安装与卸载

    一基本配置

    1. /etc/apt/sources.list文件的基本格式:

    deb http://site.http.org/debian distribution section1 section2 section3
    deb-src http://site.http.org/debian distribution section1 section2

    section3

    deb 二进制程序包 deb-src 原代码程序包
    例如:

    deb http://http.us.debian.org/debian stable main contrib non-free
    deb-src http://non-us.debian.org/debian-non-US stable non-US

    deb http://non-us.debian.org/debian-non-US stable/non-US main contrib

    non-free
    deb-src http://http.us.debian.org/debian stable main contrib non-free

    apt 会忽略以"#"开头的行

    注意: 修改/etc/apt/sources.list后,应及时更新数据库列表

    2.制作本地apt

    # mkdir /root/debs
    将自己收集的.deb包考入/root/debs目录
    # dpkg-scanpackages debs| gzip > debs/Packages.gz
    在/etc/apt/sources.listdeb 加入:
    file:/root debs/

    3.寻找速度最快的下载镜相:netselect, netselect-apt

    安装netselect软件包
    # apt-get install netselect
    测试我使用的镜像
    # netselect security.debian.org ftp.us.debian.orgftp.jp.debian.org non-

    us.debian.org people.debian.org gluck.debian.org
    520 ftp.jp.debian.org
    #
    看到了我所使用的镜像中 ftp.jp.debian.org速度最快 得分为520 (得分越低越好)
    你可以在这里查找debian的镜像列表

    http://www.debian.org/mirror/mirrors_full
    你也可以用netselect-apt下载列表
    # ls sources.list
    ls: sources.list: File or directory not found
    # netselect-apt stable
    (...)
    # ls -l sources.list
    sources.list
    #
    前提是你已经安装并运行了'wget'包

    4.把CD-ROM加入到你的/etc/apt/sources.list文件

    如果使用apt自动从CD-ROM上安装软件或升级系统,可以把它加

    入/etc/apt/sources.list文件
    # apt-cdrom add

    注: CD-ROM必须在/etc/fstab文件中已正确配置

    二、管理包

    1.apt系统使用一个数据库列表来记录系统已经安装了哪些软件,哪些没有安装,哪

    些软件可以通过apt系统自动安装 apt-get通过分析这个数据库来决定如何安装软件

    ,
    应该经常运行#apt-get update来更新此数据库

    2.安装软件包
    # apt-get install packagename
    apt-get的参数
    -h This help text.
    -d Download only - do NOT install or unpack archives
    -f Attempt to continue if the integrity check fails
    -s No-act. Perform ordering simulation
    -y Assume Yes to all queries and do not prompt
    -u Show a list of upgraded packages as well

    软件包会被下载到/var/cache/apt/archives 稍后进行安装
    如果一个软件包坏了,或者你只是想重新安装一个软件的最新版本 ,可以使用--

    reinstall参数,如
    # apt-get --reinstall install gdm
    在安装软件时,可以用apt-get install package/distribution或apt-get install

    package=version来指定软件的安装版本,如
    # apt-get install nautilus/unstable

    3.移除软件包
    apt-get remove package
    # apt-get remove gnome-panel
    这样就会移除gnome-panel以及对gnome-panel有依赖性的软件包,无法使用apt系统

    仅仅移除此软件,而保留对它有依赖性的软件包。
    apt-get remove package并不能移除这些软件的配置文件
    # apt-get --purge remove gnome-panel(这个很常用,注意前面是两横哟!)
    就可以一块把他的配置文件移除

    4.升级软件包
    apt-get upgrade

    5.升级到一个新的版本
    # apt-get -u dist-upgrade

    6.移除无用的软件包
    当安装软件时,软件包会被先下载到/var/cache/apt/archives/目录下,然后安装

    。这样这个目录所占空间会越来越大,幸运的是apt提供了相应的管理工具
    apt-get clean删除/var/cache/apt/archives/ 和

    /var/cache/apt/archives/partial/目录下所有包(锁定的除外)。
    apt-get autoclean仅删除不再能被下载的包

    7.
    8.如何维持一个混合的系统
    鉴于testing版unstable版本比稳定,又比stable版本要新 ,很多人使用testing,可

    是有些人想运行某个软件的最新版,却又不愿把这个系统升级为unstable,即想使用

    一个混合的系统,那么可以这样做:
    在 /etc/apt/apt.conf 加入:
    APT::Default-Release "testing";
    当要安装unstable软件时 加 -t 参数:
    # apt-get -t unstable install packagename
    注:不要忘记在/etc/apt/sources.list中加入相应的源

    9.从一个特定的debian版本升级软
    # apt-get install `apt-show-versions -u -b | grep unstable`件

    10.如何在软件升级时避免特定软件不会被升级
    如果你使用的bebian版本在2.2以上,仅仅需要修改/etc/apt/preferences 文件
    格式非常简单:
    Package: Pin: Priority:

    例如我要保持gaim的0.58版本 只需加上:
    Package: gaim
    Pin: version 0.58*
    统配符 * 指锁定以0.58开头的所有版本 这就是说即使存在0.58-1 或类似 也不会

    被安装
    Priority(优先级)是可选项 默认 989
    <0 此软件永不会被安装
    0~100 软件不被安装,不是有效的版本
    >100 此软件会被安装 即 如果有更新版本,软件会被升级
    100~1000 软件不会被降级安装,例如:我安装的gaim 0.59 , 锁定gaim 0.58 ,优先

    级为999
    那么0.58就不会被安装 ,如果要降级安装 则优先级许大于 1000

    获取软件信息

    1.搜寻软件名
    # apt-cache search gaim
    软件信息
    # apt-cache show gaim
    如果已经安装,并且又有了新版本,那么都会显示,安装版本在后
    获取更多信息
    # apt-cache showpkg gaim
    查询软件的依赖性
    # apt-cache depends gaim

    2.用dpkg查询软件名
    根据某一个文件查询软件名
    # dpkg -S stdio.h

    3.询问式安装
    # auto-apt run command

    4.查询文件的归属
    # apt-file search filename
    就象dpkg -S 但可以查询,但可以查未安装软件包
    也可以查询一个包所含文件
    # apt-file list packagename
    它会用到数据库所以要及时更新
    # apt-file update

    程序源文件

    1.下载程序源码
    # apt-get source packagename
    这样就会下载三个文件 a .orig.tar.gz, a .dsc 和 a .diff.gz
    下载后自动打包
    # apt-get -b source packagename

    2.编译软件
    # apt-get build-dep gmc
    下载所编译包的依赖程序

    October 13

    DEBIAN的CN99源

    顶!我常用的。打开 /etc/apt/sources.list


    deb http://ubuntu.cn99.com/ubuntu/ hardy main restricted universe multiverse
    deb http://ubuntu.cn99.com/ubuntu/ hardy-security main restricted universe multiverse
    deb http://ubuntu.cn99.com/ubuntu/ hardy-updates main restricted universe multiverse
    deb http://ubuntu.cn99.com/ubuntu/ hardy-proposed main restricted universe multiverse
    deb http://ubuntu.cn99.com/ubuntu/ hardy-backports main restricted universe multiverse
    deb-src http://ubuntu.cn99.com/ubuntu/ hardy main restricted universe multiverse
    deb-src http://ubuntu.cn99.com/ubuntu/ hardy-security main restricted universe multiverse
    deb-src http://ubuntu.cn99.com/ubuntu/ hardy-updates main restricted universe multiverse
    deb-src http://ubuntu.cn99.com/ubuntu/ hardy-proposed main restricted universe multiverse
    deb-src http://ubuntu.cn99.com/ubuntu/ hardy-backports main restricted universe multiverse
    deb http://ubuntu.cn99.com/ubuntu-cn/ hardy main restricted universe multiverse

    然后在
    # apt-get update && apt-get upgrade

    ubuntu安装和配置SVN

    1. 安装SVN
    apt-get install subversion
    2. 建立svn仓库
    1). 建立svn目录:mkdir /home/.svn(使用隐藏目录)
    2). cd /home/.svn
    3). mkdir astar
    4). 创建仓库astar:svnadmin create /home/.svn/astar,执行完毕后astar目录有svnadmin创建的目录和文件
    5). mkdir test
    6). 创建仓库test:svnadmin create /home/.svn/test,执行完毕后test目录有svnadmin创建的目录和文件
    3. 配置和管理svn
    1). 每个仓库的配置文件在$repos/conf/下,vi svnserve.conf,配置项在[general]下:
    anon-access:匿名用户的权限,可以为read,write和none,默认值read。不允许匿名用户访问:anon-access = none
    auth-access:认证用户的权限,可以为read,write和none,默认值write。
    password-db:密码数据库的路径,去掉前边的#
    authz-db:认证规则库的路径,去掉前边的#。
    注意:这些配置项的行都要顶格,否则会报错。修改配置后需要重启svn才能生效。
    2). 配置passwd文件
    这是每个用户的密码文件,比较简单,就是“用户名=密码”,采用的是明码。如allen=111111
    3). 配置authz文件
    1. [groups] section:为了便于管理,可以将一些用户放到一个组里边,比如:owner=allen,ellen
    2. groups下边的sections表示对一个目录的认证规则,比如对根目录的认证规则的section为[/]。设置单用户的认证规则时一个用户一行,如:
    [/]
    allen=rw  #allen对根目录的权限为rw
    ellen=r   #ellen对根目录的权限为r
    如果使用group,需要在group名字前加@,如
    @owner=rw  #group owner中的用户均为rw,等价于上边的两句话
    启动时如果从/home/.svn/astar启动,/就是astar目录,用如上方式以astar目录为根设置权限。
    如果从/home/.svn/启动,每个仓库根还是自己的起始目录。可以采用如上方式设置astar的权限,也可以采用如下方式:
    [astar:/]
    @owner=rw
    设置test的权限如下:
    [test:/]
    @harry_and_sally = rw
    简言之,每个仓库的根目录(/)就是自己的起始目录;[repos:/]这种方式只适用于多仓库的情况;[/]适合于单仓库和单仓库的方式。
    3. 不能跨越仓库设置权限。
    4. 启动和停止svn
    1). 启动:
    1. 从astar目录启动,svnserve -d -r /home/.svn/astar,根目录(/)是astar,authz中规则的配置使用section[/]。访问方式为:
    svn://192.168.0.87/
    2. 从.svn目录启动,svnserve -d -r /home/.svn,根目录(/)是.svn,authz中对astar的配置使用section[astar:/] ,对test的配置使用section[test:/]。访问方式为:
    svn://192.18.0.87/astar
    svn://192.18.0.87/test
    如果需要svn自启动,把命令加入/etc/rc.local中
    2). 检查svn服务器是否已经启动(svn默认使用3690端口):netstat -an | grep 3690
    3). 停止:killall svnserve
    5. svn client

    在checkout的情况下出现类似提示:

    svn: Can't convert string from 'UTF-8' to native encoding

    解决的办法是在root权限下在任何目录下执行LANG="zh_CN.UTF-8"这真是一个不是问题的问题,可能是为了方便将语言格式改成E文造成的

    September 07

    【adduser】新增使用者 part1

    在Slackware中,adduser 指令是個script程式,利用交談的方式取得輸入的用戶帳號資料,然後再交由真正建立帳號的useradd指令建立新用戶,如此可方便管理員建立用戶帳 號。在Red Hat Linux中,adduser指令則是useradd指令的符號連接,兩者實際上是同一個指令。

    【adduser】
    adduser 除了新增帳號外,還會自動新增 /home/XXX(家目錄) 並將 /etc/skel 複製預設的檔案至使用者家目錄。Enter 後得輸入密碼及相關資訊..等等,其中這些資訊當放在 /etc/passwd 裡。
    # sudo adduser albert
    Adding user `albert' ...
    Adding new group `albert' (1005) ...
    Adding new user `albert' (1005) with group `albert' ...
    Creating home directory `/home/albert' ...
    Copying files from `/etc/skel' ...
    輸入新的 UNIX 密碼:
    再次輸入新的 UNIX 密碼:
    passwd:密碼已成功地變更
    正在改變 albert 的使用者訊息
    請輸入新值,或直接按 ENTER 鍵以使用預設值
    全名 []: Albert3537
    房間號碼 []: 201
    工作電話 []: 07-7310606#49311106
    家庭電話 []: Orz
    其它 []: qq
    以上的資訊都正確嗎?[y/N] y


    要是想讓新增的使用者具有管理權限,則輸入
    # adduser XXX admin
    Adding user XXX to group admin...
    Done.


    可使用 grep 做確認。想刪除可用 deluser。

    # grep admin /etc/group
    grep admin /etc/group
    lpadmin:x:108:albert
    admin:x:110:albert



    November 29

    Linux配置APACHE2.0.55 +PHP5.1.1+MYSQL5.0.16+GD库

    redhat linux9.0下配置APACHE2.0.55 +PHP5.1.1+MYSQL5.0.16+GD库

    首先,服务器GCC要有,不然什么都不能做.可以用gcc -v来查看是否安装了GCC,
    #gcc -v
    Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2.3/specs
    Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --host=i386-redhat-linux
    Thread model: posix
    gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-34)

    有以上类似信息说明已有GCC,
    如果你没有,请先拿安装光盘装好它

    请下载以下所有的东西:
    httpd-2.0.55.tar.gz
    MySQL-client-5.0.16-0.i386.rpm
    MySQL-server-5.0.16-0.i386.rpm
    MySQL-devel-5.0.16-0.i386.rpm
    php-5.1.1.tar.gz

    ZendOptimizer-2.5.3-linux-glibc21-i386.tar.gz

    gd-2.0.28.tar.gz
    libxml2-2.6.11.tar.gz
    zlib-1.2.1.tar.gz
    jpegsrc.v6b.tar.gz
    libpng-1.2.5.tar.gz

    xpm-3.4k-2.i386.rpm
    gd-devel-1.8.4-11.i386.rpm

    可能你的电脑不需要这么多.但最好都下载吧.

    不过,可能你看到这贴子的时候会有以上软件新的版本下载了.看着办吧.

    开始装吧>>>>>>>>>>>>>>>>>>>>>>>>>

    先安装MYSQL 服务器

    #rpm -ivh MySQL-server-5.0.16-0.i386.rpm

    接着客户端

    #rpm -ivh MySQL-client-5.0.16-0.i386.rpm
    安装mysql-devel
    #rpm -ivh MySQL-devel-5.0.16-0.i386.rpm(没有它不能安装php5.1.1)

    安装好后试试能不能用

    #mysql
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 27651 to server version: 4.0.20-standard
    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

    说明OK
    请自己改mysql的密码

    安装GD库基本包

    #rpm -ivh gd-devel-1.8.4-11.i386.rpm

    安装XPM支持

    #rpm -ivh xpm-3.4k-2.i386.rpm

    安装libxml2 (记得PHP5.1.1只支持libxml2-2.6.11以上版本)
    #tar zxvf libxml2-2.6.11.tar.gz
    #cd libxml2-2.6.11
    #./configure
    #make
    #make install

    开始装GD库支持
    -------------------------------------------------------
    ZLIB
    #tar zxvf zlib-1.2.1.tar.gz
    #cd zlib-1.2.1
    #./configure
    #make
    #make install

    JPEGSRC
    #tar zxvf jpegsrc.v6b.tar.gz
    #cd jpegsrc-6b
    #./configure
    #make
    #make install-lib
    #make install

    LIBPNG
    #tar zxvf libpng-1.2.5.tar.gz
    #cd libpng-1.2.5
    #cp scripts/makefile.std Makefile
    #make
    #make install

    最后是GD2.*

    gd-2.0.28
    #tar zxvf gd-2.0.28.tar.gz
    #cd gd-2.0.28
    #./configure --with-png=/usr/local --with-jpeg=/usr/local --with-freetype=/usr
    #make
    #make install
    ----------------------------------------------
    上面一切都很顺利的话,GD就算成功的安装上了. 如果有问题,应该是缺少支持包,总之是少什么就下载什么来安装上.

    跟着下来,开始安装APAHCHE2和PHP5

    #tar zxvf httpd-2.0.55.tar.gz
    #cd httpd-2.0.55
    #./configure --prefix=/usr/local/apache2 --enable-module=so
    #make
    #make install

    #tar zxvf php-5.1.1.tar.gz
    #cd php-5.1.1
    #./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-gd=/usr/local --enable-trace-vars --with-zlib-dir=/usr/local -with-mysql=/var/lib/mysql
    #make
    #make install
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    我是把他们分别安装在/usr/local/apache2 & PHP目录下的
    所有的安装工作做好了,接着我们来配置.

    复制PHP.INI文件到正确位置
    在PHP目录下运行
    #cp php.ini-dist /usr/local/php/lib/php.ini

    编辑apache配置文件httpd.conf
    #vi /usr/local/apache2/conf/httpd.conf

    要改的有如下几处:

    一般都在
    #AddType application/x-tar .tgz
    下加一行
    AddType application/x-httpd-php .php

    还有找到
    DirectoryIndex index.html index.html.var
    在后面加 index.php 让它把index.php做为默认页

    再找
    #ServerName
    把#去掉,后面的IP改成你的IP.

    找到
    DocumentRoot "/usr/local/apache2/htdocs"
    把/usr/local/apache2/htdocs改为你存放网页文件的路径
    比如我是放在/myweb目录下,所以我以后上传PHP文件就放在/myweb目录下,然后用IP访问,就能看到首页了

    差不多就这些了,至于apache2其它优化,请看www.phpv.net 里的apache配置那一分类.

    保存httpd.conf文件.

    启动它
    # /usr/local/apache2/bin/apachectl start
    如果没有出错,写一个测试页放到你网页目录下, 我的就是上面所说的 /myweb
    #vi /home/easy/index.php
    phpinfo();

    保存.试试在测试器里打IP进去就可以看到PHPINFO页了

    好了.如无意外.你现在可以放心在你的机器上运行PHP脚本连接mysql了.

    用ZendOptimizer-2.5.3加速PHP

    #tar zxvf ZendOptimizer-2.5.3-linux-glibc21-i386.tar.gz
    #cd ZendOptimizer-2.5.3-linux-glibc21-i386
    #./install.sh

    一路默认下去应该就好了.
    再看看测试页,

    找找是不是这样的?
    This program makes use of the Zend Scripting Language Engine:
    Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies with Zend Extension Manager v1.0.3, Copyright (c) 2003-2004, by Zend Technologies with Zend Optimizer v2.5.3, Copyright (c) 1998-2004, by Zend Technologies