分类: 电脑技巧

  • linux iptables 如何封单个IP 以及 IP段

    【封禁】

    封单个IP的命令是:
    iptables -I INPUT -s 211.1.0.0 -j DROP
    封IP段的命令是:
    iptables -I INPUT -s 211.1.0.0/16 -j DROP
    iptables -I INPUT -s 211.2.0.0/16 -j DROP
    iptables -I INPUT -s 211.3.0.0/16 -j DROP
    封整个段的命令是:
    iptables -I INPUT -s 211.0.0.0/8 -j DROP
    封几个段的命令是:
    iptables -I INPUT -s 61.37.80.0/24 -j DROP
    iptables -I INPUT -s 61.37.81.0/24 -j DROP
    【解封】
    iptables -D INPUT -s IP地址 -j REJECT

  • iis+win2003 gzip压缩教程

    先来了解一下GZIP,gzip是GNU zip的缩写,它是一个GNU自由软件的文件压缩程序,也经常用来表示gzip这种文件格式。软件的作者是Jean-loupGailly和Mark Adler。gzip可以极大的加速网站。有时压缩比率高到80%,近来测试了一下,最少都有40%以上,还是相当不错的。在Apache2之后的版本,模块名不叫gzip,而叫mod_deflate。IIS6默认情况下没有开启GZIP功能,需要我们手动配置。

    1. 在 “IIS 管理器” 中,打开 “网站 》属性” 对话框,切换到 “服务” 页卡,选中两个压缩选项。

    2. 新增一个服务扩展,路径为 “%windir%\System32\inetsrv\gzip.dll”。添加完成后,允许该扩展使用。

    3. 在 “管理工具 》服务” 中,停止 “IIS Admin Service”。

    4.用记事本打开 “%windir%\system32\inetsrv\MetaBase.xml”,找到 “IIsCompressionScheme”,按下述方法修改、保存。(建议修改前先做备份) 如果需要压缩动态文件,则将 HcDoDynamicCompression设置为“TRUE”,并在HcScriptFileExtensions中增加您要压缩的动态文件后缀名,如aspx (由于我要优化的系统中,做了 html -》 aspx 的 URL Rewrite,所以将 html、htm 也加入了)。

    如果需要压缩静态文件,则将HcDoStaticCompression和HcDoOnDemandCompression设置为 “TRUE”,并在HcFileExtensions中增加您需要压缩的静态文件后缀名,如xml、css等。

    HcDynamicCompressionLevel和HcOnDemandCompLevel表示需要的压缩率,数字(0~9)越小压缩率越低。

  • directadmin的build升级或降级功能

    使用build来升级Directadmin自带的软件,无需再配置其他东西.
    关联性等一些东西DA会自动做好,这样也省事.
    cd /usr/local/directadmin/custombuild/
    ./build dovecot #这样便会升级dovecot,依赖性也会一次性解决

    对于php ftp等组件,也可以强制指定版本(软件版本降级):
    ./build set php_ver 5.2
    .build php n #如果php的版本高于5.2,就相当于降级了.
    此操作php的版本会变回 5.2

    如果运行 ./build all 则会升级所有配套软件,升级的前提条件是同级目录下的options.conf 里的选项为”yes”的软件
    Directadmin build的所有功能及选项

    +——————————————————–
    |
    | DirectAdmin WebServices Installer
    | Written by Martynas Bendorius and DirectAdmin
    | Version: 1.1.19
    |
    +——————————————————–
    | To build everything run:
    | ./build all
    |
    | NOTE: Command all will compile everything as it is set
    | in the options.conf file, please take a look at
    | “./build options”!
    +——————————————————–
    | Install/update server components:
    | ./build apache
    | ./build autoconf
    | ./build automake
    | ./build awstats
    | ./build curl
    | ./build dovecot
    | ./build freetype
    | ./build iconv
    | ./build icu
    | ./build libjpeg
    | ./build libpng
    | ./build libtool
    | ./build libxml2
    | ./build libxslt
    | ./build m4
    | ./build mcrypt
    | ./build mhash
    | ./build mod_perl
    | ./build mysql
    | ./build pcre
    | ./build php
    | ./build proftpd
    | ./build suphp
    | ./build webalizer
    | ./build zend
    | ./build zlib
    +——————————————————–
    | Components configuration options:
    | ./build exim_conf
    | ./build rewrite_confs
    | ./build secure_php
    +——————————————————–
    | Install/update web applications:
    | ./build phpmyadmin
    | ./build atmail
    | ./build roundcube
    | ./build squirrelmail
    | ./build uebimiau
    +——————————————————–
    | CustomBuild related options/functions:
    | ./build create_options
    | ./build cron
    | ./build options
    | ./build set option_name value
    | ./build update_da
    | ./build update_versions
    | ./build update_webapps
    | ./build used_configs
    | ./build versions
    +——————————————————–
    | Jailed shell (beta):
    | ./build all_jail
    | ./build coreutils
    | ./build shell
    | ./build smtp_mail
    | ./jail/jail_user.sh user
    +——————————————————–
    | Remove old build data:
    | ./build clean
    | ./build clean_old_webapps
    +——————————————————–
    | Get latest build script or (and) data:
    | ./build update
    | ./build update_script
    +——————————————————–
    | Get data for current build script:
    | ./build update_data
    +——————————————————–
    | Recommended for experienced users only (!):
    | ./build php5-cli
    | ./build php6-cli
    | ./build php5-cgi
    | ./build php6-cgi
    | ./build todovecot
    +——————————————————–
    | You can pass a 2nd argument to automate the input:
    | ./build <option> d : do the default action
    | ./build <option> y : answer yes to all questions
    | ./build <option> n : answer no to all questions
    +——————————————————–

  • directadmin update versions

    cd /usr/local/directadmin/custombuild
    ./build update
    ./build clean
    ./build update_versions

  • 修改Apache的返回头部信息

    方法:
    代码:
    修改几个Apache的几个源代码文件,然后自己编译
    操作:
    一、文件操作
    file:srcdir/include/ap_release.h

    代码:
    #define AP_SERVER_BASEVENDOR;这里填写开发组织名,例如:Microsoft Corp.;
    #defineAP_SERVER_BASEPRODUCT;这里填写服务器软件名,例如:Microsoft-IIS;
    #defineAP_SERVER_MAJORVERSION ;主版本,例如:5;
    #defineAP_SERVER_MINORVERSION ;次版本,例如:0;
    #defineAP_SERVER_PATCHLEVEL ;修正版本,例如:1;

    file:srcdir/include/os.h
    代码:
    #definePLATFORM ;这里填写操作系统的名称,例如:Win32;

    file:srcdir/os/PLATFORM/os.h
    代码:
    #definePLATFORM ;这里填写操作系统的名称,例如:Win32;

    file:srcdir/modules/generators/mod_info.c
    代码:
    Search ;Apache Server Information; replace with;这里填写在查看server-info现实的页面标题,例如:Microsoft-IISInformation;
    file:srcdir/modules/generators/mod_status.c
    代码:
    Search ;Apache Server Status; replace with;这里填写在查看server-status现实的页面标题,例如:Microsoft-IISStatus;
    说明:
    代码:
    file:path/to/filename 表示要对这个文件进行操作
    Search;A; replace with ;B;表示在文件之中搜索A,然后使用B替换
    二、编译操作
    代码:
    按照一般正常步骤编译安装
    结果:
    /server-info:
    代码:
    Microsoft-IIS Information

    Server Version:Microsoft-IIS/5.0/5.0.1 (Win32)

    /server-status:
    代码:
    Apache Server Status for 127.0.0.1
    Server Version:Microsoft-IIS/5.0/5.0.1 (Win32)
    Server Built: Apr 3 2004 18:20:54
    页面底部显示:(例如在以上两个测试和indexes情况之下)
    代码:
    Microsoft-IIS/5.0/5.0.1 (Win32) Server at 127.0.0.1 Port80

  • IIS使用10则

    1. 自定义错误页 虽然自定义错误页很简单,但只有少数管理员有效地利用了它。管理员可以在MMC中将HTTP错误信息映射到服务器上的绝对URL或是某个文件,更为详细的信息可以在这里找到。如果你嫌这太麻烦,想要更简单的方法,或者你希望开发者自己定义错误页,同时又不想让他们具有使用MMC的权限,你可以使用类似Customer Error 这样的工具。
    2. MetaBase研究
    如果你认为Apache功能强大是因为它有一个配置文件,那么你应该看一看IIS的MetaBase有多棒。使用MetaBase,管理员可以完成关于IIS的所有工作,例如,建立一个虚拟目录;停止、启动或暂停Web站点;建立、删除、禁止或启用应用程序。微软提供了一个可视化工具MetaEdit帮助你读写MetaBase,你可以在这里下载它的最新版本。为了更有效地利用MetaBase,你应该试一下命令行界面—IIS Administration Script,简称为adsutil.vbs,你可以在C:\inetpub\adminscripts或者%SystemRoot%\system32\inetsrv\adminsamples目录下找到它。
    注意:MetaBase对Web站点的正常工作非常重要,千万不要破坏它。切记:做任何修改前必须先备份。
    3. 自动纠正URL的拼写错误
    Apache的拥护者总是在吹嘘Apache的一些小功能,其中最酷的就数“自动纠正URL拼写错误”了,现在,IIS管理员也可以把玩这些小功能了,使用URLSpellCheck,自动纠正URL拼写错误小菜一碟。
    4. 重写URLs
    Apache的拥护者一直就吹嘘mod_rewrite的强大功能,现在,用于IIS的这类产品有一打那么多,很多比mod_rewrite要好用,因为使用mod_rewrite,你必须熟悉正则表达式。试一下:IISWrite或ISAPI rewrite。
    5. 探测浏览器
    假设浏览站点的每一个人都使用同一种浏览器或屏幕大小都一样显然是很愚蠢的,你可以使用javascript可以对访问者的浏览器进行检测。如果你使用的是IIS的话,你将会有更好的选择—Cyscape公司的BrowserHawk,Apache世界里没有与它相比较的产品。Cyscape公司最近推出了一款新产品叫CuntryHawk,它可以用于探测访问者所在的区域(国家)。很可惜,至今我还没有语言敏感或者区域敏感的内容需要使用它。
    6. 站点内容压缩
    IIS 5有一个内置的压缩功能,可说实在话,它简直就糟透了,使用pipeboost吧。
    7. Web应用程序缓存
    你可以为不同的文件或目录设置过期时间,打开IIS信息服务器,右击站点内容,单击属性,在跳出来的窗体中你就可以进行相应的设置了。如果你想让开发者自己设置,请使用CacheRight 、XCache这些软件。
    有效地利用缓存是要花费一些时间和钱的,但当你看到访问量攀升,可站点日记因为没有数不清的304响应而变得很小,带宽流量也大大下降时,你就会体会到为什么必须这样做了。设置了良好缓存的站点不多,相反,关于它的好处的文章在网上却多如牛毛,去看一看这些:Brian Davidson’s page,Mark Nottingham,和 what AOL has to say 。
    8. 调谐服务器
    调谐服务器不是一个小题目,需要一本专著来说明它。在网上有一些很好的基础教程和帮助,比如Brett Hill和微软自己的Knowledge Base article 。当然,如果你不想花这些时间的话,用这个–XTune。
    9. 加强站点的安全
    现在攻击站点的人可真不少,但只要你愿意付出一点点的努力,你就不会是一个只会坐着挨打的傻瓜。找出你的服务器信息和操作系统信息是攻击者的第一个目标,所以,首先,不要暴露你的HTTP头让别人知道你运行的是IIS,使用 ServerMask这类软件将HTTP头删除或替换掉。其次,你可以通过删除不必要的文件扩展名来进一步伪装你的服务器环境。另外,你还可以扫描有问题的URL请求,微软为你提供了一个免费工具–URLScan。
    10. 补丁,补丁,补丁!

  • Apache配置详解

    Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd.conf文件中修改。
    主站点的配置(基本配置)

    (1) 基本配置:
    ServerRoot “/mnt/software/apache2” #你的apache软件安装的位置。其它指定的目录如果没有指定绝对路径,则目录是相对于该目录。

    PidFile logs/httpd.pid #第一个httpd进程(所有其他进程的父进程)的进程号文件位置。

    Listen 80 #服务器监听的端口号。

    ServerName www.clusting.com:80 #主站点名称(网站的主机名)。

    ServerAdmin admin@clusting.com #管理员的邮件地址。

    DocumentRoot “/mnt/web/clusting” #主站点的网页存储位置。

    以下是对主站点的目录进行访问控制:
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all

    在上面这段目录属性配置中,主要有下面的选项:

    Options:配置在特定目录使用哪些特性,常用的值和基本含义如下:

    ExecCGI: 在该目录下允许执行CGI脚本。

    FollowSymLinks: 在该目录下允许文件系统使用符号连接。

    Indexes: 当用户访问该目录时,如果用户找不到DirectoryIndex指定的主页文件(例如index.html),则返回该目录下的文件列表给用户。

    SymLinksIfOwnerMatch: 当使用符号连接时,只有当符号连接的文件拥有者与实际文件的拥有者相同时才可以访问。

    其它可用值和含义请参阅:http://www.clusting.com/Apache/ApacheManual/mod/core.html#options

    AllowOverride:允许存在于.htaccess文件中的指令类型(.htaccess文件名是可以改变的,其文件名由AccessFileName指令决定):
    None: 当AllowOverride被设置为None时。不搜索该目录下的.htaccess文件(可以减小服务器开销)。 (更多…)

  • 安装memcache for windows

    dx1.5开始支持memcache,服务器安装加载后,速度会好很多,而且安装并不是太麻烦,下面以Windows 2003为例,介绍安装和在dx1.5中启用方法:
    1:下载memcached组件,这里提供一个.附件提供
    之后解压到任意目录下,比如我就解压到服务器的d:\memcache目录下。
    2、点击开始–运行—cmd,回车

    输入命令

    d:\memcache\memcached.exe -d install(这个命令是安装到服务项里,卸载可用uninstall)没有提示错误就表明安装成功,接着输入命令

    d:\memcache\memcached.exe -d start   (这个是启动命令)如果没有错误提示,表明启动成功。

    3、按照你的php版本下载php_memcache.dll 文件,我这里提供一个支持php5.2.X的,注意因为我使用的是php5.2.2,如果你不能用请自行在网上搜索下载:
    将文件放到php的ext目录下。

    4、打开php.ini文件
    在扩展里添加一行:

    extension=php_memcache.dll保存文件。

    5、服务器里运行命令 :

    iisreset /restartphp_memcache.dll.zip

    memcached-1.2.1-win32.zip

  • 小内存VPS优化建议

    - 稳定的 VPS 服务器

    所有的上层内容都依托于稳定的硬件支持,所以如果你购买的 VPS 主机线路巨慢、三天两头挂掉、或者有时 VPS 母机 IO 负载超高,那么,就算再怎么优化也没有任何用处,你整天干的事情就是发 Ticket 找客服解决问题。所以,选购一台稳定快速的 VPS 主机这是最基础的要求。

    - 轻量级 Web Server

    Apache 已经变得越来越臃肿了,内存开销非常大,所以个人建议用轻量级的 Nginx 服务器,而对于 WordPress 来说 nginx 已经完全够用了。下面代码里是适用于 WordPress 3 的 nginx rewirte 规则,包括 Permalinks rewrite 及 WP-super-cache rewrite 规则。

    #WP Permalinks rewrite
    rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;
    if (!-e $request_filename) {
    rewrite ^.+?(/wp-.*) $1 last;
    rewrite ^.+?(/.*\.php)$ $1 last;
    rewrite ^ /index.php last;
    }
    #WP-super-cache rewrite
    set $wp_super_cache_file ”;
    set $wp_super_cache_uri $request_uri;
    if ( $request_method = POST )
    {
    set $wp_super_cache_uri ”;
    }
    if ( $query_string )
    {
    set $wp_super_cache_uri ”;
    }
    if ( $http_cookie ~* “comment_author_|wordpress|wp-postpass_” )
    {
    set $wp_super_cache_uri ”;
    }
    if ( $wp_super_cache_uri ~ ^(.+)$ )
    {
    set $wp_super_cache_file /wp-content/cache/supercache/$http_host/$1index.html;
    }
    if ( -f $document_root$wp_super_cache_file )
    {
    rewrite ^(.*)$ $wp_super_cache_file break;
    }
    if (-f $request_filename)
    {
    expires 30d;
    break;
    }
    if (!-e $request_filename)
    {
    rewrite ^(.+)$ /index.php?q=$1 last;
    }
    而 PHP 方面则建议用 PHP-FPM , PHP-FPM 已经包含在 PHP 5.3.3 中,对于小内存 VPS 用户建议用静态进程方式,也就是固定几个进程,同时建议少开几个进程,比如 4-6 个左右。

    Ubuntu 上可以用以下命令直接安装 nginx , php-fpm , mysql 环境

    sudo apt-get install nginx php5 php5-dev php5-fpm php5-mysql mysql-server make
    - 充分利用多核

    Nginx 在 Linux 上有一个 worker_cpu_affinity 参数,可以为每个工作进程绑定到不同的 CPU ,所以如果你的 VPS 具有多核的话,那么可以充分利用各 CPU 。比如如果有 4 个 CPU,那么可以进行如下配置:

    worker_processes 4;
    worker_cpu_affinity 0001 0010 0100 1000;
    最后你可以查看一下 CPU 状态,测试方法是输入 top 命令并按 1 。

    - MySQL 优化

    关掉InnoDB:如果 VPS 只是用来跑 Worpdress 的话,用 MyISAM 存储引擎就足够了。你只需在my.cnf加入一行 skip-innodb 就可以把 InnoDB 存储引擎给关掉了。这样也可以省下一定数量的内存。

    - 缓存,再缓存

    1、启用 PHP 缓存加速模块 eAccelerator : 大家都知道, PHP 是动态脚本语言,每次访问都会重新编译执行,而 eAccelerator 则可以缓存编译过的部分 PHP 文件,从而起到提高 PHP 脚本性能及降低系统负载的效果。但需要注意的是,在 nginx + PHP-FPM 环境下, eAccelerator 无法进行内存共享,也就是说 PHP-FPM 的每个进程除了本身所需要的内存开销外,还会加上 eaccelerator.shm_size 参数中设定的值,所以我们在设置时尽量减小 eaccelerator.shm_size 的值,比如设置为 8 MB ,这样最多可以缓存 50 多个 php 文件,虽然少了点,但对于 WordPress 来说基本足够了,这也算是一种节约资源及增加性能的折中方案。另外,启用 eaccelerator 后对于访问速度确实有显著提高。

    2、WordPress 页面缓存:建议用 Wp-super-cache 插件,这个插件的 nginx rewrite 规则之前已经有提到过。Wp-super-cache 可以起到网页静态化缓存的效果,可以进一步除低系统负载。

    3、数据库查询缓存 : 为了进一步减少数据库查询次数,就需要用此类插件,这类插件很多,我在用的是 DB Cache Reloaded 。

    - WordPress 模版及插件

    减少不必要插件以及用简洁的模版,不要放置大量的图片,因为一旦图片一多就会产生更多的 http 连接请求数,导致页载载入速度变慢,同时也消耗更多的带宽,毕竟带宽也是 VPS 的重要资源之一。

    水平有限,如有错误,敬请指正。如果你有更好的优化方案,也请在留言中分享,谢谢!

    # 最后介绍一些在线测试及优化工具:

    Just-Ping : 可以同时获取世界各地几十个位置 ping 你主机的值,从而可以判断 VPS 主机的线路质量。

    Pingdom : 全页面载入测试工具,可测试访问某网页共发起了多少请求及每个请求的耗时,从而可以判断哪些网页元素比较影响载入速度,对进一步优化提供帮助。

    测速宝:整体页面载入及访问速度测试工具,可以让国内各地的网友帮你测试。

  • 计算机容量单位

    计算机容量分为Bit.Byte.KB.MB.GB.TB.PB.EB.ZB.YB。

    既然有YB这个名词出现了,应该是说有人至少具有或共有1YB的容量吧。

    世界上有没有人使用1YB的硬盘,还是那只是空虚的名词。

    备注:计算机容量分配一览表
    Bit < Byte < KB (Kilo-byte) < MB (Mega-byte) < GB (Giga-byte) < TB (Tera-byte) < PB (Peta-byte) < EB (Exa-byte) < ZB (Zeta-byte) < YB (Yota-byte)

    1Byte = 8 Bit
    1 KB = 1,024 Bytes
    1 MB = 1,024 KB = 1,048,576 Bytes
    1 GB = 1,024 MB = 1,048,576 KB = 1,073,741,824 Bytes
    1 TB = 1,024 GB = 1,048,576 MB = 1,073,741,824 KB = 1,099,511,627,776 Bytes
    1 PB = 1,024 TB = 1,048,576 GB = … = 1,125,899,906,842,624 Bytes
    1 EB = 1,024 PB = 1,048,576 TB = … = 1,152,921,504,606,846,976 Bytes
    1 ZB = 1,024 EB = … = 1,180,591,620,717,411,303,424 Bytes
    1 YB = 1,024 ZB = … = 1,208,925,819,614,629,174,706,176 Bytes

  • linux下MySQL配置文件讲解

    配置MySQL服务器是一个丰富而复杂的工作。在本文中,我只能肤浅的说一下各种选项。可以使用的MySQL配置文件共有5个。

    ·/etc/my.cnf是默认的MySQL配置文件。应该对这个文件配置修改。它是为学习目的而设计的。

    ·my-small.cnf是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。

    ·my-medium.cnf是为中等规模的数据库而设计的。如果你正在企业中使用RHEL,可能会比这个操作系统的最小RAM需求(256MB)明显多得多的物理内存。由此可见,如果有那么多RAM内存可以使用,自然可以在同一台机器上运行其它服务。

    ·my-large.cnf是为专用于一个SQL数据库的计算机而设计的。由于它可以为该数据库使用多达512MB的内存,所以在这种类型的系统上将需要至少1GB的RAM,以便它能够同时处理操作系统与数据库应用程序。

    ·my-huge.cnf是为企业中的数据库而设计的。这样的数据库要求专用服务器和1GB或1GB以上的RAM。

    这些选择高度依赖于内存的数量、计算机的运算速度、数据库的细节大小、访问数据库的用户数量以及在数据库中装入并访问数据的用户数量。随着数据库和用户的不断增加,数据库的性能可能会发生变化。

    我将逐个的说明这些配置文件。如果用户决定使用my-*.cnf文件之一,将首先需要把这个文件复制到/etc/my.cnf文件上。

    由于这些原因,用户应该仔细观察数据库系统的性能。如果发现问题,可能需要增加更多的RAM,或者把数据库迁移到一个含有附加资源(比如多个CPU)的系统上。

    提示:数据库变得非常大。把一个SQL数据库目录配置在一个专用分区上可能更有道理。虽然一个不断增长的数据库可能会占满整个分区,但它至少不会吞掉RHEL运行所必需的磁盘空间。

    /etc/my.cnf文件

    默认是/etc/my.cnf文件。它包含6条命令,并且这6条命令被组织在3个配置段中。这些配置段与Samba配置文件中的配置段相似,并且含有功能组名称和相关的命令。本文将逐行的说明这个文件的默认版本。如果用户进行了任何修改,将需要确保MySQL启动脚本(即/etc/rc.d /init.d/mysqld)中的命令一致。

    [mysqld]

    在这个配置段之内,将会看到与MySQL守护进程相关的命令。

    datadir=/var/lib/mysql

    MySQL服务器把数据库存储在由datadir变量所定义的目录中。

    Socket=/var/lib/mysql/mysql.sock

    MySQL套接字把数据库程序局部的或通过网络连接到MySQL客户。

    提示:MySQL被配置成使用InnoDB存储器引擎。如果用户在自己的系统上还没有一个InnoDB数据库,将需要给[mysqld]配置段添加skip-innodb语句。

    [mysql.server]

    在这个配置段之内,将会看到MySQL服务器守护进程有关的命令。这个配置段的较早期版本被命名为[mysql_server]。如果使用 MySQL4.X或MySQL4.X以上版本,将必须把这个配置段标题改成[mysql_server]。当启动MySQL服务时,它使用这个配置段中的选项。

    user=mysql

    与MySQL服务相关联的标准用户名是mysql。它应该是/etc/passwd文件的一部分;如果在这个文件中没有发现它,用户可能还没有安装Red Hat Enterprise Linux mysql-server RPM程序包。

    basedir=/var/lib

    这表示MySQL数据库的顶级目录。它充当MySQL系统上的一个根目录;这个数据库中的其它目录都是相对于这个目录。

    [safe_mysqld]

    这个配置段包含MySQL启动脚本所引用的命令。如果使用MySQL4.X或4.X以上版本,必须把这个配置段改成[mysqld_safe]。

    err-log=/var/log/mysqld.log

    这是MySQL所关联的错误被发送到的这个文件。如果使用MySQL4.X或4.X以上版本,必须使用log-error指令替换这条命令。

    pid-file=/var/run/mysqld/mysqld.pid

    最后,pid-file指令定义MySQL服务器在运作期间的进程标识符(PID)。如果MySQL服务器当前没有运行,这个文件应该不存在。

    提示:用户可以配置与用户特定相关的MySQL配置文件;为此,只需给指定用户主目录中的.my.cnf隐含文件添加所选的配置命令即可。

    my-samll-cnf

    在本文中,将说明my-small-cnf配置文本中的所有命令。当回顾其它MySQL样本配置文件时,将参考本文所解释的各条命令和指令的含义。先从下面这个配置段开始分析该文件中的有效命令和指令:

    [client]

    这个配置把指令传递给与MySQL服务器相关的客户。

    port=3306

    MySQL所相关的标准TCP/IP端口是3306。如果需要修改这个端口号(可以增强安全),必须确保用于MySQL客户与服务器的所有相应配置文件中均修改这个号。

    socket=/var/lib/mysql/mysql.sock

    正像默认的/etc/my.cnf文件中所定义的那样,这是控制MySQL客户与服务器间通信的标准套接字文件。

    [mysqld]

    当启动MySQL服务器时,它由[mysqld]配置段中所定义的命令来控制。

    port=3306

    socket=/var/lib/mysql/mysql.sock

    当然,与同一个MySQL数据库相关的客户与服务器需要使用相同的TCP/IP端口和套接字。

    skip-locking

    多个客户可能会访问同一个数据库,因此这防止外部客户锁定MySQL服务器。这个skip-locking命令是MySQL4.X或4.X以上版本中的skip-external-locking命令。

    一般来说,如果正在使用MySQL4.X或4.X上以版本,这个set-variable指令没有必要带有这个列表中的这些命令。

    set-variable=key_buffer=16k

    这个缓冲区确实很小;如果一个数据库在一个文本文件中包含不止几百行数据,它将会超载这个缓冲区的容量。这个数据库可能不会超载一个文本文件地址簿的容量。如果这不只是一个供个人使用的数据库,这个限额很快就会被达到。假使那样的话,可能需要考虑与其它配置文件之一相关的那些限额。

    set-variable=max_allowed_packet=1M

    当然,与一个数据库相关的信息会增加到超出实际数据。在默认的情况下,如果该信息在一个服务器上超过1MB以上,MySQL将会产生一条错误信息。

    set-variable=thread_stack=64k

    这条指令限定用于每个数据库线程的栈大小。默认设置足以满足大多数应用。

    set-variable=table_cache=4

    用户可以限定一个数据库中打开表的数量;越小的限额(默认值是64)适合越小规模的数据库。

    set-variable=sort_buffer=64k

    在处理一个数据库时,用户可能需要内存中附加的缓冲区空间。

    set-variable=net_buffer_length=2k

    正如net_buffer_length指令所定义的,MySQL服务器还给传入的请求保留了空间。

    server-id=1

    一般来说,如果有一个MySQL主服务器,应该把它的server-id设置成1;应该把MySQL从属服务器的server-id设置成2;

    [mysqldump]

    用户可以在不同类型的SQL数据库之间传输数据,这由[mysqldump]配置段中的命令来控制。

    quick

    quick选项支持较大数据库的转储。

    set-variable=max_allowed_packet=16M

    当然,用来传输数据库表到其它数据库的max_allowed_packet大于客户与服务器之间的简单通信所使用的信息包。

    [mysql]

    no-auto-rehash

    这个配置段设置启动MySQL服务的条件;在这种情况下,no-auto-rehash确保这个服务启动得比较快。

    [isamchk]

    [myisamchk]

    像SQL这样的关系数据库用所谓的Indexed Sequential Access Method(索引顺序存取方法,简称ISAM)来处理。这两个配置段中的命令是相同的;这些命令与检查并修复数据库表的同名命令有关。

    set-variable=key_buffer=8M

    set-variable=sort_buffer=8M

    在前面谈及MySQL服务器时,用户己经见过这些变量。它们在这里都比较大,以便支持数据库的较快速检查与修复。

    [mysqlhotcopy]

    interactive-timeout

    正如[mysqlhotcopy]配置段所指定的,在一个数据库复制操作期间,连接会挂起。在默认情况下,interactive-timeout变量把一个数据传输的最大时间量设置为28800秒(8个小时)。

    my-medium.cnf文件

    与中等数据库相关的MySQL配置文件含有和my-small-cnf配置文件中一样的有效配置段。在[mysqld]配置段中,下面这些命令支持较大规模的服务器数据库:

    set-variable=key_buffer=16M

    set-variable=table_cache=64

    set-variable=sort_buffer=512K

    set-variable=net_buffer_length=8K

    log-bin

    一般来说,这个配置段中的命令支持服务器上的较大高速缓存与缓冲区长度。应该看到两条新命令。

    set-variable=myisam_sort_buffer_size=8M

    log-bin

    myisam_sort_buffer_size命令允许MySQL索引数据库,第二条命令支持二进制日志记录方法。

    [isamchk]

    [myisamchk]

    当然,这两个配置段中的缓冲区比用于数据库传输的缓冲区大,这个文件包含下面这些命令;它们发送消息到服务器和接收来自服务器的消息。

    set-variable=read_buffer=2M

    set-variable=write_buffer=2M

    my-large.cnf文件

    与较大型数据库相关的MySQL配置文件含有和my-samll-cnf配置文件中一样的有效配置段。在本文中,将比较my-large-cnf与my-medium-cnf样本文件中的各条命令。在[mysqld]配置段中,下面这些命令支持较大型的服务器数据库:

    set-variable=key_buffer=256M

    set-variable=table_cache=256

    set-variable=sort_buffer=1M

    set-variable=myisam_sort_buffer_size=64M

    set-variable=net_buffer_length=8K

    这个配置段中有3条附加的命令。record_buffer命令保存对一个数据库中不同表的扫描结果。thread_cache命令对多请求有用;空闲线程被高速缓存起来,进而允许新的搜索操作采用己有的线程。只要这防止搜索操作启动新的服务器进程,这就能减轻系统上的负荷。

    set-variable=record_buffer=1M

    set-variable=thread_cache=8

    set-variable=thread_concurrency=8

    thread_concurrency变量限定同时运行的线程数量。my-large.cnf样本文件建议用户应该把这个数量限定于本计算机上CPU数量的两倍;这个特定设置相当于4个CPU。

    my-huge.cnf文件

    my-huge.cnf文件含有和my-large.cnf配置文件中一样的命令。当然,分配给大多数指令的值比较大并适合较大型的数据库。

  • tar命令范例

      Linux压缩打包方法有很多种,以下讲了tar命令的概念,同时文列举了多种范例供大家查看,希望对大家有所帮助….

      tar命令

      [root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 ….

      参数:

      -c :建立一个压缩文件的参数指令(create 的意思);

      -x :解开一个压缩文件的参数指令!

      -t :查看 tarfile 里面的文件!

      特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。

      -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?

      -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?

      -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!

      -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!

      例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成『 tar -zcvPf tfile sfile』才对喔!

      -p :使用原文件的原来属性(属性不会依据使用者而变)

      -P :可以使用绝对路径来压缩!

      -N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!

      –exclude FILE:在压缩的过程中,不要将 FILE 打包!

      范例一:

      将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar

      [root@linux ~]# tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩!

      [root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩

      [root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩

      ◆ 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。

      ◆如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~

      ◆如果加 j 参数,则以 .tar.bz2 来作为附档名啊~

      ◆上述指令在执行的时候,会显示一个警告讯息:

      ◆『tar: Removing leading `/’ from member names』那是关於绝对路径的特殊设定。

      范例二:

      查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?

      [root@linux ~]# tar -ztvf /tmp/etc.tar.gz

      ◆ 由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,

      ◆就得要加上 z 这个参数了!这很重要的!

      范例三:

      将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下

      [root@linux ~]# cd /usr/local/src

      [root@linux src]# tar -zxvf /tmp/etc.tar.gz

      ◆ 在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,

      ◆我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz ,

      ◆则解开的目录会在 /usr/local/src/etc 呢!另外,如果您进入 /usr/local/src/etc

      ◆则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!

      范例四:

      在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已

      [root@linux ~]# cd /tmp

      [root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd

      ◆我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,

      ◆就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!

      范例五:

      将 /etc/ 内的所有文件备份下来,并且保存其权限!

      [root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc

      ◆这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!

      范例六:

      在 /home 当中,比 2005/06/01 新的文件才备份

      [root@linux ~]# tar -N ‘2005/06/01’ -zcvf home.tar.gz /home

      范例七:

      我要备份 /home, /etc ,但不要 /home/dmtsai

      [root@linux ~]# tar –exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

      范例八:

      将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件!

      [root@linux ~]# cd /tmp

      [root@linux tmp]# tar -cvf – /etc | tar -xvf –

      ◆ 这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!

      ◆要注意的地方在於输出档变成 – 而输入档也变成 – ,又有一个 | 存在~

      ◆ 这分别代表 standard output, standard input 与管线命令啦!

      ◆这部分我们会在 Bash shell 时,再次提到这个指令跟大家再解释啰!

  • PHP版本的选择

    一、如何选择 PHP5.3 的 VC9 版本和 VC6 版本
    VC6 版本是使用 Visual Studio 6 编译器编译的,如果你的 PHP 是用 Apache 来架设的,那你就选择 VC6 版本。
    VC9 版本是使用 Visual Studio 2008 编译器编译的,如果你的 PHP 是用 IIS 来架设的,那你就选择 VC9 版本。
    二、如何选择 PHP5.3 的 Thread Safe 和 Non Thread Safe 版本
    先从字面意思上理解,Thread Safe 是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式而耗尽系统资源。Non Thread Safe 是非线程安全,在执行时不进行线程(Thread)安全检查。
    再来看 PHP 的两种执行方式:ISAPI 和 FastCGI。
    ISAPI 执行方式是以 DLL 动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以 ISAPI 来执行 PHP,建议选择 Thread Safe 版本;
    而 FastCGI 执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以 FastCGI 来执行 PHP,建议选择 Non Thread Safe 版本。
    官方并不建议你将Non Thread Safe 应用于生产环境,所以我们选择Thread Safe 版本的PHP来使用。

  • 密码保护:debian下安装directadmin详细步骤

    此内容受密码保护。如需查阅,请在下方输入密码。

  • DirectAdmin下安装eAccelerator

    需要autoconf支持

    apt-get install autoconf

    下面安装eAccelerator
    cd /usr/local/src
    mkdir eAccelerator
    下载最新的eAccelerator 。
    cd eAccelerator
    wget eaccelerator-*.tar.bz2

    tar -xvjf eaccelerator-*.tar.bz2

    cd eaccelerator-*

    安装步骤:
    输出目录,安装目录
    export PHP_PREFIX=”/usr/local”

    $PHP_PREFIX/bin/phpize
    //显示你需要的phpize 配置安装
    ./configure \
    –enable-eaccelerator=shared \
    –with-php-config=$PHP_PREFIX/bin/php-config
    //编译
    make
    //安装
    make install

    #现在创建缓存的目录 或Cache directory

    cd /tmp

    mkdir eaccelerator

    chmod 0777 eaccelerator

    编辑 php.ini
    在[Zend]上面加
    [eaccelerator]
    zend_extension=”/usr/local/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so”
    eaccelerator.shm_size=”1″
    eaccelerator.cache_dir=”/tmp/eaccelerator”
    eaccelerator.enable=”1″
    eaccelerator.optimizer=”1″
    eaccelerator.check_mtime=”1″
    eaccelerator.debug=”0″
    eaccelerator.filter=””
    eaccelerator.shm_max=”0″
    eaccelerator.shm_ttl=”3600″
    eaccelerator.shm_prune_period=”3600″
    eaccelerator.shm_only=”0″
    eaccelerator.compress=”1″
    eaccelerator.compress_level=”9″
    eaccelerator.keys = “disk_only”
    eaccelerator.sessions = “disk_only”
    eaccelerator.content = “disk_only”

    重启apache

  • directadmin安装教程(英文)

    Quick Install Manual DirectAdmin Control Panel on supported Linux O/S
    1. Remove packages not needed for DirectAdmin install:
    service mDNSResponder stop
    service auditd stop
    service mysqld stop
    service mysql stop
    yum remove httpd php mysql dovecot cpuspeed webmin proftpd spamassassin
    2. Ensure the above services are completely removed, and does not start during the boot time.
    rm -rf /var/lib/mysql
    chkconfig auditd off
    chkconfig bluetooth off
    chkconfig mDNSResponder off
    chkconfig nifd off
    3. Install required packages :
    yum install gcc gcc-c++ flex bison xinetd perl make wget nano mc -y
    The result should show or similar:
    Installed: bison.x86_64 0:2.3-2.1 flex.x86_64 0:2.5.4a-41.fc6 gcc-c++.x86_64 0:4.1.2-44.el5
    mc.x86_64
    1:4.6.1a-35.el5 perl.i386 4:5.8.8-18.el5_3.1 xinetd.x86_64 2:2.3.14-10.el5
    4. Install DirectAdmin
    wget http://www.directadmin.com/setup.sh
    chmod 755 setup.sh
    ./setup.sh
    5. Provide appropriate details for :
    customer id:
    license id:
    FQDN:
    Network Interface: (just cofirm it if it was found by install, otherwise provide manually)
    IP address: (just cofirm it if it was found by install, otherwise provide manually)
    6. You now have 2 options for your apache/php setup.
    1. customapache or
    2. custombuild (newest version of install program with lot of Apache/PHP selection options)
    Choose option 2.
    Would you like the default settings of apache 2.2 and php 5 cli?
    Answer “y”
    If we have done everything correctly, “setup” will now begin automatic install. It will take 15-30
    minutes to complete.
    7. When setup done, it will show access information on screen. Copy paste them, and store them.
    8. Post installation checks :
    (1) Install Zend :
    cd /usr/local/directadmin/custombuild
    In file “options.conf”, change ‘zend enabled = no’ to ‘zend enabled = yes’
    Run ‘./build zend’
    Create a file “/var/www/html/info.php”, put this in the file :
    ‘<?phpinfo();?>’
    Save the file and access it in the browser using http://IPaddress/info.php
    Confirm everything is perfect on the php page.
    (2) Login to DirectAdmin page at http://IPaddress:2222
    Goto Admin level >> Services Monitor .
    Confirm all the services are running, if not, restart them. If any service fails to restart, fix them.
    The DirectAdmin set is now complete.

    If you get the following error
    If you get an error given below while installing DA in a Debian server,
    do the following FIX to solve it.
    *** Cannot find the named binary. Please install Bind ***
    /etc/bind/named.conf: No such file or directory
    /etc/bind/named.ca: No such file or directory
    *** g++ is required for compiling, please install g++ ***
    *** cannot find /usr/include/openssl/ssl.h. Please make sure libssl-dev
    is installed ***
    eg: apt-get install libssl-dev
    *** cannot find /usr/bin/make. Please make sure that make is installed ***
    Installation didn’t pass, halting install.
    *******************************************
    *******************************************
    Cannot find /usr/local/bin/php
    Please recompile php with custombuild, eg:
    cd /usr/local/directadmin/custombuild
    ./build all d
    *******************************************
    *******************************************
    FIX :
    apt-get install g++
    apt-get install libssl-dev
    apt-get install make
    apt-get install bind9 dnsutils
    Then restart the work with ./setup.sh

  • 解决 WordPress 符号自动转换

    玩 WordPress 的人,从别处复制的代码显示的代码是半角的,到自己博客却显示为全角呢??原来这是 WP 的经典遗留问题。要想解决这个问题也简单。找到了以下两种方法。

    第一种:解决WordPress半角引号变成全角引号问题的方法

    修改主题theme下的主题函数functions.php文件,在里面的头部加入下面的代码:
     <?php remove_filter(‘the_content’, ‘wptexturize’); ?>
     

    第二种:解决WordPress半角引号变成全角引号问题的方法

    修改wp-includes目录下的formatting.php,打开formatting.php这个文件找到
     // static strings
    $curl = str_replace($static_characters, $static_replacements, $curl);
    // regular expressions
    $curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);
     

    在$curl的前面加上两条//将其注释掉,如下:
     // static strings
    //$curl = str_replace($static_characters, $static_replacements, $curl);
    // regular expressions
    //$curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);

  • directadmin 更新PHP

    cd /usr/local/directadmin/custombuild
    ./build update
    wget -O php-5.2.15.tar.gz http://files.directadmin.com/services/custombuild/php-5.2.15.tar.gz
    perl -pi -e ‘s/php5:5.2.14:6dff7429a1b43aa1c76a43e909215608/php5:5.2.15:dbbb2beed6b51e05d134744f137091a9/’ versions.txt
    perl -pi -e ‘s|cd php-\$\{PHP5_VER\}|cd php-\$\{PHP5_VER\}\n\tperl -pi -e \”s#resolved_name\\[resolved_basedir_len\\]#resolved_name\\[resolved_basedir_len -1\\]#\” main/fopen_wrappers.c|’ build
    ./build php n

  • directadmin磁盘配额权限设置

    User test created

    Details

    Unix User created successfully

    Error with system Quotas
    setquota: Mountpoint (or device) / not found or has no quota enabled. setquota: Not all specified mountpoints are using quota.
    Debug Guide
    User’s data directory created successfully
    Domains directory created successfully
    Domains directory created successfully in user’s home

    Domain Created Successfully

    User added to ssh config file.

    安装后建立用户会提示没有磁盘配额权限,具体解决办法如下

    # /etc/fstab: static file system information.
    #
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    proc            /proc           proc    defaults        0       0
    /dev/xvda       /               ext3    noatime,errors=remount-ro,usrquota,grpquota 0       1
    /dev/xvdb       none            swap    sw              0       0
    ~

  • debian5安装Directadmin

    重装安装系统后,首先做一些准备工作
    修改源、升级、卸载预装的apache、安装一些东东gcc等 vi /etc/apt/sources.list

    修改内容为

    deb http://ftp.debian.org/debian lenny main contrib non-free

    deb http://security.debian.org/debian-security lenny/updates main contrib non-free

    deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free

    apt-get update //更新系统

    apt-get upgrade

    apt-get remove apache*  //卸载Apache

    apt-get autoremove

    apt-get install -y build-essential wget make libssl-dev

    apt-get update //更新系统

    apt-get upgrade
    安装DA

    wget www.directadmin.com/setup.sh

    chmod +x setup.sh

    ./setup.sh
    安装完成后手动启用垃圾过滤系统

    /usr/local/directadmin/scripts/spam.sh

    /usr/bin/spamd -d -c -m 15