linux安装JDK+mysql+tomcat+nginx+memcached+memcached session共享
linux安装JDK+mysql+tomcat+nginx+memcached+memcached session共享这是我在部署一个电子商务网站的时候写的部署步骤第一步:安装JDK1、使用Xshell远程连接linux虚拟机,将项目所需要的软件环境拷贝至/opt 下2、解压JDK至/opt文件下:#./ jdk-6u38-linux-x64-rpm.bin //生
这是我在部署一个电子商务网站的时候写的部署步骤
第一步:安装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 会显示自带mysql的5个安装包,删除这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早就是一个很成熟的解决方案了,开源的msm(memcached-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:11211为memcached的地址,重启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”命令来修改系统时间。比如将系统时间设定成1996年6月10日的命令如下。
# date -s "2008-08-08 12:00:00"
更多推荐
所有评论(0)