将windows server2008上的web应用部署到Linux环境下

项目是采用SSH框架+MYSQL5.5+Tomcat7.0开发的之前项目在windows server2008上运行好好的,后来发现被人黑了,被别人装了流量矿石,后来直接篡改页面,做广告。。。

Linux版本是:Ubuntu 12.04.4 LTS 64位、JDK版本:jdk-7u55-linux-x64.tar.gz

1.安装配置 JDK(我采用的非OpenJDK,自带的OPENJDK安装后不完整)

1.1、下载JDK

下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html,选择Linux X64  jdk-7u55-linux-x64.tar.gz

 

1.2、解压缩安装

sudo tar xzvf jdk-7u55-linux-x64.tar.gz -C /usr/lib/jvm
cd /usr/lib/jvm  
sudo mv jdk1.7.0_55/  java-7-sun/

 -C 指定解压路径

注意:如果系统中没有装其他版本的JDK,JVM目录不存在,则需要先建立之。

sudo mkdir /usr/lib/jvm

 

1.3、设置环境变量,主要是PATH、CLASSPATH和JAVA_HOME,注意PATH最后所添加的bin目录

sudo vi /etc/environment 
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/java-7-sun/bin"
CLASSPATH="/usr/lib/jvm/java-7-sun/lib" 
JAVA_HOME="/usr/lib/jvm/java-7-sun"

 

1.4、配置默认JDK版本

由于ubuntu中可能会有默认的JDK,如openjdk,所以,为了将我们安装的JDK设置为默认JDK版本,还要进行如下工作。

 

执行代码:

 

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-sun/bin/java 300 
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-7-sun/bin/javac 300 (一开始我是安装OPENJDK的,可是这句执行出错,我一查看,<span style="font-family: Tahoma; ">/usr/lib/jvm/java-7-sun/bin/下根本木有Javac,所以自己又下了一个)</span>
sudo update-alternatives --config java

 系统会列出各种JDK版本,如下所示:

 

sudo update-alternatives --config java  
有 3 个候选项可用于替换 java (提供 /usr/bin/java)。  
  
  
  选择       路径                                    优先级  状态  
------------------------  
* 0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      自动模式  
  1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      手动模式  
  2            /usr/lib/jvm/java-6-sun/jre/bin/java       63        手动模式  
  3            /usr/lib/jvm/java-7-sun/bin/java           300       手动模式  (我只装了一个,只显示第三个)
  
  
要维持当前值[*]请按回车键,或者键入选择的编号:3  
update-alternatives: 使用 /usr/lib/jvm/java-7-sun/bin/java 来提供 /usr/bin/java (java),于 手动模式 中。

1.5、测试

 

java -version

java version "1.7.0_55"
Java(TM) SE Runtime Environment (build 1.7.0_55-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode)
PS:参看http://www.myexception.cn/other/1344800.html

2.配置Tomcat7

   2.1.下载安装tomcat(http://tomcat.apache.org/)

    选择Ubuntu Linux适用版本,即apache-tomcat-7.0.39.tar.gz文件,

  2.2复制安装文件到/usr/local/目录下面,在控制台console输入命令,

sudo tar -zxvf apache-tomcat-7.0.39.tar.gz,
    将安装包解压至apache-tomcat-7.0.39目录下

进入该目录下的bin目录,然后执行以下:

#vi catalina.sh

添加以下内容:

CATALINA_HOME=/usr/local/apache-tomcat-7.0.39/

#chmod +x *.sh

2.3启动tomcat服务器

# sudo ./startup.sh

2.4.在浏览器中输入

http://localhost:8080/(如果不是本机,则输入对应的ip地址)

测试出现tomcat页面则测试成功

PS:参看http://www.2cto.com/os/201403/283321.html

3.MYSQL5.5数据库的配置

3.1 安装

sudo apt-get install mysql-server

执行中要求输入root用户密码

3.2 如果是外部IP访问Linux下的数据库还要授权

3.2.1设置 mysql 的配置文件( /etc/mysql/my.cnf)
vi /etc/mysql/my.cnf
找到 bind-address  =127.0.0.1  将其注释掉;//作用是使得不再只允许本地访问;
重启mysql:/etc/init.d/mysql restart; 或sudo service mysql restart  
3.2.2:进入mysql 数据库
(1)mysql -u  root -p
(2)mysql>grant all privileges on  *.*  to root@'%'  identified  by 'xxxx';
    其中 第一个*表示数据库名;第二个*表示该数据库的表名;如果像上面那样 *.*的话表示所有到数据库下到所有表都允许访问;
    ‘%’:表示允许访问到mysql的ip地址;当然你也可以配置为具体到ip名称;%表示所有ip均可以访问;
     后面到‘xxxx’为root 用户的password;
(3) 修改Linux系统防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,如果要开放哪个端口,在里面添加一条

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

就可以了,其中 3306是要开放的端口号,然后重新启动linux的防火墙服务。

Linux下停止/启动防火墙服务的命令:

用root登录后,执行

service iptables stop --停止

service iptables start --启动

这样外部IP就可以访问Linux下的MYSQL数据库了。
3.3 数据库乱码问题
由于是要把从windows的MYSQL导出的数据再导入Linux下的MYSQL所以,免不了要出现乱码问题。解决方案如下:(我们统一采用UTF-8)
3.3.1  从windows的MYSQL导出的数据
mysqldump -u root -p  --default-character-set=utf8 数据库名>d:/mydb.sql
3.3.2 设置Linux下mysql下数据编码
在/etc/mysql/my.cnf文件中
在[client]下添加default-character-set=utf8
在[mysqld]下添加
character-set-server=utf8
    collation-server=utf8_general_ci
lower_case_table_names=1  //这里1是表示不区分大小写,0表示区分大小写
//这个相当重要啊!!!因为用的Hibernate表结构自动生成的,windows下mysql数据库默认表名不区分大小写,无论你在*.hbm.xml配置的表名是啥,一律变小写;而在Linux下mysql数据库默认表名是区分大小写的,一定得统一起来,不然数据库虽然连上了但是数据获取不到。

PS:MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:

1、数据库名与表名是严格区分大小写的;

2、表的别名是严格区分大小写的;

3、列名与列的别名在所有的情况下均是忽略大小写的;

4、变量名也是严格区分大小写的;

MySQL在Windows下都不区分大小写。

在[mysql]下添加
  default-character-set=gbk  //使得你在Linux下mysql客户端查看数据时屏幕显示不乱码

更改完上述步骤后,重启mysql:sudo service mysql restart
如果修改错误,怎么也启动不了可以还原回去,或是直接卸载重装:
防止原有数据影响后续的安装和调试

    1 sudo apt-get autoremove --purge mysql-server-5.0
    2 sudo apt-get remove mysql-server
    3 sudo apt-get autoremove mysql-server
    4 sudo apt-get remove mysql-common (非常重要)
3.3.3 导入数据到Linux下的mysql
首先的先创建mydb数据库:
CREATE DATABASE `mydb` DEFAULT CHARACTER SET utf8 ;
导入:mysql -u root -p --default-character-set=utf8 mydb</home/user1/mydb.sql
或是在mysql命令行模式下:source /home/user1/mydb.sql;

这样就可以了,开始运行Tomcat使用吧!







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值