Apache 403 error, (13)Permission denied: access to / denied问题

本文介绍如何配置Apache的基于主机名的虚拟主机,并提供了解决Apache 403 Forbidden错误的常见方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

虚拟主机(Virtual Host)是指在一个机器上运行多个网络站点 (比如:www.company1.com和www.company2.com)。 如果每个网络站点拥有不同的IP地址,则虚拟主机可以是"基于IP"的; 如果只有一个IP地址,也可以是"基于主机名"的, 其实现对最终用户是透明的。具体细节可以查看Apache官方说明 。

  一. “基于主机名”虚拟主机的配置

  Listen 81 
  NameVirtualHost *:81 
  <VirtualHost *:81 >
       ServerAdmin example@company.com
       DocumentRoot  yourRoot 
      <Directory "yourRoot ">
       Options FollowSymLinks
       AllowOverride None
       Order allow,deny
       Allow from all 
      </Directory>
  </VirtualHost>
 配置说明:

    81 : 为端口号,可以是其他现在系统未用的端口

    yourRoot : Linux下格式形如: /export/www    注意最后没有"/"

 将上面的添加到apache的配置文件httpd.conf(linux下在/usr/local/apache2/conf/,视具体情况而定),然后重新启动Apache .

注意:

要配置基于主机名的虚拟主机,必须保留原有的80端口。

 二. 查看配置是否成功

   在浏览器中输入 http://localhost:81 查看是否配置成功。

 三. 常见问题常见解决方案

 当在浏览器中查看配置成功与否出现问题时,可优先到Apache官方网站的FAQ 上或用搜索引擎搜索你的问题。

  我这里就最常见403问题:

Forbidden

You don't have permission to access / on this server.

提供几种常见的解决方法:

  1.按上面的配置正确,特别是:

      Order allow,deny
       Allow from all

  2. 确保youRoot文件夹下有index.html文件(或名为index而后缀为其他形式(如.jsp .PHP等)的文件) ,因为Apache默认以index.html为网站首页,如果没有这个文件就会出现上面的403错误。

  注:如果你想以其他形式的文件(如:index.jsp或index.php等)作为出现的网页,可将Apache的配置文件中的:

   <IfModule dir_module>
       DirectoryIndex index.html
   </IfModule>
   改为(如你想用index.jsp):

   <IfModule dir_module>
       DirectoryIndex index.html index.jsp 
   </IfModule>

   如果需要浏览该文件夹下的内容,可以在</Directory>前添加:

    Options Indexes

  就可以了。
  3. 针对linux用户,windows或其他用户一般没这种情况。linux系统中一般会自带apache,在修改了配置文件后,最好到安装Apache的目录下重启Apache。


如果是CentOS系统,则有可能以下原因

检查了一圈httpd.conf和目录权限,均没有发现问题。

最后,看了这篇文章,发现是因为系统启动了SELINUX导致的。

http://stackoverflow.com/questions/8816836/apache-403-error-13permission-denied-access-to-denied-fedora-16


关闭SELINUX

setenforce 0


vim /etc/selinux/config

修改

SELINUX=enforcing

改成

SELINUX=disabled


细检查了一遍配置文件httpd.conf,找到这么一段:

 代码如下 复制代码
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    deny from all
    Satisfy all
</Directory>

然后试着把deny from all中的deny改成了allow,保存后重起了apache,然后再一测试我的网页


apache

解决Apache下403 Forbidden错误

正 文:
    今天在公司电脑上安装Apache,版本2.2.8,装完刚测试可以;配置了下php的php.in文件再次localhost打开发现错误:HTTP 错误 403 - 禁止访问,即403 Forbidden:You don't have permission to access / on this server.权限又不够了?

 
马上打开apache的配置文件httpd.conf,逐行检查。在大约快一半的地方有以下这段代码:

 代码如下 复制代码

 
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

发现了吧。由于配置了php后,这里的“Deny from all”已经拒绝了一切连接。把该行改成“allow from all”,修改后的代码如下,问题解决。

 

 代码如下 复制代码
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    allow from all
</Directory>


系统是centos,You don't have permission to access / on this server.

在google上搜索了一下,大部分的解决方法就是。

 代码如下 复制代码

<Directory />

    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all 
</Directory> 这里改成

<Directory />
    Options Indexes FollowSymLinks
    AllowOverride None
</Directory

>
我改了之后还是会出现上面的错误,于是看一下自己设定的工作目录权限。

 代码如下 复制代码
Options ExecCGI Includes

改成下面这行设置后,显示正常。

 代码如下 复制代码
Options Indexes FollowSymLinks

当访问类unix操作系统上的/usr/local/apache2/htdocs/foo/bar.htm文件时,你收到了Permission Denied的错误。

 首先,查看文件的访问权限:

 代码如下 复制代码

$ cd /usr/local/apache2/htdocs/foo
$ ls -l bar.htm

 如果须要的话,就修复它们:

 代码如下 复制代码

$ chmod 644 bar.html

对文件夹以及每个父文件夹做相同的操作

 代码如下 复制代码

(/usr/local/apache2/htdocs/foo,/usr/local/apache2/htdocs,/usr/local/apache2,/usr/local/,/usr):

