ubuntu下配置apache james遇到java.net.BindException: 权限不够
2013-12-29 22:54
477 查看
由于项目需要发送邮件,公司只有内网,不能上外网,只能自己搭建james邮件服务器,可是在搭建james的时候遇到了问题。
使用的是非root用户,下载完毕后,解压完毕后,到bin目录下, 运行run.sh,报如下的错误:
Using PHOENIX_HOME: /usr/local/coolcao/james-2.3.2
Using PHOENIX_TMPDIR: /usr/local/coolcao/james-2.3.2/temp
Using JAVA_HOME: /usr/local/coolcao/jdk1.7.0_45
Running Phoenix:
Phoenix 4.2
James Mail Server 2.3.2
Remote Manager Service started plain:4555
org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleException: Component named "pop3server" failed to pass through the Starting stage. (Reason: java.net.BindException: 权限不够).
...
Caused by: java.net.BindException: 权限不够
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
at java.net.ServerSocket.bind(ServerSocket.java:376)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at org.apache.avalon.cornerstone.blocks.sockets.DefaultServerSocketFactory.createServerSocket(DefaultServerSocketFactory.java:74)
at org.apache.james.core.AbstractJamesService.initialize(AbstractJamesService.java:337)
at org.apache.james.pop3server.POP3Server.initialize(POP3Server.java:116)
at org.apache.avalon.framework.container.ContainerUtil.initialize(ContainerUtil.java:244)
at org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.startup(LifecycleHelper.java:200)
... 22 more
主要错误在:Caused by: java.net.BindException: 权限不够
在启动pop3server的时候,绑定端口号的时候,出现了异常。提示权限不够。
我很纳闷了,整个jdk我是在自己的目录中的,而且目录所有者和所属组都是我个人的,出现权限不够。
上网查了一下,有说是因为端口4555被exim4占用,可是我根本没装exim4这个服务。
也有说可以使用sudo sh run.sh运行即可
使用sudo sh run.sh后,提示找不到JAVA_HOME
好吧,su切换到root用户,确实找不到JAVA_HOME
在/etc/environment加入java的路径:
使用source /etc/environment刷新一下环境,这下可以找到JAVA_HOME了,使用root切换到james的bin目录再sh run.sh一下,这下就OK 了:
对于这个问题,现在我还没想到更好的解决办法,root的环境变量每次都得设置一下,而且每次启动james都得使用roog用户,这是很不爽的一件事,不知倒大家有没有更好的解决办法,可以教教我。自己再研究两天,看看能不能解决一下,直接使用非root用户启动james。
大概明白了,pop3和smtp服务的端口是110和25,都小于1024,所以,估计因为这样才必须使用root用户才能运行james吧。有大神更好的解决方法吗?
使用的是非root用户,下载完毕后,解压完毕后,到bin目录下, 运行run.sh,报如下的错误:
Using PHOENIX_HOME: /usr/local/coolcao/james-2.3.2
Using PHOENIX_TMPDIR: /usr/local/coolcao/james-2.3.2/temp
Using JAVA_HOME: /usr/local/coolcao/jdk1.7.0_45
Running Phoenix:
Phoenix 4.2
James Mail Server 2.3.2
Remote Manager Service started plain:4555
org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleException: Component named "pop3server" failed to pass through the Starting stage. (Reason: java.net.BindException: 权限不够).
...
Caused by: java.net.BindException: 权限不够
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
at java.net.ServerSocket.bind(ServerSocket.java:376)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at org.apache.avalon.cornerstone.blocks.sockets.DefaultServerSocketFactory.createServerSocket(DefaultServerSocketFactory.java:74)
at org.apache.james.core.AbstractJamesService.initialize(AbstractJamesService.java:337)
at org.apache.james.pop3server.POP3Server.initialize(POP3Server.java:116)
at org.apache.avalon.framework.container.ContainerUtil.initialize(ContainerUtil.java:244)
at org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleHelper.startup(LifecycleHelper.java:200)
... 22 more
主要错误在:Caused by: java.net.BindException: 权限不够
在启动pop3server的时候,绑定端口号的时候,出现了异常。提示权限不够。
我很纳闷了,整个jdk我是在自己的目录中的,而且目录所有者和所属组都是我个人的,出现权限不够。
上网查了一下,有说是因为端口4555被exim4占用,可是我根本没装exim4这个服务。
也有说可以使用sudo sh run.sh运行即可
使用sudo sh run.sh后,提示找不到JAVA_HOME
好吧,su切换到root用户,确实找不到JAVA_HOME
在/etc/environment加入java的路径:
使用source /etc/environment刷新一下环境,这下可以找到JAVA_HOME了,使用root切换到james的bin目录再sh run.sh一下,这下就OK 了:
对于这个问题,现在我还没想到更好的解决办法,root的环境变量每次都得设置一下,而且每次启动james都得使用roog用户,这是很不爽的一件事,不知倒大家有没有更好的解决办法,可以教教我。自己再研究两天,看看能不能解决一下,直接使用非root用户启动james。
大概明白了,pop3和smtp服务的端口是110和25,都小于1024,所以,估计因为这样才必须使用root用户才能运行james吧。有大神更好的解决方法吗?
相关文章推荐
- apache加载mod_limitipconn,限制并发连接数
- Fedora 19安装LAMP(Linux+Apache+Mysql+Perl/PHP/Python)
- Ubuntu12.04配置mysql+apache+php
- SiteMesh:一个优于Apache Tiles的Web页面布局、装饰框架
- centos 编译安装Apache 2.4
- HBase 异常记录 ERROR: org.apache.hadoop.hbase.MasterNotRunningException: Retried 7 times
- 转 PHP5+APACHE2.2配置
- ssh与ajax结合之json异常:org.apache.struts2.json.JSONException
- [记录]Apache Ant使用过程的总结
- Apache Thrift - 可伸缩的跨语言服务开发框架
- 关于apache的几个常见问题
- 关于apache的几个常见问题
- 编译安装subversion-1.8.5整合apache
- centos6.4搭建apache+mysql+php环境
- (原创)LAMP搭建之二:apache配置文件详解(中英文对照版)
- 在XAMPP v3.2.1中,启动apache时,弹出“directive 'register_globals' is no longer availble in PHP”警告。
- 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT) – 整理
- Apache Commons 介绍
- paip.输出内容替换在Apache 过滤器filter的设置
- paip.输出内容替换在Apache 过滤器filter的设置