Archive

Archive for December, 2009

Centos 下同时安装 Mysql4 和 Mysql5,二进制方式

December 29th, 2009 CoCoWool No comments

系统中原有 Mysql4 ,但是需要使用 Mysql5 的一些新特性,但是 Mysql4 又不能够删除,所以需要同时安装两个版本的 Mysql。

为此,用测试机进行了实验,安装下面两个版本的 Mysql。
mysql-standard-4.1.15-pc-linux-gnu-i686-glibc23.tar.gz
mysql-5.0.86-linux-i686.tar.gz

步骤如下:

1、首先安装 Mysql4

tar –xvzf mysql-standard-4.1.15-pc-linux-gnu-i686-glibc23.tar.gz
cp -rf mysql-standard-4.1.15-pc-linux-gnu-i686-glibc23.tar.gz /usr/local/mysql4
groupadd mysql4
useradd -n mysql4 -c "" -g mysql4 -d /nonexistent -s /usr/sbin/nologin
cd /usr/local/mysql4
chown –R mysql4
chgrp –R mysql4
./scripts/mysql_install_db –user=mysql4

chown –R root .
chown –R mysql4 data
./bin/mysqld_safe –user=mysql4 &

这样,mysql4 就安装完成了,可以通过 ./bin/mysql –uroot 进入查看,并且通过 status 可以看到数据库的状态:

mysql> status
————–
./bin/mysql  Ver 14.7 Distrib 4.1.15, for pc-linux-gnu (i686) using readline 4.3

Connection id:          2
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ”
Using delimiter:        ;
Server version:         4.1.15-standard
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    latin1
Conn.  characterset:    latin1
UNIX socket:            /tmp/mysql.sock
Uptime:                 2 min 32 sec

Threads: 1  Questions: 5  Slow queries: 0  Opens: 11  Flush tables: 1  Open tables: 5  Queries per second avg: 0.033
————–

如果需要加入到系统自启动中,则可以进行如下的操作。

cp support-files/mysql.server /etc/rc.d/init.d/mysql4.server
接下来需要对这个文件中的一些变量进行修改
basedir=/usr/local/mysql4
datadir=/usr/local/mysql4/data
pid_file=/var/run/mysql4/mysql4.pid
拷贝一个配置文件到 data 目录下 cp /usr/local/mysql4/support-files/my-xxxx.cnf /usr/local/mysql4/data/my.cnf
修改 my.cnf 文件

[mysqld]
user            = mysql4
port            = 3306
socket          = /tmp/mysql4.sock

最后,建立运行时的目录

mkdir /var/run/mysql4
chown -R mysql4:mysql4 /var/run/mysql4/

ln -s /etc/init.d/mysql4.server /etc/rc3.d/S90mysql4
ln -s /etc/init.d/mysql4.server /etc/rc3.d/K91mysql4

这样,系统启动后 mysql4 的服务就会自动起来了。

2、安装 Mysql 5

mysql5 的安装和 mysql4 差不多,只是 mysql4 的部分修改为 mysql5。

groupadd mysql5
useradd –n mysql5 –c “” –g mysql5 –d /noexistent –s /usr/sbin/nologin
chown –R mysql5 .
chgrp –R mysql5 .
./scripts/mysql_install_db –user=mysql5
chown –R root .
chown –R mysql5 data
cp support-files/mysql.server /etc/rc.d/init.d/mysql5.server
修改文件中的变量
basedir=/usr/local/mysql5
datadir=/usr/local/mysql5/data
pid_file=/var/run/mysql5/mysql5.pid
server_pid_file=/var/run/mysql5/mysql5.pid
user=mysql5
拷贝一个配置文件 cp support-files/my-medium.cnf my.cnf
修改配置文件中的变量

user            = mysql5
port            = 3307
socket          = /tmp/mysql5.sock

最后建立文件夹

mkdir /var/run/mysql5
chown -R mysql5:mysql5 /var/run/mysql5/

