Chinaunix首页 | 论坛 | 博客
  • 博客访问: 99436
  • 博文数量: 33
  • 博客积分: 101
  • 博客等级: 民兵
  • 技术积分: 185
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-17 22:42
文章分类
文章存档

2013年(1)

2012年(16)

2011年(16)

我的朋友

分类:

2012-01-20 23:58:59

      搭建这个服务真的让我很是无语,为什么呢?刚开始搭建时完全按照客户说的和按照客户要求使用他提供的软件,我想使用就使用吧也没什么问题。当搞了大半天, 终于将所有的东西搭建好并讲过初步测试可以使用,我当时甚是高兴(据他们说曾经请了3四个人都没有搭建成,那时我挺纳闷呢?一个服务用得着么)
       当我把配置文件什么的一大堆交给客户时,客户直接否定--说:我要将其他服务器上的东东直接copy这新机器上。他妈的,经过本人检查本人搭建的时候全是编译安装的二其他服务器上搭建时用的是yum和编译结合的,很多模块根本就没有。
       最后,无语。但是还是没有办法重新更改一些东西(想客户要了以前搭建时配置文档,好是简单甚至里面还缺少很多东西。照着这文档,在搭建也不可能成功的)。好了,今天将本人搭建的过程与搭建分享一下。在此,感谢Google!
     说明,数据库客户只是使用客户端进行连接其他服务器上的。并没有采用本人说的yum安装,硬是要编译安装。

搭建环境:系统Centos5.3(64bit)  ,dell 2850  ,内存:4G

使用软件下载地址:

 
  1. apache: http://www.apache.org/dist/httpd/httpd-2.2.4.tar.bz2
  2.           Tomcat: http://apache.etoak.com/tomcat/tomcat-6/v6.0.33/bin/apache-tomcat-6.0.33.tar.gz
  3.   Tomcat-connect: tomcat-connectors-1.2.32-src.tar.gz
  4.  或者http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/netware/
  5. Php: http://tr.php.net/distributions/php-5.3.8.tar.bz2
  6.           Mysql:www.mysql.com
  7. Jdk下载:http://download.oracle.com/otn-pub/java/jdk/6u30-b12/jdk-6u30-linux-x64-rpm.bin
  8.          http://download.oracle.com/otn-pub/java/jdk/6u30-b12/jdk-6u30-linux-i586-rpm.bin
  9.        一个是64位的,一个是32位的。
开始搭建:
一:安装mysql:

  1. #groupadd –g 3306 mysql
  2. #ueradd –g mysql –u 3306 -s /sbin/nologin –M mysql
  3.            #tar xvf tar mysql-5.0.67.tar.gz
  4.            #cd mysql-5.0.67
  5.            #./configure -prefix=/usr/local/mysql --with-charset=utf8 --with-collation=utf8_bin --with-extra-charsets=big5,ascii,gb2312,gbk,utf8,latin1
  6.  --enable-thread-safe-client --with-unix-socket=/tmp/mysql.sock –enable-innodb --with-enable --with-mysqld-ldflags=-all-static --enable-assembler
  7.            #make && make install
  8.            #cp support-medium.cnf /etc/my.cnf
  9.            #chown –R mysql.mysql /usr/local/mysql/
  10.            #chown –R root.mysql /usr/local/mysql/var/
  11.            #cp support-files/mysql.server /etc/init.d/mysqld
  12.            #chkconfig –add mysqld
  13. 编辑/etc/my.cnf 在mysqld下加个datadir = /mydata/data
  14.    #echo “/usr/local/mysql/lib/mysql/>>/etc/ld.so.cnf
  15. 启动mysql:/usr/local/mysql/bin/mysqld_safe –user=mysql & (这个是启动多个实例数据库方法,当然你可以使用下列启动方法)
  16. 常用的启动: #cp cp scripts/mysql.server /etc/init.d/mysqld
  17.            #chkconfig --add mysqld
  18.            #chkconfig mysqld on
  19.         查看是否启动:netstat -ntlp是否有mysql端口号
二:PostgeSQL安装:

   下载地址:该目录下找你需要的版本

