首先,我们的目的是把自己的Java web项目上传到服务器上,然后能够用公网访问而不是只能在本地浏览…
所以,首先我们需要有一台服务器,现在云计算资源这么多,当然选择去购买云服务器喽!
阿里云腾讯云百度云……各种云……比较推荐也比较放心的也就这3家了,阿里云和腾讯云我都用过,差别不大……
如果此时你就急匆匆的去购买服务器,那你可能有点傻眼了,what?!服务器价格怎么这么贵!
好吧,确实是这么贵的……但是不要急,我们是学生啊……阿里云腾讯云对学生都有专门的活动的……
阿里云云翼计划:https://promotion.aliyun.com/ntms/campus2017.html
腾讯云校园扶持:https://www.qcloud.com/act/campus
具体的自己看喽……
我用的是阿里云的主机来做这个教程……
当然阿里云购买学生优惠产品你会发现这个情况……会给你预装好环境(是不是感觉又可以偷懒了……)腾讯云是没有的,只有预装的系统
我选了半天也没找到不预装的选项,只好随便选了一个之后选择重装系统……(我不重装没法写这个教程啊)
因为我对ubuntu系统比较熟悉,所以重装了ubuntu14.04 64位系统
Let’s begin.
申请好了服务器之后,进入服务器控制台界面,这里可以对服务器主机进行管理。
等等,你是否已经做好使用没有图形界面的系统了?
If yes,please continue..
点击远程连接
记住远程连接的密码。输入密码,进去之后界面是这样
敲击回车键
出现输入用户名的命令行
阿里云给你的服务器装系统的时候已经给你设置好了root用户(腾讯云预设的用户是ubuntu),密码是你在购买的时候设置的那个密码,先输入root 回车,然后出现Password: 之后开始输入密码,注意输入密码的时候,密码是不会显示出来的,你一个一个字符的敲击保证输入无误,然后回车之后,出现下面这个界面就表示登录成功。
然后习惯性的输入sudo apt-get install openssh-server之后提示ssh已经是最新的版本了
原来阿里云给服务器装的ubuntu里面已经装好ssh了……
安装ssh是为了远程登录……
既然已经有ssh了那就检查一下ssh有没有启动(输入命令用窗口右上方的复制命令输入)
输入"sudo ps -e |grep ssh"-->回车-->有sshd,说明ssh服务已经启动
如果没有启动,输入"sudo service ssh start"-->回车-->ssh服务就会启动。
接下来,本来需要修改ssh的配置文件,以便我们能够用软件远程连接服务器..
但是阿里云的ssh文件已经是配置好的了
(如果是腾讯云的话,这里需要简单的配置下/etc/ssh/sshd_config文件:
输入"sudo gedit /etc/ssh/sshd_config"-->回车-->把配置文件中的"PermitRootLogin without-password"加一个"#"号,把它注释掉-->再在下面增加一句"PermitRootLogin yes"-->保存,修改成功。如果提示gedit命令找不到的话,就sudo apt-get install gedit 先安装gedit 用其他编辑器 vim什么的道理是一样的 ) 接下来新建一个用户,以便我们用ssh软件远程登录(Linux不允许root用户远程登录)
(腾讯云的话直接用ubuntu用户登录就好,如果在使用命令的时候提示权限不够的话,在命令前面加上sudo 就OK)
sudo adduser ubuntu
两次输入密码
然后一路回车
输入Y
新建用户成功
Ok..顺利启动ssh...我们可以放弃这个阿里云自带的难用的远程登录窗口了..
••••
现在需要下载两类软件:ssh软件和ftp软件
前者用来远程登录,控制你的服务器
后者用来远程传输文件
(看到这你是不是已经开始怀念可爱的windows了呢,没办法,服务器资源有限,图形化界面太烧资源了)
Ssh软件我用的是SecureCRT 8.0,ftp软件用的是WinSCP
SecureCRT 8.0需要下一个注册机注册一下,很简单
这是两个软件的界面
•••
用SecureCRT 8.0连接你的服务器:
进入软件界面之后,File->quick connect
Hostname输入你阿里云服务器主机的公网ip,在控制台那里是能看的
Username是输入你刚才新建的用户,点击Connect
然后弹出
再输入你刚才设置的密码
看到下面这个说明你就连接成功了……终于可以不用那个鬼网页控制台了
然后是WINSCP:
用户名要输入root,密码是你root用户的密码,登录
(如果是腾讯云的话,是没有自带root用户的,需要你激活root用户之后再使用
sudo passwd root ,然后su root,输入密码,切换用户即可)
右边能看到这个就表示你登录成功了,可以用这个传文件,或者直接对文件进行远程操作了。
有没有开始怀念windows的图形化界面了……
首先,需要在你自己的windows电脑上准备好jdk和tomcat的安装包,版本号尽量要和你开发时用的版本号一样(记得下载linux版本的) 打开winscp连接服务器
进入/usr/lib目录下,新建一个目录命令为jvm,并点上所有权限 然后将你下载的jdk上传到这个目录
因为JDK比较大,100+MB,而FTP的速度向来感人,所以这步慢慢等吧
用SCRT登录上去
切换到root:su root
切换到jdk目录:cd /usr/lib/jm
(如果出现sudo: unable to resolve host的提示,就用winscp打开/etc/hosts文件,在localhost后面加入你的主机名)
解压JDK:sudo tar zxvf jdk-8u60-linux-x64.tar.gz
出现很长一串表示解压成功
重命名文件夹:sudo mv jdk1.8.0_60 Java
输入vi ~/.bashrc 命令 在末尾添加一下的配置保存
出现这个页面,将光标移到最末尾,按i键,进入编辑模式 将下面这个拷贝进去(也就是最后面)
export JAVA_HOME=/usr/lib/jvm/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
然后按下ESC键进入命令模式,再输入:wq 回车 保存并退出vi
输入reboot重启系统
•••
再次连接服务器
切换到root:su root
输入java –version
OK.JDK安装成功
接下来安装tomcat
还是用winscp把tomcat的安装包上传到服务器的/usr/local文件夹下
切换到local文件夹下:cd /usr/local
解压:sudo tar zxf apache-tomcat-7.0.64.tar.gz
改个名字:sudo mv apache-tomcat-7.0.64 tomcat
进入/usr/local/tomcat:cd /usr/local/tomcat
加环境变量:sudo vi /etc/profile
光标移到最下方
I键进入编辑模式
最后加入:
CATALINA_HOME=/usr/local/tomcat
export CATALINA_HOME
ESC再输入:wq保存并退出vi
进入bin目录:cd bin
修改catalina.sh: sudo vi catalina.sh
找到
# OS specific support. $var _must_ be set to either true or false.
在这行下面再定义一次CATALINAHOME以及JAVAHOME:
CATALINA_HOME=/usr/local/tomcat
JAVA_HOME=/usr/lib/jvm/java
保存退出
启动tomcat:sudo ./startup.shTomcat启动成功
然后来配置MySQL
首先保证还是在root用户下的
先更新源:sudo apt-get update
然后apt-get install mysql-client-core-5.6
再apt-get install mysql-client-5.6
最后apt-get install mysql-server-5.6
设置好Mysql的密码
netstat -tap | grep mysql
sudo service mysql restart
执行一下检查一下mysql是否安装成功
Mysql安装成功,但是还需要把你本地的mysql配置给同步上去
••
mysql -u root –p
输入你设置好的mysql密码,进入mysql命令行
创建表:create database test;
进入test数据库:use test;
设置编码:set names utf8;
然后用winscp把导出的.sql文件上传到/home/ubuntu/
导入数据表:source /home/ubuntu/user_file.sql
列出数据库里的所有数据表:show tables;
查看一个表里的数据:select * from user_file;
Ctrl+c退出mysql命令行
到此环境算是配置完了,现在需要把自己的项目上传服务器上
不过我们先检查一下自己的tomcat能不能访问
在浏览器输入阿里云给的外网ip,访问
访问成功。
•••
关于tomcat这一步有不少需要注意的
1.端口问题:ubuntu的防火墙是否允许80/8080和3306等端口(简单粗暴不安全的做法是关闭防火墙)
2.安全组问题:是否在阿里云的控制台里的安全组策略里打开80/8080等端口了
Tomcat报错原因太多,如果发现不能访问,请到tomcat/log目录下查看日志
比如说我曾经有这种错误:java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[39.108.100.228].StandardContext[]]
找了许久的原因,结果一看日志,再一查相关资料,结果只需要修改tomcat/conf/catalina.properties 文件的122行 org.apache.catalina.startup.ContextConfig.jarsToSkip=*.jar 然后问题就解决了
和windows同理,可以把war包拷到webapps目录下或者直接把war包展开的文件夹拷贝到webapps目录下,然后再修改server.xml即可 用winscp把项目上传上去
我用的IDE是IDEA14,所以简单粗暴的把out文件夹输出的工程文件夹拷贝到webapps目录下之后,再设置server.xml
又是一个漫长的等待
访问成功。