March 27, 2009
MySQL EXPLAIN句法
"Explain虽然是大家常用的分析mysql优化的办法,但对于系统级别内容的消耗资源信息就无能为力了.这时需要用到Mysql中的Profiling(程序剖析) 功能.参考:\nEXPLAIN tbl_name or EXPLAIN SELECT select_options\nEXPLAIN tbl_name是DESC[RIBE] tbl_name或SHOW COLUMNS FROM tbl_name的一个同义词。\n当你在一条SELECT语句前放上关键词EXPLAIN,MySQL解释它将如何处理SELECT,提供有关表如何联结和以什么次序联结的信息。\n借助于EXPLAIN,你可以知道 1)你什么时候必须为表加入索引以得到一个使用索引找到记录的更快的SELECT。 2)你也能知道优化器是否以一个最佳次序联结表。为了强制优化器对一个SELECT语句使用一个特定联结次序,增加一个STRAIGHT_JOIN子句。\n对于非简单的联结,EXPLAIN为用于SELECT语句中的每个表返回一行信息。表以他们将被读入的顺序被列出。 MySQL用一边扫描多次联结的方式解决所有联结,这意味着MySQL 1)从第 …"
March 16, 2009
FreeBSD+Nginx+Mysql+PHP安装记
"折腾了一个晚上,基本上都是用packages安装,php用ports安装,由于PHP只用了FastCGI模式,所以phpmyadmin提示缺少模块而无法安装,最后下载的源码安装。整个过程中,竟然发现最耗费时间的PHP的那些模块! 其实安装完成后再回过头来看,步骤熟练后,加上编译时间,半个小时足够!\n先做个规划,操作步骤分三块,分别用三个帖子来写,分别是:软件的安装,软件的设置,启动调试及遇到错误说明。\n主要思路:用php-fpm来管理FastCGI。在网上的大多数资料都是用lighttp来安装管理,但是据说php-fpm比那个要强,所以就赶了一回时髦,用了一下php-fpm。\n先列一下安装的东西,其实由安装的软件列表,就可以看出用做的过程,今天晚了,明天写步骤: QUOTE: autoconf-2.62 Automatically configure source code on many Un*x platforms autoconf-wrapper-20071109 Wrapper script for GNU autoconf e2fsprogs-libuuid-1.41.3_1 …"
March 16, 2009
nginx支持泛域名解析的方法
"要使用Nginx下的泛域名支持,必须在编译 Nginx的时候加上\n–with-http_sub_module\nfreebsd下ports安装的时候有提示的,选上即可。方法我google了半天,网上的好多我照做都是不行的,例如这个:\nlisten 80;\nserver_name www.yourdomain.com *.yourdomain.com;\n这个会提示:\nnginx -t 2009/01/04 13:22:56 [emerg] 63944#0: conflicting parameter “*.bsdlover.cn” in www.conf:14\n2009/01/04 13:22:56 [emerg] 63944#0: the configuration file nginx.conf test failed\n还有些文章里面说的是:\nserver_name .yourdomain.com;\n这个也是不行的,经过我的实验,正确的做法是:\nlisten 80;\nserver_name _;\n这样就可以了,留个笔记,呵呵\n来 …"
March 16, 2009
Apache和Nginx下禁止访问*.txt文件
"大家是否测试Apache做了目录禁止浏览后,目录下面的txt文件还是可以显示里面的内容的。(我的是这样的)\n例如: http://www.domain.com/test/ 此访问会报403错误,但是如果test下有很多txt,你访问该txt时;\n例如: http://www.domain.com/test/a.txt,此时a.txt里的内容会全部暴露在外面了(有时这个txt是很机密的文件),这样以来问题就来了。\n同样:我在Nginx配置后后也存在这样的问题,Apache下此问题的解决多谢NetSeek帮助。\n如下是关于Apache和Nginx 限制该类事情办法:\nApache:解决办法;\nOptions -Indexes FollowSymLinks AllowOverride All Order allow,deny Deny from all Nginx:解决办法; location ~* .(txt|doc)$ { if (-f $request_filename) { root /home/domain/public_html/test; break; } } Nginx下请大 …"
March 16, 2009
freebsd+mysql+nginx+php组合安装
"安装mysql #cd/usr/ports/databases/mysql51-server #make WITH_CHARSET=gbk WITH_XCHARSET=all WITH_PROC_SCOPE_PTH=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes SKIP_DNS_CHECK=yes WITHOUT_INNODB=yes install clean #cp /usr/local/share/mysql/my-small.cnf /etc/my.cnf #rehash\n初始化表 #/usr/local/bin/mysql_install_db –user=mysql#一定要运行此步,否将下面设定权限将会出现错误,因为这句命令会将生在/usr/local/mysql下面将生var及以下目录,是下面的前提条件.\n安装php # cd /usr/ports/lang/php5 # make config [X] CLI Build CLI version [X] CGI Build CGI version [ ] APACHE Build …"
February 26, 2009
FreeBSD中使用QUOTA磁盘配额来限制用户空间
"虚拟主机中经常要限制用户空间的大小和文件的数量。这些限制在linux和FreeBSD中都是用QUOTA来实现的。这里我说下在FreeBSD下实现的方法; 开启QUOTA支持 首先需要修改内核加入对quota的支持 machine i386 cpu I686_CPU #ident GENERIC ident CNOSvhost maxusers 0 options QUOTA #就是这行了。 修改好后重新编译内核。 然后在/etc/rc.conf里加入: enable_quotas=“YES“ check_quotas=“YES“ 这样你的系统就起用QUOTA了,你应当通过编辑/etc/fstab的某个文件系统的属性,加入QUOTA的支持。 下面的fstab文件就设置了在/pub文件系统上起用用户配额和组配额 # See the fstab(5) manual page for important information on automatic mounts # of network filesystems before modifying this file. # Device …"
February 4, 2009
ports中的make命令的可用参数
"我们经常使用ports来安装程序,ports中的make命令还可以有很多的功能:\n引用\nfetch – Retrieves ${DISTFILES} (and ${PATCHFILES} if defined) into ${DISTDIR} as necessary.\nfetch-list – Show list of files that would be retrieved by fetch.\nfetch-recursive – Retrieves ${DISTFILES} (and ${PATCHFILES} if defined), for port and dependencies into ${DISTDIR} as necessary.\nfetch-recursive-list – Show list of files that would be retrieved by fetch-recursive.\nfetch-required– Retrieves ${DISTFILES} (and ${PATCHFILES} if defined), for port and …"