前言:
好象在CU发PDF写得多好都加不了精华
![](/icons/12293dou.gif)
原创
![](/icons/12293de.gif)
提示也不见了
![](/icons/12293dou.gif)
我是个挺虚荣
![](/icons/12293de.gif)
人
![](/icons/12293dou.gif)
![](/icons/12293yi.gif)
看什么都没了
![](/icons/12293dou.gif)
那得赶紧写个东西加精华吧
![](/icons/12293dou.gif)
哈哈
![](/icons/12293dou.gif)
最近发现CU讨论apache2.2.0
![](/icons/12293de.gif)
帖子日益加温
![](/icons/12293dou.gif)
正好几天前给客户做了
![](/icons/12293yi.gif)
套系统
![](/icons/12293dou.gif)
把心得体会告诉大家
![](/icons/12293dou.gif)
省得大家多走冤枉路
![](/icons/12293dou2.gif)
这里主要变化
![](/icons/12293de.gif)
就是配置tomcat不用连接模块了
![](/icons/12293dou.gif)
有关这个tomcat
![](/icons/12293dou.gif)
我印象最深
![](/icons/12293de.gif)
是有
![](/icons/12293yi.gif)
次在公司郁闷了
![](/icons/12293dou.gif)
就去中国移动面试
![](/icons/12293dou.gif)
那
![](/icons/12293de.gif)
技术主管问:你用过tomcat和apache整合吗?我说接触过没研究
![](/icons/12293dou.gif)
只用resin
![](/icons/12293dou.gif)
然后他问我那tomcat开
![](/icons/12293de.gif)
端口有哪些
![](/icons/12293dou.gif)
都是做什么
![](/icons/12293de.gif)
呢?我说这个我得查资料
![](/icons/12293dou.gif)
其实主要就是8005、8009、8080这 3个端口
![](/icons/12293dou2.gif)
呵呵
![](/icons/12293dou.gif)
结果可想而知——我由于不知道tomcat
![](/icons/12293de.gif)
启动端口而被PASS了
![](/icons/12293dou2.gif)
其实想想也挺可笑
![](/icons/12293de.gif)
![](/icons/12293dou.gif)
我说
![](/icons/12293de.gif)
都是实话
![](/icons/12293dou.gif)
技术人员吗
![](/icons/12293dou.gif)
不可能什么都在脑子里
![](/icons/12293dou.gif)
咱们中国人常说:好脑子不如烂笔头
![](/icons/12293dou2.gif)
所以我有记录
![](/icons/12293de.gif)
习惯
![](/icons/12293dou.gif)
什么都习惯写下来
![](/icons/12293dou.gif)
脑子只要记住该记
![](/icons/12293de.gif)
就行了
![](/icons/12293dou.gif)
呵呵
![](/icons/12293dou.gif)
不过我劝诸位想找个好归宿
![](/icons/12293de.gif)
还是要有好脑子
![](/icons/12293dou.gif)
最好过目不忘
![](/icons/12293dou.gif)
要不找工作
![](/icons/12293de.gif)
时候也很危险呦!!还有你觉不觉得找工作看英语过几级
![](/icons/12293dou.gif)
到底有多少人在工作里非要和英语亲密接触呢?我就是
![](/icons/12293dou.gif)
哈哈
![](/icons/12293dou.gif)
但我有dr.eye
![](/icons/12293dou.gif)
呵呵
![](/icons/12293dou.gif)
无奈了……
废话少说
![](/icons/12293dou.gif)
让咱们开始以配置这个曾经把我PASS
![](/icons/12293de.gif)
环境吧 :)
第
章:MAP安装、测试、优化、
1、Mysql安装我
![](/icons/12293de.gif)
版本选择是mysql-4.0.25.tar.gz
![](/icons/12293dou.gif)
选择这个OLD版本是
![](/icons/12293yinwei.gif)
我其他机器
![](/icons/12293de.gif)
数据库也是这个版本
![](/icons/12293dou.gif)
这样相互导来导去方便点
![](/icons/12293dou2.gif)
按我如下傻瓜方式安装吧
![](/icons/12293dou2.gif)
# tar xzvf mysql-4.0.25.tar.gz # cd mysql-4.0.25 # useradd mysql -s /sbin/nologin # CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro -felide-constructors -fno-exceptions -fno-rtti" ./configure ——prefix=/usr/local/mysql ——enable-assembler ——with-mysqld-ldflags=-all-
![](/icons/12293static.gif)
——with——char
![](/icons/12293set.gif)
=gbk ——with-extra-char
![](/icons/12293set.gif)
s=all;make;make
![](/icons/12293install.gif)
睡会儿吧!大概5分钟
![](/icons/12293dou2.gif)
——我
![](/icons/12293de.gif)
1850差不多是这样
![](/icons/12293dou2.gif)
为什么用这些参数
![](/icons/12293dou.gif)
请参考
![](/icons/12293dou2.gif)
/configure ——help # cp support-files/my-huge.cnf /etc/my.cnf # cd /usr/local/mysql # bin/mysql_
![](/icons/12293install.gif)
_db ——user=mysql # chown -R root . # chown -R mysql var # chgrp -R mysql . # bin/mysqld_safe ——user=mysql & # /usr/local/mysql/bin/mysqladmin -u root password 'hahaha' # mysql -p Enter password:Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 to server version: 4.0.25-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>use mysql Database changed mysql> delete from user where Password='';Query OK
![](/icons/12293dou.gif)
3 rows affected (0.01 sec)
mysql> flush privileges;Query OK
![](/icons/12293dou.gif)
0 rows affected (0.00 sec)
mysql> exit Bye # cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d # chmod 500 /etc/rc.d/init.d/mysql.server # cd /etc/rc.d/rc3.d # ln -s ……/init.d/mysql.server S99mysql # ln -s ……/init.d/mysql.server K99mysql Mysql安装完了
![](/icons/12293dou.gif)
那我们开始装apache2.2.0
2、安装apache-2.2.0到这我们就要说说APR了
![](/icons/12293dou.gif)
这个东西是Apache可移植运行库
![](/icons/12293dou.gif)
源自为了代码
![](/icons/12293de.gif)
多平台性
![](/icons/12293dou.gif)
尝试将区别
![](/icons/12293de.gif)
操作系统特定字节和操作系统无关代码隔离
![](/icons/12293dou2.gif)
结果就提供了
![](/icons/12293yi.gif)
个基础API
![](/icons/12293de.gif)
接口
![](/icons/12293dou2.gif)
具体作用大家可参考文章
![](/icons/12293dou2.gif)
apache-2.2.0提供了apr以及apr-util
![](/icons/12293de.gif)
源代码要使用发行源代码中自带
![](/icons/12293de.gif)
apr/apr-util源代码进行安装
![](/icons/12293dou.gif)
你必须手动完成:我们先编译和安装 apr 1.2 # tar xzvf httpd -2.2.0.tar.gz # cd httpd-2.2.0 # cd srclib/apr # ./configure ——prefix=/usr/local/apr # make # make
![](/icons/12293install.gif)
现在编译和安装 apr-util 1.2 # cd ……/apr-util # ./configure ——prefix=/usr/local/apr-util ——with-apr=/usr/local/apr/ # make # make
![](/icons/12293install.gif)
开始安装配置 apache
![](/icons/12293dou.gif)
在这里我们需要
![](/icons/12293yi.gif)
个mod_proxy_ajp模块
![](/icons/12293dou.gif)
这个是为整合tomcat用
![](/icons/12293de.gif)
![](/icons/12293dou.gif)
用2.2.0就是美
![](/icons/12293dou.gif)
哈哈
![](/icons/12293dou2.gif)
cd ……/……/ # ./configure ——prefix=/usr/local/httpd220 ——enable-so ——enable-rewrite=share ——enable-proxy=share ——enable-proxy-ajp=share ——enable-dav=share ——with-apr=/usr/local/apr/ ——with-apr-util=/usr/local/apr-util/ # make # make
![](/icons/12293install.gif)
现在让我们查看编译进apache
![](/icons/12293de.gif)
模块:# cd /usr/local/httpd220/bin # ./httpd -l我们要
![](/icons/12293de.gif)
mod_proxy_ajp.c也在其中就可以了
![](/icons/12293dou2.gif)
现在不用配置apache
![](/icons/12293de.gif)
conf文件
![](/icons/12293dou.gif)
我们直接安装php
![](/icons/12293dou.gif)
我用
![](/icons/12293de.gif)
是4.4.2版本# cd /usr/local/httpd220/bin # cp apachectl /etc/init.d/httpd # cd /etc/rc3.d # ln -s ……/init.d/httpd S85httpd # ln -s ……/init.d/httpd K85httpd
3、安装php # tar xzvf php-4.4.2.tar.gz # cd php-4.4.2 # ./configure ——prefix=/usr/local/php442 ——with-apxs2=/usr/local/httpd220/bin/apxs ——with-config-file-path=/usr/local/php442 ——with-mysql=/usr/local/mysql ——with-mail ——sysconfdir=/usr/local/php442/etc ——with-gd ——with-zlib ——with-png ——with-jpeg ——with-freetype ——enable-
![](/icons/12293socket.gif)
s # make;make
![](/icons/12293install.gif)
cp php.ini-dist /usr/local/php442/php.ini
4、安装modsecurity(mod_security 可以加强apache
![](/icons/12293de.gif)
性
![](/icons/12293dou.gif)
特别是在防sql 注入上有很好
![](/icons/12293de.gif)
效果
![](/icons/12293dou2.gif)
)
站点: # tar zxvf modsecurity-apache-1.9.2.tar.gz # cd modsecurity-apache-1.9/apache2/ # /usr/local/httpd220/bin/apxs -cia mod_security.c打开httpd.conf查看是否有如下文字加入LoadModule security_module modules/mod_security.so如没有则加上去在httpd.conf中添加下列
![](/icons/12293yi.gif)
段mod_security
![](/icons/12293de.gif)
配置文件
SecFilterEngine _disibledevent=>
我们修改
![](/icons/12293yi.gif)
下zend_optimizer.optimization_level
![](/icons/12293de.gif)
参数(实际只有这个参数用我们修改)
![](/icons/12293dou.gif)
这个参数是表示优化程度
![](/icons/12293de.gif)
![](/icons/12293dou.gif)
这里定义启动多少个优化过程
![](/icons/12293dou.gif)
默认值是 15
![](/icons/12293dou.gif)
表示同时开启 10 个优化过程中
![](/icons/12293de.gif)
1-4
![](/icons/12293dou.gif)
我们可以将这个值改为 1023
![](/icons/12293dou.gif)
表示开启全部10个优化过程
![](/icons/12293dou2.gif)
zend_optimizer.optimization_level=1023重新启动apache
![](/icons/12293dou.gif)
如果执行test.php时看到Zend Technologies with Zend Optimizer v2.6.0
![](/icons/12293dou.gif)
那么就介绍说明以已经应用了
![](/icons/12293dou2.gif)
优化完了
![](/icons/12293dou.gif)
我们还需要加速代码执行过程
![](/icons/12293dou2.gif)
由于turck-mmcache
![](/icons/12293de.gif)
作者已经被zend招安了
![](/icons/12293dou.gif)
turck-mmcache很久没有更新了
![](/icons/12293dou2.gif)
我们这次介绍另
![](/icons/12293yi.gif)
个不错
![](/icons/12293de.gif)
开源优化php代码软件SoftwareeAccelerator.安装很简单
![](/icons/12293dou.gif)
跟我
![](/icons/12293yi.gif)
步
![](/icons/12293yi.gif)
步来先到下载最新版本
![](/icons/12293dou.gif)
目前是eaccelerator-0.9.4 # unzip eaccelerator-0.9.4.zip # export PHP_PREFIX="/usr/local/php442" # cd eaccelerator-0.9.4 # $PHP_PREFIX/bin/phpize # ./configure ——enable-eaccelerator=shared ——with-php-config=$PHP_PREFIX/bin/php-config # make # make
![](/icons/12293install.gif)
安装完成后你会看到下面这么
![](/icons/12293yi.gif)
句
![](/icons/12293dou.gif)
注意你
![](/icons/12293de.gif)
路径可能和我是不相同
![](/icons/12293de.gif)
![](/icons/12293dou2.gif)
/usr/local/php442/lib/php/extensions/no-debug-non-zts-20020429/然后我们要配置php.ini
![](/icons/12293dou.gif)
根据您系统
![](/icons/12293de.gif)
情况
![](/icons/12293dou.gif)
![](/icons/12293yi.gif)
般有两种安装方式
![](/icons/12293dou.gif)
![](/icons/12293yi.gif)
种按照Zend
![](/icons/12293de.gif)
扩展
![](/icons/12293dou.gif)
![](/icons/12293yi.gif)
种是PHP扩展
![](/icons/12293dou2.gif)
如果是前者
![](/icons/12293dou.gif)
请在您
![](/icons/12293de.gif)
php.ini 中加入以下代码:zend_extension="/usr/local/php442/lib/php/extensions/no-debug-non-zts-20020429/eaccelerator.so" eaccelerator.shm_size="16" 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="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9"如果您
![](/icons/12293de.gif)
系统打开了安全模式
![](/icons/12293dou.gif)
必须使用
![](/icons/12293dou.gif)
"zend_extension_ts" 取代 "zend_extension". PHP扩展安装模式
![](/icons/12293dou.gif)
请在您
![](/icons/12293de.gif)
php.ini 中加入extension="/usr/local/php442/lib/php/extensions/no-debug-non-zts-20020429/eaccelerator.so" eaccelerator.shm_size="16" 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="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9"
修改后保存
![](/icons/12293dou.gif)
开始创建cache文件夹# mkdir /tmp/eaccelerator # chmod 0777 /tmp/eaccelerator重新启动apache
![](/icons/12293dou.gif)
如果访问test.php你看到eAccelerator v0.9.4
![](/icons/12293dou.gif)
Copyright (c) 2004-2004 eAccelerator
![](/icons/12293dou.gif)
by eAccelerator with Zend Extension那就成功了
第 2章:Jdk+Tomcat安装及配置
1、Jdk安装Jdk 是开发工具包 ( Development Kit )
![](/icons/12293de.gif)
缩写
![](/icons/12293dou2.gif)
它是
![](/icons/12293yi.gif)
种用于构建在 Java 平台上发布
![](/icons/12293de.gif)
应用
![](/icons/12293chengxu.gif)
、applet 和组件
![](/icons/12293de.gif)
开发环境
![](/icons/12293dou2.gif)
Jdk是
![](/icons/12293yi.gif)
切java应用
![](/icons/12293chengxu.gif)
![](/icons/12293de.gif)
基础
![](/icons/12293dou.gif)
所有
![](/icons/12293de.gif)
java应用
![](/icons/12293chengxu.gif)
是构建在这个的上
![](/icons/12293de.gif)
![](/icons/12293dou2.gif)
它是
![](/icons/12293yi.gif)
组API
![](/icons/12293dou.gif)
也可以说是
![](/icons/12293yi.gif)
些java Class.下载站点:[url]http://java.sun.com/j2se/1.5.0/download.jsp[/url]最新版本:JDK 5.0 Update 6下面开始安装# rpm -qa | grep libgcj libgcj-3.2.3-53 libgcj-ssa-devel-3.5ssa-0.20030801.48 libgcj-ssa-3.5ssa-0.20030801.48 libgcj-devel-3.2.3-53 # rpm -e gcc-java-3.2.3-53 # rpm -e libgcj-devel # rpm -e redhat-lsb # rpm -e gettext-0.11.4-7 # rpm -e libgcj # chmod +x jdk-1_5_0_06-linux-i586-rpm.bin # ./jdk-1_5_0_06-linux-i586-rpm.bin # vi ~/.bash_profile把其改成如下:JAVA_HOME=/usr/java/jdk1.5.0_06 CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin BASH_ENV=$HOME/.bashrc TOMCAT_HOME=/usr/local/tomcat USERNAME="root"
export USERNAME BASH_ENV PATH JAVA_HOME CLASSPATH TOMCAT_HOME使环境变量起作用# source ~/.bash_profile # java # javac如果java 和javac运行了
![](/icons/12293dou.gif)
介绍说明java环境变量配置成功
![](/icons/12293dou2.gif)
2、Tomcat安装下载站点:最新版本5.5.16 # tar zxvf apache-tomcat-5.5.16.tar.gz # mv apache-tomcat-5.5.16 /usr/local/tomcat tomcat这个东西几乎是解压以后就能跑了
3、配置tomcat及apache整合# vi /usr/local/tomcat/conf/web.xml
javaEncoding GB18030
把上面
![](/icons/12293de.gif)
文字加到3上方为了配置文件
![](/icons/12293de.gif)
可读性
![](/icons/12293dou.gif)
我们再次修改apache配置文件
![](/icons/12293dou.gif)
把如下开关打开vi /usr/local/httpd220/conf/httpd.conf # Virtual hosts Include conf/extra/httpd-vhosts.conf # vi /usr/local/httpd220/conf/extra/httpd-vhosts.conf NameVirtualHost YourIp:80
DirectoryIndex index.jsp
ProxyPass / ajp://localhost:8009/ ProxyPassReverse / ajp://localhost:8009/ ServerAdmin ServerName YourIp ServerAlias www ErrorLog logs/YourIp-error_log CustomLog logs/YourIp-access_log common
4、启动tomcat和apache # /usr/local/tomcat/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/java/jdk1.5.0_06 # /usr/local/httpd220/bin/apachectl restart
5、访问测试我们访问[url]http://YourIp/[/url]
![](/icons/12293dou.gif)
看到什么?
如果你能看到tomcat默认页面
![](/icons/12293dou.gif)
那么恭喜你
![](/icons/12293dou.gif)
tomcat和apache整合成功了
![](/icons/12293dou2.gif)
第 3章:Mysql连接池
![](/icons/12293de.gif)
加入及测试下载最新
![](/icons/12293de.gif)
mysql-connector-java-3.1.12.tar.gz # tar xzvf mysql-connector-java-3.1.12.tar.gz # cd mysql-connector-java-3.1.12 # cp mysql-connector-java-3.1.12-bin.jar /usr/local/tomcat/common/lib # vi ~/.bash_profile修改CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar 为CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:/usr/local/tomcat/common/lib/mysql-connector-java-3.1.12-bin.jar更新bash # . ~/.bash_profile我们
![](/icons/12293yi.gif)
会用刚才那个虚拟主机测试
![](/icons/12293yi.gif)
下# mkdir /usr/local/httpd220/htdocs/test # cd /usr/local/httpd220/htdocs/test # vi index.jsp 内容如下:
您
![](/icons/12293de.gif)
第
![](/icons/12293yi.gif)
个字段内容为:您
![](/icons/12293de.gif)
第 2个字段内容为:
# vi /usr/local/tomcat/conf/server.xml appBase="/usr/local/httpd220/htdocs/test" name="test"> crossContext="true" docBase="." path="" reloadable="true">
# vi /usr/local/httpd220/conf/extra/httpd-vhosts.conf修改这个虚拟主机
![](/icons/12293de.gif)
配置为如下:
DirectoryIndex index.jsp
ProxyPass / ajp://localhost:8009/ ProxyPassReverse / ajp://localhost:8009/ ServerAdmin [email]
[email protected][/email] ServerName 211.100.30.238 ServerAlias www ErrorLog logs/211.100.30.238-error_log CustomLog logs/211.100.30.238-access_log common
重新启动tomcat和apache
![](/icons/12293dou.gif)
访问[url]http://Your[/url] Ip/如果出现个
![](/icons/12293cuowu.gif)
页面
![](/icons/12293dou.gif)
提示Host 'Your host name' is not allowed to connect to this MySQL server那么你只要在mysql下执行mysql> grant all on *.* to root@ Your host name ident
![](/icons/12293if.gif)
ied by "hahaha";Query OK
![](/icons/12293dou.gif)
0 rows affected (0.00 sec)
mysql> flush privileges;Query OK
![](/icons/12293dou.gif)
0 rows affected (0.00 sec)
如果看到您
![](/icons/12293de.gif)
第
![](/icons/12293yi.gif)
个字段内容为: 您
![](/icons/12293de.gif)
第 2个字段内容为:localhost root Your host name root Tomcat+JDK+mySQL完整测试
![](/icons/12293dou.gif)
恭喜你
![](/icons/12293dou.gif)
数据库操作成功!
那么恭喜你
![](/icons/12293dou.gif)
![](/icons/12293yi.gif)
切OK
![](/icons/12293dou.gif)
可以开始你
![](/icons/12293de.gif)
页面设计和制作了