我如何安装 Apache Web 服务器和 Apache tomcat 以避免出现这样的错误:
java.io.FileNotFoundException: /usr/local/apache-tomcat-7.0.5/work/Catalina/localhost/_/SESSIONS.ser (Permission denied)
在 /usr/local/apache-tomcat-7.0.5/logs/catalina.out
我想我应该为 Apache 用户做点什么,因为当我chmod 777 -R ./
打开tomcat 文件夹中的所有错误都消失了。
3 回答
$ chmod -R 777 webapps temp logs work conf
非常危险,不要这样做,我写的是“不要这样做”吗?不要做!猜猜你的 tomcat-users.xml 和你的用户名和纯文本密码在哪里?
在 UNIX 上除了 /tmp 之外的任何地方都提供世界读写执行(即使那样,在 prod 中,也永远不要这样做)是非常愚蠢的。而且,它使您的第一行 chown -R tomcat6 完全无用。
确保 tomcat 作为 tomcat7 运行(它是 tomcat6 的 tomcat 6)并简单地执行:
$ cd $TOMCAT_BASE
$ chown -R tomcat7:tomcat7 webapps temp logs work conf
$ chmod -R 660 webapps temp logs work conf
[编辑] 更改770
为660
以下评论,因为有问题的文件不需要执行。
如果您希望能够在那里读取、写入或执行内容,请将您自己添加到 tomcat7 组。
不能保证这样做的安全性,但是
$ cd /usr/local/tomcat/ #or /usr/shared/tomcat6, whatever your $TOMCAT_BASE dir
$ chown -R tomcat6 webapps temp logs work conf
$ chmod -R 777 webapps temp logs work conf
适用于这些情况。
我的 tomcat 安装因权限错误而陷入困境,但打开大门从而解决了所有问题。
使用较旧的 Tomcat-6 实现遇到类似的情况......
...
SEVERE: Error deploying web application directory host-manager
java.io.FileNotFoundException: /opt/tomcat-6/conf/Catalina/localhost/host-manager.xml (Permission denied)
...
而且,webapp XML 都在那里,所有权和权限都是“tomcat:tomcat”和“644”。
对我来说,解决方案是将整体权限设置为 Tomcat 喜欢的,即“0755”。
而且,作为安全意识的注释,该实现的 server.xml 使用 JDBC Realm 进行身份验证,因此我们甚至不使用 tomcat-users.xml。因此,它是安装附带的默认文件,甚至注释掉了其中的默认用户帐户(例如“tomcat”和“manager”)。我知道在 Tomcat-7 中,tomcat-users.xml 中的帐户默认是注释的。
HTH。