本人下载的版本

   增加用户:
  1. #groupadd -g 540 postgres
  2. #useradd -u 540 -g postgres -d /home/postgres -s /bin/bash postgres
  3. #./configure --prefix=/usr/local/pgsql
  4. #make
  5. #make install
  6. #mkdir /usr/local/pgsql/data
  7. #chown postgres:postgres -R /usr/local/pgsql/
  8. #cd /home/postgres/
  环境设置:
  1. #cd /home/postgres/
  2. 编辑.bash_profile
  3. PGLIB=/usr/local/pgsql/lib
  4. PGDATA=/usr/local/pgsql/data
  5. PATH=$PATH:/usr/local/pgsql/bin
  6. MANPATH=$MANPATH:/usr/local/pgsql/man
  7. export PGLIB PGDATA PATH MANPATH
  8. 让文件生效:source .bash_profile
  PostgreSQL启动,检查是否有5432的端口:
  1. #su postgres
  2. #cd /usr/local/pgsql/bin
  3. #./initdb -D /usr/local/pgsql/data
  4. #mkdir /usr/local/pgsql/log
  5. #./pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/log/postgres.log start
  6. #./pg_ctl -D /usr/local/pgsql/data start
  7. #exit
  8. #echo "/usr/local/pgsql/lib" >> /etc/ld.so.conf
  9. #ldconfig
三:安装JDK

  1. #chmod +x jdk-6u30-linux-x64-rpm
  2.   对于以bin结尾的可以用./jdk-*-.rpm.bin进行安装,之后在用rpm安装。默认安装位置是/usr/java/下
  3.   设置环境变量:vi /etc/profile
  4. JAVA_HOME=/usr/java/jdk1.6.0_30/
  5. JRE_HOME=/usr/java/jdk1.6.0_30/jre
  6. CLASSPATH=/usr/java/jdk1.6.0_30/lib:/usr/java/jdk1.6.0_30/jre/lib
  7. PATH=/usr/java/jdk1.6.0_30/bin:$PATH
  8. export PATH JAVA_HOME CLASSPATH JRE_HOME
  9. 让文件生效source /etc/profile
    验证Java是否生效:
  1. 出现如下提示则ok:java version "1.6.0_20"
  2. OpenJDK Runtime Environment (IcedTea6 1.9.10) (rhel-1.23.1.9.10.el5_7-i386)
  3. OpenJDK Client VM (build 19.0-b09, mixed mode)
  4. 为了方便需要建立个连接:
  5. # ln -sv /usr/java/jdk1.6.0_30/ /usr/local/java
四:安装Apache
          服务器上使用yum安装的,这里我用编译安装并且经验证是可以直接将yum的Apache配置文件复制到编译里面的而且可以启动:

  1. #tar xvf httpd-2.2.4.tar.bz2
  2.          #cd httpd-2.2.4
  3.          # /configure -prefix=/usr/local/apache --enable-so --enable-modules=all --enable-mods-shared=all --enable-cgi --enable-rewrite --with-expat=builtin --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/
  4.          #make && make install
       启动服务: /usr/local/apache/bin/apachectl start
       检查是否有Apache是否启动,默认80端口:Netsart –ntlup|grep httpd
     注意:在64位的机器上加上:--with-expat=builtin如果是32位的则不用加
      make的时候可能会出现类似"/usr/lib/libexpat.so: could not read symbols: File in wrong format”的错误,可能需要重建64位环境下的编译文件configure 。编译时加上: –with-expat=builtin,即可解决问题

#
      在编译Apache时可能出现的问题以及解决方法:
  1. 出错: configure: error: Cannot use an external APR with the bundled APR-util

解决方法:安装apr,apr-util

  1. tar xzvf apr-1.2.9.tar.gz
  2. cd apr-1.2.9
  3. ./configure --prefix=/usr/local/apr
  4. make
  5. make install

  6. tar xzvf apr-util-1.2.8.tar.gz
  7. cd apr-util-1.2.8
  8. ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
  9. make
  10. make install
五:安装tomcat
       
  1. # tar xvf apache-tomcat-6.0.33.tar.gz.gz
  2. # mv apache-tomcat-6.0.33 /usr/local/tomcat

可以启动一下:/usr/local/tomcat1/bin/startup.sh

