但是在第一天的时候,我配了一台服务器。
那么我怎么把开发好的代码布置到服务器上去呢?
首先,我来看一下我的开发的代码目录。
位于:
控制器的代码(其实就是java代码)在
好长一串,看着有点晕,不用管他。
是不是我把这整个代码目录全部拷贝到服务器上就可以了?
先试一下。
之前我配的linux服务器,resin的webroot目录是指到/data/www/spring下面。于是我把代码拷进去
然后重启resin。resinctl restart……
然后……嗯,没反应。
好吧,其实我一开始就知道肯定不是这么玩的。
怎么办?没头绪了,我的win环境不是能跑起来吗?
先看一下win环境的启动log
嗯,加载的是production/webapp/default/web下的内容。不是我代码目录下的内容。
这是在哪的?我找了一下,原来是在我的resin目录里面。
原来是在这里。
看来intellij在编译的同时,把代码复制到了这里面,所以我的服务器上布置的也应该是这里面的代码。
于是我再改一下。
把web目录和web.war两个文件一同复制到服务器上。
再重启……还是不行,这是怎么回事?
奇怪,这时候发现一个奇怪的问题,linux下面的resin没有启动log?
那我要看log怎么弄?网上找了一下,原来是要自己配的。去resin.xml里面加上这一句
<stdout-log path='/data/logs/stdout.log'
rollover-period='1D'
rollover-size='1mb'
archive-format="stdout-%Y_%m_%d.log"
timestamp='[%Y/%m/%d %H:%M:%S.%s] '/>
意思就是把log写到/data/logs/stdout.log里面。这样我就能看到启动时到底是在做什么了。
怎么查?在启动前先tail -f /data/logs/stdout.log一下,这样就一目了然了。
一查发现 WebApp[production/webapp/spring.shopex.cn/web,STARTING]根本就没有加载过。
再查,发现
这个path还是webapps嘛,他好像是去加载WEB-INF里面的内容。
看下代码
似乎是这个样子。于是我把这个的path改掉。
<web-app-deploy path="/data/www/spring/"
指到我的代码放置的根目录上去。
然后保险点,我再重启一下resin。再访问。
大功告成。
这里要注意:如果你是把代码直接windows上拷贝到linux,注意权限问题。我因为是测试,所以就全改成可读写权限了
cd /data/www/spring/web/
chown www:www -R *
chmod 777 -R *