装好ubuntu 1404 LTS 和tomcat7后,启动正常,默认端口8080。希望改成80端口,启动失败了。看日志是权限问题,原来只有root用户才能使用1024以下端口。搜索到解决办法是编辑/etc/default/tomcat7 文件,设置为
AUTHBIND=yes
再启动,还是失败,显示没有文件或目录。一心认为还是和权限相关,于是想尽各种办法使得以root用户登入:
新建文件 /etc/lightdm/lightdm.conf,加入内容:
[SeatDefaults]
autologin-user=root
autologin-user-timeout=3 #等候3秒
autologin-session=lightdm-autologin
折腾好一通,总算以root用户登录了,结果还是没用。意识到不是权限问题。继续搜索,终于还是在万能的stackoverflow找到解决办法:
除了编辑/etc/default/tomcat7 这个文件外,还要做如下操作:
sudo touch /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
sudo chown tomcat7 /etc/authbind/byport/80
费了一天劲终于搞定了。但考虑到未来需要租用虚拟主机部署应用,很可能拿不到root用户权限,所以把之前的一些办法也保存下来待用。
那就是采用iptables进行端口转发:
#添加端口转发规则
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
#查看当前规则
sudo iptables -t nat -L -nv --line-numbers
#删除规则
sudo iptables -t nat -D PREROUTING 1
#保存并在启动时自动加载规则
sudo sh -c "iptables-save > /etc/iptables.rules"
sudo nano /etc/network/interfaces,末尾添加
pre-up iptables-restore < /etc/iptables.rules
==================================================
调试途中各种小细节一并记录,省得每次都去搜了:
#查看系统网卡
ifconfig -a | grep eth
#更详细信息
sudo lshw -class network
#临时配置网卡ip地址
sudo ifconfig eth0 10.0.0.100 netmask 255.255.255.0
#传统设置网卡信息方法
sudo nano /etc/network/interfaces
#传统设置dns方法
sudo nano /etc/resolv.conf
之所以称之为传统方法,因为在当前的桌面版看不到这个文件有什么关于ip的记录,那么是记到哪去了呢?查阅官方文档,在新增加的/etc/NetworkManager/system-connections中,用于管理动态网络连接,比如有线无线随时切换等等。