启动服务 /etc/rc.d/init.d/mysql5.server start
查看服务的状态

[root@fltrpsrv2 mysql5]# /usr/local/mysql5/bin/mysql -uroot -S/tmp/mysql5.sock
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.86-log MySQL Community Server (GPL)

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql> status
————–
/usr/local/mysql5/bin/mysql  Ver 14.12 Distrib 5.0.86, for pc-linux-gnu (i686) using readline 5.1

Connection id:          1
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ”
Using delimiter:        ;
Server version:         5.0.86-log MySQL Community Server (GPL)
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    latin1
Conn.  characterset:    latin1
UNIX socket:            /tmp/mysql5.sock
Uptime:                 28 sec

Threads: 1  Questions: 4  Slow queries: 0  Opens: 11  Flush tables: 1  Open tables: 6  Queries per second avg: 0.143
————–

可以看到 mysql5 已经安装成功了
加入系统自启动

ln -s /etc/init.d/mysql5.server /etc/rc3.d/S90mysql5
ln -s /etc/init.d/mysql5.server /etc/rc3.d/K91mysql5

 

参考资料:
1、Install Mysql4 and Mysql5 on a single FreeBSD 6.2 Server
2、Install Mysql from tar.gz Packages on Other Unix-Like Systems

Categories: WebTech Tags: ,

在Centos 5.2下编译安装LAMP

December 27th, 2009 CoCoWool No comments

首先使用Virtualbox安装一台CentOS 5.2的虚拟机,网络连接采用 Host-only Adapter,这样主客机之间可以互相访问,但是客机不能够上广域网。

0、系统初步配置

源文件位置    /root/software
编译安装位置    /usr/local/{software_name}
数据存放        /data1/

Apache运行账户    www:www
mysql运行账户    mysql:mysql

关闭 Selinux

    Selinux 经常会对系统的运行产生一些奇怪的影响,如果不是特别熟悉的话,建议关掉 Selinux。
    Selinux 的配置文件位于 /etc/selinux/config,我们需要修改的部分在:
        SELINUX=enforcing
    修改为    SELINUX=disabled,然后重启服务器,SELINUX 的配置救生效了。

配置 iptables

安装必要的软件

    如果能够连上网络,可以通过 yum 来安装这些必要的工具;如果不能连上网络,则需要使用本地的安装源或者安装文件。

    下面列出一些必须的工具:
        gcc        
        wget
        make
        ntp
        patch
        autoconf
        automake
        bzip2-devel       

    通过本地的源来进行安装,首先在 Virtualbox 的 Devices -> Mount CD/DVD-Rom -> CD/DVD-Rom image,加载安装的镜像文件。        
    计划安装的软件及其版本:
    apache 1.3.41        
    cronolog 1.6.2       
    gd 2.0.35        
    libiconv 1.13.1        
    libmcrypt 2.5.8        
    mcrypt 2.6.7        
    openssl 0.9.8k        
    openssh    5.2p1        
    pecre 7.9        
    nginx 0.7.62        
    mysql 5.0.51        
    php 5.2.9/4.4.9        
    memcached 1.4.1        
    memcache 2.2.5        
    xcache 1.2.2        
    zend optimizer 3.3.9 
    imap             
    bind 9.4.2       

1、安装其他软件

    安装 OpenSSL:
        ./config –prefix=/usr/local/openssl/
        make
        make test
        make install
    安装GD2
        ar jxvf gd-2.0.35.tar.bz2
        cd gd-2.0.35
        ./configure –prefix=/usr/local/gd2
        make &&make install
        cd ..

    安装libiconv
        tar zxvf libiconv-1.12.tar.gz
        cd libiconv-1.12
        ./configure –prefix=/usr &&make &&make install
        cd ..

    安装libmcrypt
        tar jxvf libmcrypt-2.5.8.tar.bz2
        cd libmcrypt-2.5.8
        ./configure –prefix=/usr/local/libmcrypt &&make &&make install
        cd ..

    安装 cronolog
        ./configure –prefix=/usr/local/cronolog
        make && make install