$ ls -la
$ chmod +x
$ cd ..
$ #repeat up to the root

 在一些系统上,可使用工具namei来列出各个路径上的不同组件的访问权限,然后去发现是否有权限问题:

 代码如下 复制代码

$ namei -m /usr/local/apache2/htdocs/foo/bar.html

 3、最后,如果还是没有解决问题,那么需要查看扩展的访问权限。

使用setenforce 0关闭SELinux,看是否解决问题

<think>嗯,用户给了一个Jenkins构建失败的日志,需要分析问题所在。首先,我要仔细看看错误信息。 第一个错误是cd到/var/jenkins_home/edu/target目录时找不到路径。这说明这个目录可能不存在,或者路径写错了。可能是构建过程中生成target目录的步骤没执行,比如Maven没编译成功,或者路径配置有误。 接下来是chmod无法访问like-admin-1.0.0.jar,同样是因为target目录不存在,所以jar包没生成。这时候需要检查Maven是否成功编译,或者项目结构是否正确。 然后是权限问题,无法访问/var/jenkins_home/edu/edu_server.pid。可能Jenkins用户没有该目录的写权限,需要检查目录权限设置,可能需要用chmod或chown调整。 接下来是Unable to access jarfile,还是jar包不存在导致的,和前面的问题相关,可能是构建步骤失败导致没有生成jar包。 最后提到Maven的settings.xml文件不存在,路径是/home/tools/apache-maven-3.5.3/conf/setting.xml。注意用户写的是setting.xml,而正确的文件名应该是settings.xml,可能是拼写错误。另外,需要确认这个路径是否正确,Jenkins是否有权限访问,或者是否配置了正确的Maven路径。 综合来看,问题可能包括:Maven构建失败导致target目录不存在,路径拼写错误,权限不足,以及Maven配置文件路径错误。需要用户逐步检查这些方面,比如确认Maven编译成功,检查所有路径是否正确,确保Jenkins有足够的权限,并验证settings.xml的存在和正确性。</think>这个错误信息是Jenkins执行Shell脚本时出现的构建失败日志,包含多个关键问题。以下是逐步分析及解决方案建议: --- ### **一、目录路径错误** **错误信息**: ```bash cd: /var/jenkins_home/edu/target: No such file or directory ``` **原因分析** 脚本试图进入 `/var/jenkins_home/edu/target` 目录,但该目录不存在。 **解决方案** 1. 检查项目是否成功编译(如Maven构建是否生成`target`目录)。 2. 验证脚本中路径是否正确,可能需要调整为相对路径(如`cd ./target`)。 --- ### **二、权限问题** **错误信息**: ```bash chmod: cannot access 'like-admin-1.0.0.jar': No such file or directory /var/jenkins_home/edu/edu_server.pid: Permission denied ``` **原因分析** 1. `like-admin-1.0.0.jar` 文件未生成(可能因编译失败)。 2. Jenkins用户没有操作 `/var/jenkins_home/edu/` 目录的权限。 **解决方案** 1. 检查Maven/Gradle构建日志,确认编译成功。 2. 赋予Jenkins用户权限: ```bash sudo chown -R jenkins:jenkins /var/jenkins_home/edu/ sudo chmod 755 /var/jenkins_home/edu/ ``` --- ### **三、Jar文件未找到** **错误信息**: ```bash Error: Unable to access jarfile like-admin-1.0.0.jar ``` **原因分析** 编译未生成Jar文件,或路径配置错误。 **解决方案** 1. 确认Maven/Gradle配置中指定了正确的打包名称。 2. 检查构建命令(如`mvn clean package`)是否执行成功。 --- ### **四、Maven配置文件缺失** **错误信息**: ```bash ERROR: No such settings file /home/tools/apache-maven-3.5.3/conf/setting.xml exists ``` **原因分析** 1. 路径中的文件名拼写错误(正确应为 `settings.xml`,而非 `setting.xml`)。 2. Maven未安装或路径配置错误。 **解决方案** 1. 检查文件名拼写,修正为 `settings.xml`。 2. 确认Maven安装路径正确,或在Jenkins全局配置中指定Maven路径。 --- ### **五、完整解决流程** 1. **修复Maven配置** - 检查 `settings.xml` 是否存在,路径是否正确。 - 在Jenkins的Maven配置中指定正确的配置文件路径。 2. **重新构建项目** ```bash mvn clean package ``` 确保生成`target`目录及Jar文件。 3. **修复脚本路径和权限** - 将脚本中的绝对路径改为相对路径(如`./target/like-admin-1.0.0.jar`)。 - 使用 `sudo` 或调整目录权限。 4. **检查Jenkins用户权限** ```bash # 查看Jenkins进程所属用户 ps aux | grep jenkins # 调整目录权限 sudo chown -R jenkins:jenkins /var/jenkins_home/ ``` --- ### **总结** 根本问题在于**路径错误、权限不足和构建失败**。建议: 1. 优先修复Maven构建问题。 2. 检查所有脚本中的路径和文件名。 3. 确保Jenkins用户有足够的权限操作相关目录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值