红联Linux门户
Linux帮助

将Windows Server 2008上的Web应用部署到Linux环境下

发布时间:2015-04-07 15:08:31来源:linux网站作者:mengfeichuan

项目是采用SSH框架+MySQL5.5+Tomcat7.0开发的之前项目在Windows Server 2008上运行好好的,后来发现被人黑了,被别人装了流量矿石,后来直接篡改页面,做广告。
 
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)


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页面则测试成功

 
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 数据库
 
mysql -u  root -p
 
mysql>grant all privileges on  *.*  to root@'%'  identified  by 'xxxx';
 
其中 第一个*表示数据库名;第二个*表示该数据库的表名;如果像上面那样 *.*的话表示所有到数据库下到所有表都允许访问;
 
‘%’:表示允许访问到mysql的ip地址;当然你也可以配置为具体到ip名称;%表示所有ip均可以访问;
 
后面到‘xxxx’为root 用户的password;
 
这样外部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使用吧!