2、安装mysql
    本文采用的是二进制安装的方式进行的,基本的顺序和 mysql 官方的顺序差不多,只不过有些地方做一些说明。
    shell> groupadd mysql
    shell> useradd -g mysql mysql
    shell> cd /usr/local
    shell> tar -xvzf /path/to/mysql-VERSION-OS.tar.gz
    shell> mkdir /usr/local/mysql
    shell> cp -rf /path/to/mysql-VERSION-OS /usr/local/mysql
    shell> cd /usr/local/mysql
    shell> chown -R mysql .
    shell> chgrp -R mysql .
    shell> scripts/mysql_install_db –user=mysql
    shell> chown -R root .
    shell> chown -R mysql data
    shell> bin/mysqld_safe –user=mysql &
    前面几步一般不会有问题,只是最后一步执行 bin/mysqld_safe –user=mysql & 的时候,系统出错了:
    Starting mysqld daemon with databases from /var/lib/mysql
    STOPPING server from pid file /var/run/mysqld/mysqld.pid
    090930 12:19:32  mysqld ended
    然后就结束了,这个问题的原因,我们可以在日志文件 /var/log/mysqld.log 中看到
    090930 12:19:31  mysqld started
    090930 12:19:31 [Warning] option ‘thread_stack’: unsigned value 126976 adjusted to 131072
        090930 12:19:32  InnoDB: Started; log sequence number 0 43655
        090930 12:19:32 [ERROR] /usr/local/mysql/bin/mysqld: Can’t create/write to file ‘/var/run/mysqld/mysqld.pid’ (Errcode: 2)
        090930 12:19:32 [ERROR] Can’t start server: can’t create PID file: No such file or directory
        090930 12:19:32  mysqld ended

    也就是权限不够,解决的办法有两个,一个是建立一个 mysql 有权限读写的 /var/run/mysqld/ 文件夹;另一个方法,我们可以使用 /usr/local/mysql/support-files/mysql.server 来进行服务的启动。

    这样 mysql 安装完成以后,文件的存放结构都是按照默认的设定来的,比如一些常见的:
        配置文件    /etc/my.cnf
        basedir    /usr/local/mysql
    最后需要配置一下mysql随系统启动服务,拷贝 /usr/local/mysql/support-files/mysql.server -> /etc/rc.d/init.d/mysql 中,然后添加 chkconfig –add mysql
    这样就可以通过 service mysql start 来启动 mysql 服务了           

3、安装Apache

    这篇里 apache 选择经典的 1.3.41 版本。

    apache 的安装方法不止一种,无论哪一种,首先我们必须确认当前系统中没有 httpd 服务正在运行:ps -aux | grep httpd,如果我们发现结果中有的话,应该将他杀掉。
    然后到 apache 的安装目录下,这里是 /root/software/source_lamp/apache_1.3.41,整个目录内的结构和文件介绍如下:
        cgi-bin/ ――用于测试CGI的脚本。随后,安装过程将把这些文件复制到服务器的/cgi-bin目录中。如果启动了Apache的CGI功能,这些脚本可以用于测试那些功能。
        conf/ ――配置文件。这些发布时的配置不应该进行编辑。安装过程把这些文件复制到服务器的配置目录中,对这些复制文件将进行扩展编辑。
        htdocs/ ――第一个Web站点。安装过程把这些文件复制到服务器的文档根目录中。浏览器第一次测试服务器时将显示这些网页。
        icons/ ――目录索引图标。这些图像文件将成为由Web服务器用来提供特别路径索引功能的图标。   
        logs/ ――日志工具。这个目录是空的,安装过程将为安装好的服务器创建一个日志目录。
        src/ ――源代码。这个目录(和它的子目录)包含了C语言源代码文件,你编译它们以创建出Apache Web服务器。

    首先执行 configure,这里将 bin/data/log,三个目录进行了自定义:
    ./configure –prefix=/usr/local/lampsrv/apache/ –datadir=/data1/www/data/htdocs/ –logfiledir=/data1/www/applogs/ –enable-shared=max –enable-module=most
    make
    make install
