linux安装JDK+mysql+tomcat+nginx+memcached+memcached session共享

这是我在部署一个电子商务网站的时候写的部署步骤

第一步:安装JDK

1、使用Xshell远程连接linux虚拟机,将项目所需要的软件环境拷贝至/opt 下

2、解压JDK至/opt文件下:

#./ jdk-6u38-linux-x64-rpm.bin   //生成需要的rpm包(注意:版本可能引起webservice调用错误)

# rpm -ivh *.rpm              //安装所有rpm包

3、由于webservice需要,则用其他版本jre,将java_jre拷贝到/opt下即可

4、配置环境变量:

#vi /etc/profile               //编辑/etc/profile 文件

按i 键进入编辑状态,在文本最后加入如下配置:

 

#set java environment 

JRE_HOME=/opt/java_jre/64

JAVA_HOME=/opt/usr/java/jdk1.6.0_38

CLASSPATH=.:$JAVA_HOME/lib.tools.jar

PATH=$JRE_HOME:$JAVA_HOME/bin:$PATH

export  JAVA_HOME CLASSPATH PATH JRE_HOME

 

按ESC然后:wq保存并退出vi编辑器

#source /etc/profile         //使配置文件生效

#java –version              //查看java版本

提示如下信息表示配置成功:

java version "1.6.0_38"

Java(TM) SE Runtime Environment (build1.6.0_38-b05)

Java HotSpot(TM) 64-Bit Server VM (build20.13-b02, mixed mode)

第二步:安装mysql

 

删除linux自带mysql

查看已安装mysql版本:rpm –qa|grep mysql 会显示自带mysql5个安装包,删除这5个安装包

当删除linux自带mysql时会报出依赖关系错误,使用以下命令即可:

rpm -e mysql-* --nodeps nodeps前是两个横杠

xxx.sh :Permission denied表示没权限  授权:chmod 777 xxx.sh

重启mysql/etc/init.d/my_mysqld restart

 

安装新的mysql

如果在root@localhost下安装mysql是有问题的,会出现安装后没有初始化mysql用户的问题。解决办法:执行vi /etc/hosts 添加一行信息如192.168.0.66 XXDB XXDB。其中IP要填写这台linux的真实IP,之后保存退出重启linux。在root@XXDB下安装mysql就没有问题了

#chmod 777 install_mysql_linux.sh  //授权

#./install_mysql_linux.sh          //安装mysql

#service iptables stop             //关闭防火墙

最后用Navicat连接测试

 

修改mysql的字符编码:

1、登录mysql,查看mysql默认的编码格式

show variables like “character%”;
如果现实-bash: show: command not found 说明没有登录mysql数据库,需要进行登录
结果如下图所示:

2、修改my.cnf文件

目录为/etc/my.cnf
如果系统中没有my.cnf文件、则需要创建此文件,具体步骤请看3,如果存在,直接跳过步骤3,直接进入步骤4

3、查找.cnf结尾的文件

命令find/ -iname *.cnf -print
结果如图:

将上面搜索结果集中/usr/share/mysql目录下任意的一个文件复制到/etc/目录下
命令:cp /usr/share/mysql/my-large.cnf  /etc/my.cnf

4、编辑my.cnf文件

命令:vi /etc/my,cnf
在[client ]下面加入
default-character-set=utf8
在[ mysqld ] 下面加
character_set_server=utf8
 init_connect=’SET NAMES utf8′(或者是SET NAMES ‘utf8′)
网上说在 [ mysql ] 下面加入
default-character-set=utf8
我测试了下是不可以,因为mysqld不识别它,所以我改成character_set_server=utf8

5、重启mysql

在mysql控制台执行运行sql文件:

./mysql–uroot –p123456 –Dscs   D表示定位到scs数据库

 

第三步:安装tomcat

把window解压好的tomcat文件夹直接复制到linux系统中即可。

启动的项目可能会报tomcat内存溢出异常,修改tomcat下catalina.sh,在244行加上一行:

JAVA_OPTS="-server -XX:PermSize=2048M-XX:MaxPermSize=2048m"

然后将项目war包放置到webapps下,启动tomcat:

#cd /opt/apachetomcat7/bin

#./startup.sh

若提示没权限,则授权:

#chmod 777 startup.sh

如果想查看tomcat控制台:tail–f –n 200 catalina.out  按ctrl+c退出tomcat控制台

若想以debug模式启动tomcat:

#./catalina.shjpda run

