无法创建目录错误

时间:2015-02-02 04:25:29

标签: java linux tomcat war

我创建了一个新子域并将WAR文件上传到其目录中,但服务器返回以下错误。

java.io.IOException: Unable to create the directory[/home/jack/public_html/WAR/MYWAR]
.....

WAR文件夹和WAR文件的权限是0755。

drwxr-xr-x  4 jack jack      4096 Feb  2 02:43 ./
drwxr-xr-x 10 jack nobody     4096 Jan 25 01:48 ../
drwxr-xr-x  2 jack jack      4096 Jan 24 22:38 cgi-bin/
-rwxr-xr-x  1 jack jack  82135738 Feb  2 02:23 MYWAR.war*
drwxr-xr-x  4 jack jack      4096 Jan 25 01:31 WEB-INF/

ps -aux | grep tomcat

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root      1239  0.0  0.0 103240   864 pts/2    S+   04:38   0:00 grep tomcat
root      1330  0.0  0.0  10436   352 ?        Ss   Feb01   0:00 jsvc.exec -user tomcat -cp ./bootstrap.jar -Djava.endorsed.dirs=../common/endorsed -outfile ../logs/catalina.out -errfile ../logs/catalina.err -verbose org.apache.catalina.startup.Bootstrap start
tomcat    1334  0.2 14.9 1566688 151852 ?      Sl   Feb01   1:38 jsvc.exec -user tomcat -cp ./bootstrap.jar -Djava.endorsed.dirs=../common/endorsed -outfile ../logs/catalina.out -errfile ../logs/catalina.err -verbose org.apache.catalina.startup.Bootstrap start

6 个答案:

答案 0 :(得分:5)

0755是rwxr-xr-x。如果您不是目录的所有者(通常是用户nobody),则无法在目录中写入。您需要是该目录的所有者或root用户才能在该位置写入。

答案 1 :(得分:2)

尝试:

sudo chown -R tomcat:tomcat /home/jack/public_html/

可能您不需要更改整个public_html,但您可以尝试查看它是否有效,然后将权限限制为所需的文件夹。

答案 2 :(得分:1)

我们需要确保Tomcat有权完全访问这些文件夹。首先确定运行Tomcat的用户或组。接下来授予该用户和/或组所有权。例如,以下代码将更改目录测试文件夹及其下的所有内容的所有权:

sudo chown -R owner:group /home/blabla/test

这将为所有者和组提供执行命令的所有权。 http://www.computerhope.com/unix/uchown.htm

接下来,我们使用chmod授予权限,该权限定义文件所有者("用户"),拥有该文件的组成员(" group")的权限。 )

http://www.computerhope.com/unix/uchmod.htm

答案 3 :(得分:1)

好像你需要

将组完全访问权限写入WAR目录

sudo chmod 775 /home/jack/public_html/WAR/

然后将目录组更改为tomcat

chown -R jack:tomcat /home/jack/public_html/WAR/

答案 4 :(得分:1)

如果权限,用户和组正确无误。也许答案是selinux。

答案 5 :(得分:0)

首先检查tomcat根目录的权限和所有权。在我的情况下 /usr/share/tomcat/

chown -R tomcat:tomcat /usr/share/tomcat

检查 selinux。

getenforce

如果它会返回 Enforcing set selinux to Permissive

setenforce 0

然后重新启动tomcat并从tomcat重新加载应用程序。问题将得到解决。