看看是否启动:netstat –ntlp (是否有8080,8009,8005端口),可以使用URL访问8080端口是否出现“猫”

六:安装php

# tar xvf php-5.3.8.tar.bz2

            #cd php-5.3.8

            # cp php.ini-dist /etc/php.ini

            # ./configure -prefix=/usr/local/php  --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/php --with-zlib-dir=/usr/lib64/ --with-openssl=/usr/local/openssl  -enable-openssl –with-mysql=/usr/local/mysql

            #make && make install


#######################################################################3
  1. 加入以下内容:找到 LoadModule php5_module modules/libphp5.so
  2.           加入 AddType application/x-httpd-php .php .php3 .inc
  3.                  AddType application/x-httpd-php-source .phps
  4.           找到DirecotryIndex加入
  5.   DirectoryIndex index.html index.php index.jsp
验证php是否能用:

  1. Echo “<?php phpinfo() ?>>/user/local/apache/htdocs/index.php
           重启服务访问index.php文件

 注:其中apxs2指的是Apache 2.0的模块

   Php问题:/usr/bin/ld: cannot find –lmysqlclient

         由于系统时64位系统,php默认去/usr/lib/中搜索,所以没有找到出错

 解决:cp -rp /usr/lib64/mysql/libmysqlclient.so.15.0.0 /usr/lib/libmysqlclient.so