第四步:配置samba服务,用于存放图片及文件

在opt下新建一个文件夹,命名为scsimg

开始配置samba服务:

#rpm -qa|grep samba             //检查是否安装samba

#vi /etc/samba/smb.conf         //修改smb.conf配置文件

将smb.conf修改成以下内容:

[global]

    workgroup=sugonlinux

    netbios name=linuxserver

    server string=linux test

    security=user

    [scsimg]

    path=/opt/scsimg

    writeable=yes

    browseable=yes

    guest ok=yes

 

#smbpasswd -a root              //关联用户,提示输入密码与系统密码一致

#/etc/init.d/smbstart          //启动smb

#ps -ef|grep smb                //查看smb进程

 

    注意:其他机器需要挂载才能访问到本机器的smb服务:

#mount -o username=root,password=111111 //10.0.31.110/scsimg/opt/scsimg

10.0.31.11为本机IP

 

第五步:安装nginx

安装环境(不同环境所需要的包可能不一样): SUSE linux  Enterprise Server 11(X86_64)

先要安装gcc

#yast2 --install gcc

#arm-linux-gcc -v

#rpm -qa |grep gcc

#gcc -v

下面开始安装nginx

安装步骤:

 1、安装pcre

#tar xvfz pcre-8.21.tar.gz

#cd pcre-8.21

#./configure

#make

#make install

2、 安装openssl

#tar xvfz openssl-1.0.0a.tar.gz

#cdopenssl-1.0.0a

#./config

#make

#make install

缺一步:安装zlib(zlib-1.2.5.1.tar.gz安装步奏都一样 tar configure make make install)

3、安装nginx

#tar xvfznginx-1.3.9.tar.gz

#cd nginx-1.3.9

#./configure--prefix=/usr/local/nginx

#make

#make install

4、启动

#cd /usr/local/ngnix

#cd sbin

#./nginx

一般设置nginx端口号为80,但在启动过程中报端口号被占用则执行

#fuser -n tcp 80查看80端口情况,删除占用80端口的程序

#ps uax|grepnginx   (可以看到两个进程master和worker)

5、#vi /usr/local/ngnix/conf/nginx.conf    //修改配置文件如下

 

worker_processes  1;

 

events {

    worker_connections  1024;

}

 

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    gzip on;

    gzip_min_length      1000;

    gzip_types         text/plain text/cssapplication/x-javascript;

 

    upstream mysvr {

      server 192.168.0.97:8090;

      server 192.168.0.98:8090;

    }

 

    server {

        listen       80;

        server_name  localhost;

        location / {

proxy_set_headerHost $host:800; (如果ngnix访问端口不是80则必须配置此项,不然会默认去访问80端口,造成错误)

            default_type 'text/html';

            charset utf-8;

            root  /opt/apachetomcat7/webapps/SCS;

            index  login.jsp;

            proxy_pass http://mysvr;

        }

    error_page  500 502 503 504  /50x.html;

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

    }

}          

以下是ngnix一些常用命令: 

nginx提供了一些常用的启动、关闭、重新加载等命令:

通过./nginx -h命令,可以查看所有支持的参数。

#./nginx -v   //查看nginx版本号

#./nginx –V  //查看nginx配置参数

#./nginx –t  //测试nginx配置是否正确

#./nginx –c/myspace/nginx/conf/nginx.conf //启动nginx。如果不添加-c参数,默认使用conf/nginx.conf文件

#./nginx -s stop     //停止nginx

#./nginx -s reload   //修改nginx配置后重新加载

#killall -HUP nginx  //nginx平滑重启

#killall nginx       //停止nginx

 

第六步:安装memcached

注:memcached用到了libevent这个库用于Socket的处理,所以还需要安装libevent.官网:http://www.monkey.org/~provos/libevent/
1. 先安装libevent
#tar zxvf libevent-1.4.11-stable.tar.gz 
./configure –prefix=/usr 
make 
make install 
2.
测试libevent是否安装成功
[root@localhost libevent-1.4.11-stable]# ls -al /usr/lib | grep libevent 