4、安装PHP
    解压下载的安装包,然后执行配置。
    ./configure –prefix=/usr/local/lampsrv/php –with-apxs=/usr/local/lampsrv/apache/bin/apxs  –with-config-file-path=/usr/local/lampsrv/etc/php/ –enable-track-vars –with-xml –with-mysql
    make && make install

    安装完成后,在 apache 的配置文件中添加对于 php 后缀的解析。
    AddType application/x-httpd-php .php .php3 .inc
    AddType application/x-httpd-php-source .phps

    然后重启 apache 服务:/usr/local/lampsrv/apache/bin/apachectl restart
    启动的时候,有可能会遇到这样的错误:Cannot load /usr/local/apache2/modules/libphp4.so into server: /usr/local/apache2/modules/libphp4.so : cannot restore segment prot after reloc: Permission Denied

    这种情况一般是由于 selinux 的安全设置引起的,可以考虑关闭掉 selinux,在 /etc/selinux/config 中进行设置。   

5、安装总结

    至此,我们已经配置了基本的 Linux + Apache + Mysql + PHP 的运行环境,但是仍有很多的配置文件散落在各处,比如 mysql 的配置文件和数据文件。如何将这些配置文件和数据文件归拢在一个统一的位置,比如 /data1/www/etc ,还是一个需要不断总结积累的问题,另外还有一个就是如何形成一个快速安装配置的模式,是通过编写脚本还是通过搭建 yum 源来实现多台机器的快速配置是一个很需要经验的问题,在这两个方面,今后要不断的总结。

参考资料:
1、CentOS 5.2 编译安装           
2、Apache httpd project           
3、Cronolog               
4、GD Library               
5、GNU libiconv               
6、OPEN SSL               
7、OPEN SSH               
8、PCRE                   
9、nginx               
10、mysql               
11、php                   
12、Memcached               
13、XCache               
14、IMAP               
15、Mysql Install           
16、Linux自启动详细设置           
17、Apache 1.3.x 安装配置笔记       
18、Apache 安装指南

Categories: WebTech Tags: ,

如何保持前进

December 17th, 2009 CoCoWool No comments

原本是一篇介绍如何和客户沟通的知识,但是我觉得对于我们来说仍具有借鉴意义。

我想大家或多或少的都想过如何进步,那么怎么来做呢?你有知道什么好的方法吗?下面有一些前人的经验

1、Know what you want to achieve  知道你想做什么
2、Defiine some measurable KPIs or goals  制定一些可以量化的指标或者目标
3、Develop a play  做一个计划
4、Begin executing a play  开始执行计划
5、Evaluate every decision along the way to make sure it supports a KPI, thus taking repeated steps towards achieving the projects’ goals 为每一步的决策考量是否支持了当初自己的目标,(如果是)那么不断地重复这个过程以达到自己的目标

其实,这五个步骤看起来是非常简单而且对大家来说都是轻车熟路的,不就是 … 么,我早就知道了。可是真正能够坚持下来的又有多少?

下面有位同学举手了,那么我们该如何做呢?

1、Be professional。

我的理解就是,用专业的态度去做专业的事。人非圣贤孰能无过,但是我们的态度必须专业,并且需要养成专业的习惯,下面这些都将有助于我们今后的发展。

  • Be punctual at meetings and teleconferences.
  • Always speak in a professional manner.
  • Deliver pre-sales paperwork on time.
  • Present all documents and images on professionally branded templates.
  • Use correct grammar and punctuation in emails.

image
2、收集资料。