七:整合tomct和Apache

  1. #tar xvf tomcat-connectors-1.2.32-src.tar.gz
  2.             #cd tomcat-connectors-1.2.32-src/native/
  3.             # ./configure --with-apxs=/usr/local/apache/bin/apxs --with-java-home=/usr/local/java/
  4.              #make && make install
  5.      ls /usr/local/apache/modules/mod.jk.so(查看是否有此文件)
  6. 如果没有则:cp ./apache-2/mod_jk.so /usr/local/apache/modules/
       编辑httpd.conf文件:
  1. LoadModule jk_module modules/mod_jk.so
  2. Include conf/mod_jk.conf (这里面是相对路径/etc/httpd/conf/下,也可以写绝对路径
     conf/下创建mod_jk.conf文件并加入以下内容:
  1. JkWorkersFile conf/workers.properties
  2. JkLogFile /var/log/jk.log
  3. JkShmFile /var/log/jk-runtime-status
  4. JkLogLevel warning 如果是刚刚安装的话可以设成info,调试成后改成error或warning
  5. JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
  6. JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
  7. JkRequestLogFormat "%w %V %T"
  8. JkMount /*.jsp ajp13 根目录下所有jsp文件让tomcat解析
  9. JkMount /*.do ajp13
  10. JkMount /servlet/* ajp13
    在conf/下创建workers.properties文件并加入以下内容:

  1. workers.apache_log=/etc/httpd/logs/
  2. workers.tomcat_home=/usr/local/tomcat
  3. workers.java_home=/usr/local/java
  4. ps=/
  5. # Define 1 worker, real worker using jni
  6. worker.list=ajp13
  7. # Set properties for worker1 (jni)
  8. #worker.worker1.type=jni
  9. # ajp13 (ajp13)
  10. worker.ajp13.type=ajp13
  11. worker.ajp13.host=localhost
  12. worker.ajp13.port=8009
  13. worker.ajp13.cachesize=10
  14. worker.ajp13.cache_timeout=600
  15. worker.ajp13.socket_keepalive=1
  16. worker.ajp13.socket_timeout=60

  17. worker.worker1.jvm_lib=$(workers.java_home)$(ps)jre$(ps)bin$(ps)classic$(ps)libjvm.so
  18. worker.worker1.stdout=$(workers.apache_log)$(ps)inprocess.stdout
  19. worker.worker1.stderr=$(workers.apache_log)$(ps)inprocess.stderr
  20. worker.worker1.sysprops=tomcat.home=$(workers.tomcat_home)

  验证Apachetomcat是否整合成功:

1、  htttp://usrl:8080 是否能出现能看到猫

2、  在目录下创建jsp文件,是否能访问成功:

在访问目录下创建jsp文件,加入以下内容,并验证是否能访问:

  1. <%@ page contenType=”text/html;charset=big5” %>
  2. <%
  3.       String str1=”Hello World!”;
  4.       Out.println(str1);
  5. %>

八:安装日志切割工具

  1. #tar zxvf cronolog-1.6.2.tar.gz
  2. #cd cronolog-1.6.2
  3. #./configure –prefix=/usr/local/cronolog
  4. #make ; make install

  更改Apache配置文件加入以下内容

  1. CustomLog "|/usr/local/sbin/cronolog logs/access_log.%Y%m%d" combined
  2. ErrorLog "|/usr/local/sbin/cronolog logs/error_log.%Y%m%d"
  3.    重启以下服务即可,然后检查一下logs/下目录是否有文件生成

 九:mysql-connect连接配置及测试:

            要让tomcatmysql通信必须下载mysql-connector-java-XXX文件才行。

  1. #wget http://mysql.spd.co.il/Downloads/Connector-J/mysql-connector-java-5.1.17.zip
  2. #unzip mysql-connector-java-XXX
  3. #cp mysql-connector-java-5.1.18-bin.jar /usr/local/tomcat/lib/

    重启以下tomcatApache即可,验证是否能连上数据库方法如下

  1、  登陆数据库
  1. Mysql>create database tomcat;
  2. Mysql>use tomcat;
  3. Mysql> create table tt(id int, name varchar(128)) character set utf8 collate utf8_general_ci;
  4. Mysql> insert into tt values(1,'insert data: character set utf8 collate utf8_general_ci');
  5. Mysql> insert into tt values(2,'insert data: character set utf8 collate utf8_general_ci');
  6. Mysql> insert into tt values(3,'insert data: character set utf8 collate utf8_general_ci');
  7. Mysql> grant all on tomcat.* to tomcat@localhost identified by 'tomcat';
  8. MYsql>flush privileges;

2、  在访问目录下创建jdbc.jsp文件,并加入以下内容:

  1. <%@ page import="java.sql.*"%>
  2. <html>
  3. <body>
  4. <%
  5. Class.forName("org.gjt.mm.mysql.Driver").newInstance();
  6. String url ="jdbc:mysql://localhost/tomcat?user=tomcat&password=tomcat&useUnicode=true&characterEncoding=utf-8";
  7. Connection conn= DriverManager.getConnection(url);
  8. Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
  9. String sql="select * from tt";
  10. ResultSet rs=stmt.executeQuery(sql);
  11. while(rs.next()) {%>
  12. step:<%=rs.getString(1)%>
  13. context:<%=rs.getString(2)%><br><br>
  14. <%}%>
  15. <%out.print("Congratulations!!! JSP connect MYSQL IS OK!!");%>
  16. <%rs.close();
  17. stmt.close();
  18. conn.close();
  19. %>
  20. </body>
  21. </html>
       通过游览器访问jdbc.jsp文件是否出现如下图所示:



说明,当更改httpd.conf文件访问路径的时候,在访问jsp文件时有时在更新过jsp文件时通过游览器访问却还是上次访问的,解决方法

1、  删除tomcat目录下work/Catalina/localhost/* 所有文件并重新启动tomcat即可

2、  更改tomcat目录下server.xml文件加入以下内容,重新启动tomcat即可:

  1. <Context path="" docBase="/var/www/html" debug="0" reloadable="true" crossContext="true"/>
  2.          有些版本在启动时看到tomcat日志出现debug警告,我就直接将其去掉。暂时未找到其他方法

十、搭建个网站测试测试、
       之所以搭建这个网站完全是为了让顾客相信,这个服务是可行的。把他们网站放上去jsp文件是可以通过tomcat解析的。总之,这个服务没有问题:
        测试网站时jsprun,搭建可以网上找找。
      安装方法很是简单,将网站东西放在web访问目录下编辑config.properties文件,更改一下用户和密码即可。至于怎么创建用户,tomcat数据库连那个地方就有方法,在此不说了。
       更改数据库密码:mysqladmin -uroot -hlocalhost password '123456';

后语:一句话很是扯蛋!32位,64位版本等等,出现过各种问题,而百度实在垃圾总是驴头不对马嘴找不到想要的东西,谷歌总是找一会就出现无法访问。不过解决问题过程挺好!

阅读(1712) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~