Ⅰ、首先编译安装mysql,因为下面的文件需要使用到mysql
编译优化安装mysql-5.1.46.tar.gz
# tar zxvf mysql-5.1.46.tar.gz
# cd mysql-5.1.46
# groupadd -g 5050 mysql
# useradd -g mysql -u 5050 -s /sbin/nologin -M mysql
# autoreconf --force --install
# libtoolize --automake --force
# automake --force --add-missing
# CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer -ffixed-ebp"
# ./configure --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock --with-charset=gbk --localstatedir=/data --with-extra-charsets=all --enable-thread-safe-client --with-plugins=all --with-pthread
注:suse下编译需要将--with-client-ldflags=-all-static 改成all-static-ltinfo
# make && make install
# cd /usr/local/mysql/
# chown -R mysql:mysql .
# chown -R mysql:mysql /data
# bin/mysql_install_db --user=mysql
# cp share/mysql/https://www.doczj.com/doc/fb12508.html,f /etc/https://www.doczj.com/doc/fb12508.html,f
# echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
# ldconfig
# echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
# source /etc/profile
# cp share/mysql/mysql.server /etc/init.d/mysqld
# chmod 755 /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld off
Ⅱ编译安装apache和php
㈠编译安装支持库
1、编译安装jpegsrc.v6b.tar.gz
# tar zxvf jpegsrc.v6b.tar.gz
# mkdir -pv /usr/local/jpeg/{,bin,lib,include,man/man1,man1}
# cd jpeg-6b/
# ./configure --prefix=/usr/local/jpeg --enable-shared --enable-static
# make && make install
2、编译安装libpng-1.4.4.tar.gz
# tar zxvf libpng-1.4.4.tar.gz
# cd libpng-1.4.4
# ./configure --prefix=/usr/local/libpng
# make && make install
3、编译安装freetype-2.4.3.tar.gz
# tar zxvf freetype-2.4.3.tar.gz
# cd freetype-2.4.3
# mkdir -pv /usr/local/freetype
# ./configure --prefix=/usr/local/freetype
# make && make install
4、编译安装zlib-1.2.5.tar.gz
# tar zxvf zlib-1.2.5.tar.gz
# cd zlib-1.2.5
# mkdir /usr/local/zlib
# ./configure --prefix=/usr/local/zlib
# make && make install
5、编译安装curl-7.21.2.tar.gz
# tar zxvf curl-7.21.2.tar.gz
# mkdir -pv /usr/local/curl
# cd curl-7.21.2
# ./configure --prefix=/usr/local/curl
# make && make install
6、编译安装libxml2-sources-2.7.8.tar.gz
# tar zxvf libxml2-sources-2.7.8.tar.gz
# cd libxml2-2.7.8/
# mkdir -pv /usr/local/libxml2
# ./configure --prefix=/usr/local/libxml2
# make
# make install
7、编译安装libxslt-1.1.9.tar.gz 可以安装,也可以不安装
# tar zxvf libxslt-1.1.9.tar.gz
# mkdir -pv /usr/local/libxslt
# cd libxslt-1.1.9
# ./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2
# make
# make install
8、编译安装fontconfig-2.8.0.tar.gz
下载地址https://www.doczj.com/doc/fb12508.html,/release/
# tar zxvf fontconfig-2.8.0.tar.gz
# cd fontconfig-2.8.0
# mkdir -pv /usr/local/fontconfig
# ./configure --prefix=/usr/local/fontconfig --disable-docs --with-freetype-config=/usr/local/freetype/bin/freetype-config # make
# make install
9、编译安装gettext-0.18.tar.gz 下载地址https://www.doczj.com/doc/fb12508.html,/gnu/gettext/
可以使用yum install gettext安装
# tar zxvf gettext-0.18.tar.gz
# cd gettext-0.18
# mkdir /usr/local/gettext
# ./configure --prefix=/usr/local/gettext
# make && make install
10、编译安装libart_lgpl-2.3.17.tar.tar
# tar zxvf libart_lgpl-2.3.17.tar.tar
# cd libart_lgpl-2.3.17
# mkdir -pv /usr/local/libart
# ./configure --prefix=/usr/local/libart #也有加上参数--disable-shared 意义暂时不明白
# make && make install
11、编译安装gd-2.0.35.tar.gz
# tar zxvf gd-2.0.35.tar.gz
# cd gd-2.0.35
# mkdir -pv /usr/local/gd2
# ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg --with-zlib-dir=/usr/local/zlib --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype --with-fontconfig=/usr/local/fontconfig --with-gettext=/usr/local/gettext --with-libart=/usr/local/libart
如果安装 GD2时出错提示:
configure.ac:64: warning: macro `AM_ICONV' not found in library
--run autoconf configure.ac:64: error: possibly undefined macro: AM_ICONV
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
make: *** [configure] error 1
解决:cp /usr/lib/libattr.a /lib/libattr.a
说明:在/usr/lib/libattr.* 在/usr/lib下有2个libarrt.*文件,在/lib下面有其中一个,把另一个复制过去就OK
如果出错:make[2]: *** [gd_png.lo] Error 1 解决:修改gd源文件下
# vim gd_png.c
找到png.h修改为/usr/local/libpng/include/png.h
# make
# make install
Ⅲ、安装apache和php
①安装apr和apr-util,这两个软件在apache源码包的srclib目录下
apr编译
# ./configure --prefix=/usr/local/apr
# make && make install
apr-util编译
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make && make install
②安装httpd-2.2.15 #这是基于MPM-prefork进程模式,MPM-worker模式基于线程
③修改一些安全参数和并发连接参数下面的文件都在apache的源文件中
# vim server/mpm/prefork/prefork.c
#define DEFAULT_SERVER_LIMIT 5000
# vim server/mpm/worker/worker.c
#define DEFAULT_THREAD_LIMIT 400
#define DEFAULT_SERVER_LIMIT 200
# vim include/ap_release.h
#define AP_SERVER_BASEPRODUCT "Microsoft-IIS/5.0"
# vim os/unix/os.h
#define PLATFORM "Win32"
# tar zxvf httpd-2.2.15.tar.gz
# cd httpd-2.2.15
# ./configure --prefix=/usr/local/apache2 --enable-so --enable-cache --enable-file-cache --enable-mem-cache --enable-disk-cache --enable-rewrite --enable-deflate --enable-expires --disable-cgi --disable-cgid --disable-access --disable-env --disable-autoindex --disable-asis --disable-action --disable-negotiation --disable-include --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-mods-shared=most
#最后一个参数为可选
# make && make install
# /usr/local/apache2/bin/apachectl -l #查看编译的模块
# /usr/local/apache2/bin/apachectl start #启动http服务,输入http://IP出现页面表示apache安装成功
④安装php
1、编译安装zxvf php-5.3.3.tar.gz
# tar zxvf php-5.3.3.tar.gz
# mkdir -pv /usr/local/php5
# cd php-5.3.3
# ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-gd=/usr/local/gd2 --with-jpeg-dir=/usr/local/jpeg --with-zlib-dir=/usr/local/zlib --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype --with-mysql=/usr/local/mysql --enable-mbstring=all --with-curl=/usr/local/curl --enable-mbregex --enable-ftp --enable-soap --with-xsl=/usr/local/libxslt --with-config-file-path=/usr/local/php5/etc --enable-zip --with-libXML-dir=/usr/local/libxml2 --enable-sockets
# make
# make install
⑤整合apache和php
修改httpd.conf文件使支持php
# vim /usr/local/apache2/conf/httpd.conf
查看是否有这一行,如果没有,需要增加上,理论上apache2.2.15与php5.3.3编译安装完成后,会自动生成这一行LoadModule php5_module modules/libphp5.so
在第310行下面增加下面的内容,309与310行的内容是
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
在这两行下面加入下面的内容,就能支持php
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
注:关于没有php.ini的解决,从源码目录复制
cp php.ini-dist /usr/local/php5/etc/
⑥增加一个php测试页面(现在的家目录在apache_home/htdocs下面)另外,测试完后不要忘记删掉这个页面
# vim /usr/local/apache2/htdocs/test.php
Ⅲ编译安装tomcat并且与apache整合
准备备工作,将apache-tomcat-5.5.31.tar.gz、jdk-6u3-linux-i586.bin、放到/usr/local/目录下面
①安装jdk并测试
# chmod +x jdk-6u3-linux-i586.bin
# ./jdk-6u3-linux-i586.bin
# mv jdk1.6.0_03/ java
# vim /etc/profile
JA V A_HOME=/usr/local/java
PATH=$JA V A_HOME/bin:$PATH
CLASSPATH=.:$JA V A_HOME/lib/dt.jar:$JA V A_HOME/lib/tools.jar:$JA V A_HOME/jre/lib/rt.jar
export JA V A_HOME
export PA TH
export CLASSPA TH
# source /etc/profile
# java -version
②安装tomcat并测试
# tar zxvf apache-tomcat-5.5.31.tar.gz
# mv apache-tomcat-5.5.31 tomcat
# /usr/local/tomcat/bin/startup.sh
Using CA TALINA_BASE: /usr/local/tomcat
Using CA TALINA_HOME: /usr/local/tomcat
Using CA TALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar
在其它的电脑上输入http://你的IP地址:8080 ,这个时候应该能看到猫头
③整合apache与tomcat,在前面安装apache的时候已安装apr和apr-util这两个东西,这个东西可以提高tomcat 的性能
安装tomcat-native /usr/local/tomcat/bin/tomcat-native.tar.gz
# cd /usr/local/tomcat/bin
# tar zxvf tomcat-native.tar.gz
# cd tomcat-native-1.1.20-src/jni/native/
# ./configure --with-apr=/usr/local/apr --with-java-home=/usr/local/java
# make && make install
# vim /etc/profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PA TH:/usr/local/apr/lib
# source /etc/profile
从这儿开始整合,这也是整个apache与tomcat整合最重要的地方
编译安装tomcat-connectors-1.2.28-src.tar.gz 先解压缩
# tar zxvf tomcat-connectors-1.2.31-src.tar.gz
# cd tomcat-connectors-1.2.31-src/native/
# ./configure --with-apxs=/usr/local/apache2/bin/apxs
# make
# cp apache-2.0/mod_jk.so /usr/local/apache2/modules/
# ls -al /usr/local/apache2/modules/
会存下绿色的mod_jk.so文件
配置
在/usr/local/apache2/conf/ 目录下面建立mod_jk.conf 和workers.properties
mod_jk.conf文件
# cd /usr/local/apache2/conf/
# vim mod_jk.conf
JkWorkersFile /usr/local/apache2/conf/workers.properties
JkLogFile /usr/local/apache2/logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H %S %Y]"
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /*.jsp worker1
JkMount /*/servlet/ worker1
JkMount /*.do worker1
# vim workers.properties
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300
# vim httpd.conf
Listen 192.168.0.249 80
ServerName 192.168.0.249:80
DirectoryIndex index.php index.jsp index.html
LoadModule jk_module modules/mod_jk.so
Include /usr/local/apache2/conf/mod_jk.conf
修改tomcat conf/server.xml
# vim /usr/local/tomcat/conf/server.xml
这一段同时也是调优的一个办法
在host段加入
一个测试jsp的页面
# vim /usr/local/apache2/htdocs/test.jsp
Now time is: <%=new java.util.Date()%>
使用ab测试并发
ab -n 10000 -c 100 http://192.168.0.249/test.jsp
这表示同时处理1000个请求并运行10000次test.jsp页面