我们经常使用一些材料来佐证我们的观点,但是当具体到材料的内容时,我们经常是“大概”、“差不多”那么的指代一下,这必然会让我们说法的根基变得不那么牢固,所以,收集资料吧。将你认为今后会有用的资料按照规范的分类方法组织起来。也许开始组织的不是那么的好,但是慢慢的,你会发现自己变得对这些资料如数家珍了。

image3、不要惧怕失败。

Saying that good entrepreneurs view every defeat as an opportunity。

虽然是陈词滥调,但确实是箴言。这个时候需要做的就是 turn defeat into a win/win 

参考资料
1、How to Explain To Clients That They are Wrong

Categories: Misc Tags:

em是否到了退出的时候

December 10th, 2009 CoCoWool No comments

今天看到 YUI CSS 框架中的时,看到用了其用来表示宽度的时候,很多地方都用了 em,在调整字体大小的时候,用了百分比。官方的说法是这样的:

Always use percentages as the units because they render more consistently than ems, and because they allow user-initiated resizing (unlike pixels).

在两年前的时候,我们都知道 em 优于 px 的地方在于能够允许用户调整字体的大小(特别是在IE下)。随着浏览器升级大战,现在多数的浏览器都能够支持 px 和 em 字体的缩放了,那么,我们还有必要在使用 em 么?

特别是像YUI CSS这样,使用 em 来定义页面的尺寸,是否不如用 px 来的直观和精确呢?

#doc, #doc2, #doc3, #doc4, .yui-t1, .yui-t2, .yui-t3, .yui-t4, .yui-t5, .yui-t6, .yui-t7 {
    margin:auto;
    text-align:left;
    width:57.69em;
*width:56.25em;
}
#doc2 {
    width:73.076em;
*width:71.25em;
}
#doc3 {
    margin:auto 10px;
    width:auto;
}
#doc4 {
    width:74.923em;
*width:73.05em;
}

在段落中,定义缩进两字字的时候使用 em 是很方便的,但是像这样 width:12.30769em; 来定义尺寸的,我想平时没有人会这么写吧。

参考资料
1、YUI CSS Framework
2、em与px的区别

Technorati 标签: ,,,
Categories: WebTech Tags: , , ,

WAMP环境配置

December 9th, 2009 CoCoWool No comments

选择的版本分别为

apache 2.2.14 with ssl

php 5.2.11

mysql 5.1.41

系统环境为 Windows XP SP3

安装过程:

1、安装apache。

这个非常简单,双击后一路 next ,在填写域名和主机名的时候可以随便写,比如 test.com/www.test.com ,然后写下自己的邮箱,安装完成。
完成后,通过 http://localhost 能够访问,并且看到 It works! 表示已经安装成功。

根据PHP官方的提示:
We do not recommend using a threaded MPM in production with Apache2.  Use the prefork MPM instead, or use Apache1. For information on why,   read the related FAQ entry on using Apache2 with a threaded MPM

对于默认的MPM模式官方并不支持,我们应当修改为 Prefork 模式,这个之后再讨论如何优化。

2、下面安装PHP。

PHP在Windows下的安装有两种方式,一种是CGI、一种是apache的DLL模块。不管哪一种,我们都需要修改 apache 的配置文件去支持PHP。

我这里采用模块方式安装,在 httpd.conf 中添加:

# For PHP 5 do something like this:
LoadModule php5_module "E:/php/php5apache2_2.dll"
AddType application/x-httpd-php .php

# configure the path to php.ini
PHPIniDir "E:/php"

重启apache,编写 phpinfo.php ,则通过 http://localhost/phpinfo.php 可以查看到 php 已经安装完成。

3、安装 PHP 扩展。

安装PHP的扩展只需要将 ;extension=*.dll 前的注释去掉,重启服务即可。我打开了 curl、gd2、mbstring、mcrypt、mysql、mysqli、pdo、pdo_mysql、pdo_oci、pdo_oci8、pdo_sqlite、soap、xmlrpc。需要注意的是,有些扩展需要将特定的 dll 拷贝到系统目录下才能正常使用。