如下显示:
lrwxrwxrwx   1 root root       22 07-1013:10 libevent-1.1a.so.1 -> libevent-1.1a.so.1.0.2
-rwxr-xr-x   1 root root    31596 2007-01-07libevent-1.1a.so.1.0.2
lrwxrwxrwx   1 root root       21 07-2103:33 libevent-1.4.so.2 -> libevent-1.4.so.2.1.3
-rwxr-xr-x   1 root root   308088 07-21 03:33libevent-1.4.so.2.1.3
-rw-r--r--   1 root root   394474 07-21 03:33 libevent.a
lrwxrwxrwx   1 root root       26 07-2103:33 libevent_core-1.4.so.2 -> libevent_core-1.4.so.2.1.3
-rwxr-xr-x   1 root root   109490 07-21 03:33libevent_core-1.4.so.2.1.3
-rw-r--r--   1 root root   148742 07-21 03:33libevent_core.a
-rwxr-xr-x   1 root root      866 07-2103:33 libevent_core.la
lrwxrwxrwx   1 root root       26 07-2103:33 libevent_core.so -> libevent_core-1.4.so.2.1.3
lrwxrwxrwx   1 root root       27 07-2103:33 libevent_extra-1.4.so.2 -> libevent_extra-1.4.so.2.1.3
-rwxr-xr-x   1 root root   246870 07-21 03:33libevent_extra-1.4.so.2.1.3
-rw-r--r--   1 root root   307370 07-21 03:33libevent_extra.a
-rwxr-xr-x   1 root root      873 07-2103:33 libevent_extra.la
lrwxrwxrwx   1 root root       27 07-2103:33 libevent_extra.so -> libevent_extra-1.4.so.2.1.3
-rwxr-xr-x   1 root root      831 07-2103:33 libevent.la
lrwxrwxrwx   1 root root       21 07-2103:33 libevent.so -> libevent-1.4.so.2.1.3 

安装OK

3.
安装memcached,同时需要安装中指定libevent的安装位置
[root@localhost software]# tar zxvf memcached-1.4.0.tar.gz 
[root@localhost memcached-1.4.0]# ./configure –with-libevent=/usr 
[root@localhost memcached-1.4.0]# make 
[root@localhost memcached-1.4.0]# make install 

4.
测试是否成功安装memcached
[root@localhost memcached-1.4.0]# ls -al /usr/local/bin | grep memcached 
-rwxr-xr-x  1 root root  188225 07-21 03:35 memcached 

安装OK  

. 如何启动 memcached 服务:
只需要启动一个 memcached 监护进程,监护进程不需要配置文件,只要在命令行里面加三四个参数就可以了:
[root@localhost memcached-1.4.15]# memcached -d -m 100 -u root -l 192.168.11.130 -p11211 -c 256 -P /tmp/memcached.pid 

192.168.11.130为机器IP地址

将项目里面的spring-memcached.xml文件中加入以下配置

<property name="servers">   

           <list>   

               <value>192.168.11.130:11211</value>   

           </list>   

</property>  

 

 

第七步:使用memcached-session-manager配置session共享

因为登录使用了session的问题,由于nginx的负载均衡是轮询的方式,不会有session_sticky 的效果

当用户在tomcat1登录后再访问页面可能是跑到tomcat2,而tomcat2没有这个session信息就认为是没登录,这时就需要配置session共享

tomcat调用memcached来存储session早就是一个很成熟的解决方案了,开源的msmmemcached-session-manager)就可以解决这个问题。

将以下包复制到tomcat/lib

kryo-1.03.jar                       memcached-session-manager-tc7-1.5.1.jar
kryo-serializers-0.8.jar            minlog-1.2.jar
memcached-2.5.jar                   msm-kryo-serializer-1.5.1.jar
memcached-session-manager-1.5.1.jar  reflectasm-0.9.jar

然后将tomcat/conf中的context.xml文件的<context>中加入以下配置:

 

<ManagerclassName="de.javakaffee.web.msm.MemcachedBackupSessionManager"

         memcachedNodes="n1:10.0.31.110:11211"

         sticky="false"

         lockingMode="auto"

         sessionBackupAsync="false"  

         sessionBackupTimeout="1000" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/>

 

10.0.31.110:11211memcached的地址,重启tomcat即可

 

Linux一些命令:

#rm -rf scsfile       //Linux删除文件夹

#sfp 192.168.0.97   //利用sftp传文件

#put xxx.txt        //xxx.txt复制到当前目录下

#unzip xxx.zip      //解压zip文件

#/etc/rc.d/mysql restart //重启mysql

 

在安装memcached时碰到以下错误在linux中解压文件时可能碰到以下错误:

此错误是linux系统时间错误,解决如下:

我们一般使用“date-s”命令来修改系统时间。比如将系统时间设定成1996610日的命令如下。

# date -s "2008-08-08 12:00:00"

 


 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