热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS系统配置resin整合Apache+MySQL数据库的方法

Resin是CAUCHO公司(http://www.caucho.com/)的产品,是一个非常流行的支持servlets和jsp的引擎,速度非常快。Resin本身包含了一个支持HTTP/1.1的WEB服务器。虽然它可以显示动态内容,但是它显示静态内容的能力也非常强,速度直逼APACHESERVER。许多站点都
Resin是CAUCHO公司(http://www.caucho.com/)的产品,是一个非常流行的支持servlets 和jsp的引擎,速度非常快。Resin本身包含了一个支持HTTP/1.1的WEB服务器。虽然它可以显示动态内容,但是它显示静态内容的能力也非常强,速度直逼APACHE SERVER。许多站点都是使用该WEB服务器构建的。

Resin也可以和许多其他的WEB服务器一起工作,比如Apache server和IIS等。Resin支持Servlets 2.3标准和JSP 1.2标准。熟悉ASPPHP的用户可以发现用Resin来进行JSP编程是件很容易的事情。
Resin支持负载平衡(Load balancing),可以增加WEB站点的可靠性。方法是增加服务器的数量。比如一台SERVER的错误率是1%的话,那么支持负载平衡的两个Resin服务器就可以使错误率降到0.01%。
你可以从http://www.caucho.com/download/ 站点上查询Resin的最新版本并下载它。

一:安装环境及相关软件包 系统版本:CentOS 5.3
所需要软件包
apache2.2.9
下载地址http://www.apache.org/dist/httpd/httpd-2.2.9.tar.bz2
jdk1.6
下载地址ftp://ftp9.freebsd.org/pub/FreeBSD/ports/distfiles/jdk-6u3-linux-i586.bin
resin3.1.0 
下载地址http://software.lupaworld.com/data/upload/resin-pro-3.1.0.tar.gz
mysql-5.0.75.tar.gz
下载地址http://down1.chinaunix.net/distfiles/mysql-5.0.75.tar.gz

二:安装apache
如果apache已经安装,需要检查apache是否支持DSO,用如下命令来检查
# /usr/local/apache/bin/httpd -l
Compiled-in modules:
  ...
  mod_so.c
  ...
如果有mod_so.c,说明支持DSO.
如果没有,安装一个新apache,可以用源码来重新编译一个
# ./configure --prefix=/usr/local/apache --enable-module=so
# make
# make install
漫长的等待之后安装完成
启动apache
#/usr/local/apache/bin/apachectl start
然后浏览器里http://localhost   就会看到 OK   apache安装成功

 三:配置安装resin
首先需要安装JDK,在Sun网站下载一个自解压包.jdk-6u3-linux-i586.bin 然后设为可执行
#chmod 700 jdk-6u3-linux-i586.bin
#./jdk-6u3-linux-i586.bin
阅读完长长的许可协议后输入yes同意,就开始解压缩了,然后把解压缩生成的目录移动到/usr下
#mv jdk1.6.0_03/ /usr/jdk1.6
接下来需要设置java的环境变量JAVA_HOME等.
#vi /etc/profile
在最后加入
export JAVA_HOME=/usr/jdk1.6
export  PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/rt.jar:$JAVA_HOME/lib/tools.jar
然后执行
#source /etc/profile

看一下我们设置的环境变量是否生效
#export
[root@www ~]# export
declare -x CLASSPATH=".:/usr/jdk1.6/lib/rt.jar:/usr/jdk1.6/lib/tools.jar"
declare -x CVS_RSH="ssh"
declare -x G_BROKEN_FILENAMES="1"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="[url]www.cooler.com[/url]"
declare -x INPUTRC="/etc/inputrc"
declare -x JAVA_HOME="/usr/jdk1.6"
declare -x LANG="zh_CN.UTF-8"
declare -x LANGUAGE="en_US"
declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"
declare -x LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:"
declare -x MAIL="/var/spool/mail/root"
declare -x OLDPWD="/root/resin-pro-3.1.3"
declare -x PATH="/usr/jdk1.6/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
declare -x PWD="/root"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"
declare -x SSH_CLIENT="192.168.1.109 3665 22"
declare -x SSH_COnNECTION="192.168.1.109 3665 192.168.1.119 22"
declare -x SSH_TTY="/dev/pts/0"
declare -x TERM="vt100"
declare -x USER="root"

可以看到,新的变量已经加上了.
接下来看看jdk的版本
#java -version
java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode, sharing)
看到以上提示说明jdk安装好了.
如果不需要和apache事例的话只用解压就可以用了。
注意:其它的版本有可能需要编译,而且会出问题。比如3.0.8就不行。建议用这个版本不用编译。
#tar zxvf resin-pro-3.1.0.tar.gz

启动resin
#resin/bin/httpd.sh start

检查下启动情况
[root@localhost bin]# netstat -tlnup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 :::47620                    :::*                        LISTEN      2044/java
tcp        0      0 :::46759                    :::*                        LISTEN      2016/java
tcp        0      0 ::ffff:127.0.0.1:6600       :::*                        LISTEN      2016/java
tcp        0      0 :::8080                     :::*                        LISTEN      2044/java
tcp        0      0 ::ffff:127.0.0.1:6800       :::*                        LISTEN      2044/java
tcp        0      0 :::22                       :::*                        LISTEN      1854/sshd
看到上面有8080端口就证明启动成功了,另外注意如果开了防火墙一定要在防火墙放行相关端口或关闭防火墙。
接下来访问http://localhost:8080
如果能看到页面,ok,装好了

:resin整合apache
解压缩resin的源码,安装到/uar/local/resin(编译RESIN前需要安装JDK安装好apache,并设置好JDK)
# ./configure --with-apxs=/usr/local/apache/bin/apxs --prefix=/usr/local/resin
# make
# make install
完成后,应该会在apache的modules目录下生成mod_caucho.so这个模块文件
数据文件存放路径/home/www
更改文件所有者
#chown -R apache:apache /home/www
更改apache配置文件指定文件存放位置及用户,相关权限。
#vi /usr/local/apache/conf/httpd.conf
User  apache
Group apache
DocumentRoot "/home/www"

Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all

apache应该还会有下面一段如果没有可自己加上:
LoadModule caucho_module /usr/local/apache/modules/mod_caucho.so
ResinConfigServer localhost 6802
CauchoConfigCacheDirectory /tmp

  SetHandler caucho-status

更改resin.conf 指定文件存放路径,要和apache相同
#vi /usr/local/resin/conf/resin.conf
             
server-id 可以自己定义,resin如果不和apache在同一台机器,host后改为resin的ip,port
将resin的默认文档目录与apache的DocumentRoot设为一致的目录

     

创建一个测试文件
#vi /home/www/test.jsp
2 + 2 = <%= 2 + 2 %>
更改所有者加上执行权限
#chmod 700 /home/www/test.jsp
#chown apache:apache /home/www/test.jsp
重启apache和resin
#/usr/local/apache/bin/apachectl restart
#/usr/local/resin/bin/httpd.sh restart
http://localhost/test.jsp
如果看到2 + 2 = 4那么恭喜你,整合成功。

五:mysql安装
安装mysql有几种方法,
一、装系统的时候用光盘自带的mysql
二、装完系统后yum -y install mysql
三、编译安装
在外面做工程的时候推荐上面两种方法,方便快捷。前两种都比较简单,就不讲了,现在主要讲下编译安装。
安装前请yum -y install gcc gcc-c++
mysql-5.0.75.tar.gz 下载地址
http://down1.chinaunix.net/distfiles/mysql-5.0.75.tar.gz
# tar zvxf mysql-5.0.75.tar.gz                                 //解压缩
# cd mysql-5.0.75                                              //进入解压缩后的文件目录
# ./configure --prefix=/usr/local/mysql                        //设定安装目录
# make
这个编译的过程比较长,如果机器比较慢的话,可能要近二十分种 ( PS:我的机器是很普通的机器,所有用了差不多15,6分种 :

编译完成后就安装:
# make install
等上几秒钟,安装完成.下面就到了最关键的部分了,为什么老安装不成功,(PS:至少我是安装了N次,N > 10 ,呵呵),问题关键就在这里,访问mysql要一个专门的用户,而且必须给相应的访问权限,这里我们就设置root和mysql有权限访问.
我们先建立一个mysql和mysql用户来访问mysql:
# groupadd mysql                      //建立mysql组
# useradd mysql -g mysql              //建立mysql用户并且加入到mysql组中
建立用户后我们就初始化表 (注意:必须先执行本步骤后才能进行以下步骤)
# ./scripts/mysql_install_db --user=mysql               //初试化表并且规定用mysql用户来访问
初始化表以后就开始给mysql和root用户设定访问权限, 我们先到安装mysql的目录:
# cd /usr/local/mysql

然后设置权限
# chown -R root .                    //设定root能访问/usr/local/mysql
# chown -R mysql var                 //设定mysql用户能访问/usr/local/mysql/var ,里面存的是mysql的数据库文件
# chown -R mysql var/.               //设定mysql用户能访问/usr/local/mysql/var下的所有文件
# chown -R mysql var/mysql/.         //设定mysql用户能访问/usr/local/mysql/var/mysql下的所有文件
# chgrp -R mysql .                   //设定mysql组能够访问/usr/local/mysql
设置完成后,基本上就装好了,好了,我们运行一下我们的mysql:
# /usr/local/mysql/bin/mysqld_safe --user=mysql &

相看一下相关端口
[root@localhost mysql]# netstat -tlnup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      2106/mysqld
tcp        0      0 :::22                       :::*                        LISTEN      1853/sshd
看3306起来了。mysql正常运行。
如果没看到3306端口,则证明你的mysql运行不来,请查看错误日志: /usr/local/mysql/var/*.err 然后确定安装是否成功,如果没有成功,请检查上面的步骤是否正确
安装完成后,能够通过 /usr/local/mysql/bin/mysql 来连接mysql进行管理,如果你装了apache并且能够解析php的话,也能使用phpMyadmin来管理你的mysql,记得装完后使用mysql或者mysqladmin来修改root的密码。
/usr/local/mysql/bin/mysqladmin ?u root ?p password '654321' //设置密码为654321
为了每次不用去加路径, 把/usr/local/mysql/bin 加入/etc/profile中
export PATH=/usr/local/mysql/bin
[root@localhost var]# mysql -uroot -p654321
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
在网上找了半天, 找到解决办法。
[root@localhost mysql]# bin/mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
分析:是/tmp/mysql.sock 不存在
# cd /var/lib/mysql/
由于mysql 默认的mysql.sock 是在/var/lib/mysql/mysql.sock,创建符号连接:
# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
# bin/mysql -u root
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1
Server version: 5.0.45 MySQL Community Server (GPL)
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql>
一般情况可以用这个办法解决。可不知道为什么,我的机子上面没有mysql.sock这个文件。郁闷。。。。。再找。
mysql.sock 突然消失算是常的,如果是第一次安MySQL才出,那只要找出 mysql.sock 在哪就可以了。
那...如果是突然不的,或是都找不到怎?
那只好重新 mysql 了,tarball 安可以透 mysqld 或 mysqladmin 重新,rpm 安可以透 service mysql restart 。但是在 mysql.sock 不的情下,可能是法重新 mysql 的,如果真的不行,只好先下:
#ps -aux|grep mysql

再把看到的 pid 先砍了
#kill 看到的pid
定全部都完了,再看一次有有

再次启动mysql
[root@localhost var]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.0.75 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>

OK搞定。
控制mysql就通过 /usr/local/mysql/libexec/mysqld 来控制启动或者停止mysql:
# /usr/local/mysql/libexec/mysqld start #启动mysql
# /usr/local/mysql/libexec/mysqld stop #停止mysql
# /usr/local/mysql/libexec/mysqld restart #重启mysql

郁闷第一次运行报这个错
100602  1:44:17 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
100602  1:44:17 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
/usr/local/mysql/libexec/mysqld: Too many arguments (first extra is 'restart').

上网搜索一下,有下面的解决办法。
mysql> select @@max_join_size;
+-----------------+
| @@max_join_size |
+-----------------+
| 705032704 |
+-----------------+
1 row in set (0.00 sec)
mysql> SET sql_max_join_size=4294967295;
Query OK, 0 rows affected (0.00 sec)
但是,我select一下这这个参数,的确是4294967295,是建议的值啊?于是重新启动一下mysql。再就没有提示这个错误,可能是mysql自己改了吧?

为了每次系统重启后都能运行mysql,可以写一个脚本放到 /usr/local/etc/rc.d目录下,用来运行mysql,我们写一个脚本mysql_start.sh
#! /bin/sh
/usr/local/mysql/bin/mysqld_safe &
然后保存到/usr/local/etc/rc.d目录下,那么以后reboot系统后都能启动mysql了。


推荐阅读
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 本文详细介绍了Linux系统中init进程的作用及其启动过程,解释了运行级别的概念,并提供了调整服务启动顺序的具体步骤和实例。通过了解这些内容,用户可以更好地管理系统的启动流程和服务配置。 ... [详细]
  • 解决网站乱码问题的综合指南
    本文总结了导致网站乱码的常见原因,并提供了详细的解决方案,包括文件编码、HTML元标签设置、服务器响应头配置、数据库字符集调整以及PHP与MySQL交互时的编码处理。 ... [详细]
  • CentOS 7 磁盘与文件系统管理指南
    本文详细介绍了磁盘的基本结构、接口类型、分区管理以及文件系统格式化等内容,并提供了实际操作步骤,帮助读者更好地理解和掌握 CentOS 7 中的磁盘与文件系统管理。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 解决U盘安装系统后无法重启的问题
    本文详细探讨了运维新手常遇到的U盘安装系统后无法正常重启的问题,提供了从问题分析到具体解决方案的完整步骤。通过理解Boot Loader的工作原理和正确配置启动项,帮助用户顺利解决问题。 ... [详细]
  • 本文详细介绍如何通过修改配置文件来隐藏Apache、Nginx和PHP的版本号,从而增强网站的安全性。我们将提供具体的配置步骤,并解释这些设置的重要性。 ... [详细]
author-avatar
横戈跃马2012
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有