php_curl.dll CURL, Client URL library functions Requires: ibeay32.dll,ssleay32.dll (bundled)

php_mcrypt.dll Mcrypt Encryption functions Requires: ibmcrypt.dll

php_mysql.dll MySQL functions PHP >= 5.0.0, requires libmysql.dll   (bundled)

php_mysqli.dll MySQLi functions PHP >= 5.0.0, requires libmysql.dll   (libmysqli.dll in PHP <= 5.0.2) (bundled)

php_xmlrpc.dll XML-RPC functions PHP >= 4.2.1 requires: iconv.dll(bundled)

同时应该注意将 extension_dir 设置为系统对应的值,完成后重启 apache 即可。

4、安装 Mysql。

Mysql 的安装也比较简单,从官方网站下载了安装文件后,双击一路运行到底。结束的时候可以选择是否到 Mysql 网站注册 和 马上进行服务器的配置。我们可以去掉服务器注册那一步,进而继续服务器的配置。

服务器的配置最主要就是选择 InnoDB 的存储位置和数据库的用户名密码,到最后,看全部执行完毕后安装就完成了。

5、配置虚拟机

项目比较多的时候,使用 apache 的虚拟机还是非常方便的。

首先打开 httpd.conf 中关于 vhost 配置文件的引用,这样我们所有的虚拟机配置文件都写在 extra/httpd-vhosts 中,方便管理。

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

然后在 httpd-vhost 文件中加入

<VirtualHost *:80>
    ServerAdmin cocowool@gmail.com
    DocumentRoot "D:/workspaces/DefaultWorkspace/heep/"
    ServerName www.heep.com
    ErrorLog "logs/heep.com-error.log"
    CustomLog "logs/heep.com-access.log" common

    <Directory "D:/workspaces/DefaultWorkspace/heep/">
    AllowOverride Options
    Allow from All
    </Directory>
</VirtualHost>

6、安装 Zend Optimizer

Optimizer 可以到 Zend 的官方网站 下载。需要首先注册一个账号,这点没有 Mysql 好,不过人家毕竟没说这事开源的。虽然不开源 ZendOptimizer 确是免费的。下载完成后 一步一步安装就可以了,期间会提示选择正确的 PHP 和 Apache 的位置。

经过以上的步骤,一个 WAMP 的开发环境就配置好了,基本上能够满足开发一般应用的需要。

 

参考资料:

1、apache 2 MPM 的选择与配置

2、windows中apache2配置性能优化以及测试小结

Categories: WebTech Tags:

WAMP环境配置

December 9th, 2009 CoCoWool No comments

选择的版本分别为

apache 2.2.14 with ssl

php 5.2.11

mysql 5.1.41

系统环境为 Windows XP SP3

安装过程:

1、安装apache。

这个非常简单,双击后一路 next ,在填写域名和主机名的时候可以随便写,比如 test.com/www.test.com ,然后写下自己的邮箱,安装完成。
完成后,通过 http://localhost 能够访问,并且看到 It works! 表示已经安装成功。

根据PHP官方的提示:
We do not recommend using a threaded MPM in production with Apache2.  Use the prefork MPM instead, or use Apache1. For information on why,   read the related FAQ entry on using Apache2 with a threaded MPM

对于默认的MPM模式官方并不支持,我们应当修改为 Prefork 模式,这个之后再讨论如何优化。

2、下面安装PHP。

PHP在Windows下的安装有两种方式,一种是CGI、一种是apache的DLL模块。不管哪一种,我们都需要修改 apache 的配置文件去支持PHP。

我这里采用模块方式安装,在 httpd.conf 中添加:

# For PHP 5 do something like this:
LoadModule php5_module "E:/php/php5apache2_2.dll"
AddType application/x-httpd-php .php

# configure the path to php.ini
PHPIniDir "E:/php"

重启apache,编写 phpinfo.php ,则通过 http://localhost/phpinfo.php 可以查看到 php 已经安装完成。

