我创建了一个新子域并将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
答案 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")的权限。 )
答案 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重新加载应用程序。问题将得到解决。