3、安装 PHP 扩展。

安装PHP的扩展只需要将 ;extension=*.dll 前的注释去掉,重启服务即可。我打开了 curl、gd2、mbstring、mcrypt、mysql、mysqli、pdo、pdo_mysql、pdo_oci、pdo_oci8、pdo_sqlite、soap、xmlrpc。需要注意的是,有些扩展需要将特定的 dll 拷贝到系统目录下才能正常使用。

php_curl.dll CURL, Client URL library functions Requires: ibeay32.dll,ssleay32.dll (bundled)

php_mcrypt.dll Mcrypt Encryption functions Requires: ibmcrypt.dll

php_mysql.dll MySQL functions PHP >= 5.0.0, requires libmysql.dll   (bundled)

php_mysqli.dll MySQLi functions PHP >= 5.0.0, requires libmysql.dll   (libmysqli.dll in PHP <= 5.0.2) (bundled)

php_xmlrpc.dll XML-RPC functions PHP >= 4.2.1 requires: iconv.dll(bundled)

同时应该注意将 extension_dir 设置为系统对应的值,完成后重启 apache 即可。

4、安装 Mysql。

Mysql 的安装也比较简单,从官方网站下载了安装文件后,双击一路运行到底。结束的时候可以选择是否到 Mysql 网站注册 和 马上进行服务器的配置。我们可以去掉服务器注册那一步,进而继续服务器的配置。

服务器的配置最主要就是选择 InnoDB 的存储位置和数据库的用户名密码,到最后,看全部执行完毕后安装就完成了。

5、配置虚拟机

项目比较多的时候,使用 apache 的虚拟机还是非常方便的。

首先打开 httpd.conf 中关于 vhost 配置文件的引用,这样我们所有的虚拟机配置文件都写在 extra/httpd-vhosts 中,方便管理。

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

然后在 httpd-vhost 文件中加入

<VirtualHost *:80>
    ServerAdmin cocowool@gmail.com
    DocumentRoot "D:/workspaces/DefaultWorkspace/heep/"
    ServerName www.heep.com
    ErrorLog "logs/heep.com-error.log"
    CustomLog "logs/heep.com-access.log" common

    <Directory "D:/workspaces/DefaultWorkspace/heep/">
    AllowOverride Options
    Allow from All
    </Directory>
</VirtualHost>

6、安装 Zend Optimizer

Optimizer 可以到 Zend 的官方网站 下载。需要首先注册一个账号,这点没有 Mysql 好,不过人家毕竟没说这事开源的。虽然不开源 ZendOptimizer 确是免费的。下载完成后 一步一步安装就可以了,期间会提示选择正确的 PHP 和 Apache 的位置。

经过以上的步骤,一个 WAMP 的开发环境就配置好了,基本上能够满足开发一般应用的需要。

 

参考资料:

1、apache 2 MPM 的选择与配置

2、windows中apache2配置性能优化以及测试小结

Categories: WebTech Tags:

iptables 学习笔记

December 8th, 2009 CoCoWool No comments

以下学习笔记均以 Centos 5.2 系统环境下的实验。

1、启动 iptables 服务。

service iptables start。

通过 service iptables status 可以看到当前 iptables 的服务状态。

如果需要 iptables 服务随服务器启动,则可以通过 chkconfig –level 345 iptalbes on 来实现。

2、iptables 的基本语法。

iptables –A chain –j target

-A 表示在现存的规则集合内后补一条规则

chain 是规则所在的“链”的名称。iptables 有三个内建的链(即影响每一个在网络中经过的分组的链),INPUT、OUTPUT和FORWARD。这些链是永久性的,不能删除。

-j target 表示 iptables 应该“跳”(jump)到规则集中的哪条规则。内建的目标有:ACCEPT、DROP 和 REJECT。

-N 选项可以被用来创建新链。

3、基本的防火墙政策

iptables 使用政策(Policy, –P)来创建规则。

iptables –P INPUT DROP

iptables –P OUTPUT DROP

iptables –P FORWARD DROP

以上三条规则的应用可以使服务器拒绝所有的网络通信。编写规则后,规则只在服务器处于启动状态时才有效,如果系统被重新引导,这些规则就会失效。如果希望保留,则需要执行:

/sbin/service iptables save

4、常用 iptables 过滤规则。

iptables –A INPUT –p tcp –m tcp –sport 80 –j ACCEPT

iptables –A OUTPUT –p tcp –m tcp –dport 80 –j ACCEPT

但是在 CentOs 5.2 中,情况稍有不同。默认的 INPUT、OUTPUT、FORWARD 都是 ACCEPT 的,但是另外还有一个 RH-Firewall-1-INPUT 的规则链,我们可以通过修改 /etc/sysconfig/iptables 文件来实现打开80端口。

Categories: WebTech Tags: ,

MYSQL在众多表中查询表名和字段名

December 4th, 2009 CoCoWool No comments

在Mysql 众多表中查找一个表名或者字段名的 SQL 语句:

SELECT table_name, column_name from information_schema.columns WHERE column_name LIKE ‘Name’;

下面两种方法也可以查到:

SELECT column_name from information_schema.columns WHERE column_name LIKE ’%searchTerm%’ AND table_schema = ‘yourDB’

SELECT column_name from information_schema.columns WHERE column_name LIKE ’%searchTerm%’ AND table_schema = ‘yourDB’ AND table_name = ‘yourDBTable’

这样,我们在面多突然出现的那么多表时,就不会茫然失措了。

Categories: WebTech Tags: ,

Comic Sans – 让人由爱到恨的字体

December 2nd, 2009 CoCoWool No comments

原来,我以为好看的 Comic Sans 字体,在大多数设计师的眼里名声都不太好,这是为什么呢?

 

Comic Sans 的简单介绍

1994年,Vincent Connare 为 Microsoft 创造出了 Comic Sans 字体。最初,这个字体是为 Microsoft Bob 项目设计的,但由于工期延后太多了,虽被发明出来却没有包含到这个项目中。(由此可见,项目有计划并且能按期完成是多么重要)

我想,这位老哥一定心理很不平衡,要不然,他也不会在自己的主页上挂这么一段话。

8888

这种字体的灵感来源于作者办公室中的漫画书,特别是 Watchmen 和 The Dark Knight Returns。

9999 左边是 Watchmen ,右边是 The Dark Knight returns

据 Connare 自己说,他从来没打算将这种字体用于普通的应用,可是历史总是很有幽默感的不是。字体最终不但用在了 Microsoft 3D Movie Maker中,后来还被加入到了 Win 95 Plus中,最后,IE中也包含了。

 

1112

随后,很多著名的产品中都是用了 Comic Sans 字体,比如 Beanie Babies、The 2004 Canada Day 25-cent collector coin、还有 Sims 的Video。

1113

由爱生恨的转变

之所以人们的感情会发生改变,主要是随着使用范围越来越广泛,特别是 Comic Sans 甚至被用在了一些严肃或者正式的场合中,这开始成为“原恨”的发源地。虽然 Comic Sans 非常适合为儿童或者相关的卡通、漫画书作为字体,但是在商业和专业领域,它一点都没有地位。但是,它却不断地出现在原本缺席的地方。

后来,出现了“Ban Comic Sans” 的运动,在1999年, Dave 和 Holly Crumbs(面包屑路径?)在拒绝了一个员工的使用 Comic Sans 的请求之后,发起了这个运动。

1114

 

来看看下面这些图:

今后,我们在使用 Comic Sans 的时候就要注意了,不能用在特别正式和职业的场合中。

好在,我们还有一些替代的字体可以用来选择。

1121

Lexia Readable

1122

p22 Kaz Pro

1123

JM Doodle Medium

 

参考资料:

1、Comic Sans: The font Everyone Love to hate

Categories: WebDesign Tags: ,