Ubuntu Apahce2.4下无法访问JS目录的问题解决

问题描述

今天调试一个项目,项目放在webroot下面的javascript目录,无论怎么设置都是403 You don't have permission to access /javascript/ on this server.

思考过程

首先第一反应,Google了错误You don't have permission to access /javascript/ on this server. ,然后发现大部分答案都说到了配置文件中的Directory设置。比如

<Directory />
 Options FollowSymLinks
 AllowOverride All
 Order deny,allow
 Allow from all
</Directory>

而我并不是整个webroot都不能访问,其他所有的文件夹都可以访问,就是目录javascript文件夹没有权限访问,我的设置是

<Directory /home/hfx/workspace/>
  Options Indexes FollowSymLinks
#  AllowOverride None
  AllowOverride All
  Require all granted
</Directory>

所以按理来说也是没有问题的,可以单单就是javascript目录无法访问,并且我尝试重新给javascript目录设置权限

chmod 777 -R javascript

然而还是并没有什么卵用,于是我尝试更改javascript变成javaScript或者新建其他的名字的文件夹,而它们均可以正常访问,所以猜想症结应该是那里的配置禁止了web根路径下名字为javascript的路径。

发现问题

于是我看apache的所有配置文件,打开/etc/apache2/conf-enable/目录,发现了一个名为javascript-common.conf的配置文件,打开一看

Alias /javascript /usr/share/javascript/
<Directory "/usr/share/javascript/">
  Options FollowSymLinks MultiViews
</Directory>

其实我并不知道具体是什么意思,可是从字面意思大概看出,配置里面指定了一个别名/javascript到目录/usr/share/javascript/,应该访问/javascript就变成了访问目录/usr/share/javascript/而不是我们在web根目录下创建的javascript目录。

解决方案

于是google一下javascript-common.conf,这才发现了很多真正与此相关的问题,所以真正的解决方案有很多种,有的直接修改别名的名称为/javascript-common,而我觉得最好的解决方案应该是

You don't need to edit the conf file or purge the package just disable it.

a2disconf javascript-common
service apache2 reload

If for some reason you want to use that conf:

a2enconf javascript-common
service apache2 reload

另外解释一下a2disconf和a2enconf的作用,官方的介绍是

a2enconf, a2disconf - enable or disable an apache2 configuration file

从介绍就直接明了它的作用了。快捷的启用或者禁用一个apache模块。

另外还有类似的几个命令:

  • apache2ctl - Apache HTTP server control interface
  • a2enmod, a2dismod - enable or disable an apache2 module

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

(0)

相关推荐

  • Ubuntu Apahce2.4下无法访问JS目录的问题解决

    问题描述 今天调试一个项目,项目放在webroot下面的javascript目录,无论怎么设置都是403 You don't have permission to access /javascript/ on this server. 思考过程 首先第一反应,Google了错误You don't have permission to access /javascript/ on this server. ,然后发现大部分答案都说到了配置文件中的Directory设置.比如 <Directory

  • 在Ubuntu/Linux环境下使用MySQL开放/修改3306端口和开放访问权限

    操作系统:Ubuntu 17.04 64位 MySQL版本:MySQL 5.7 一.查看3306端口是否开放 netstat -an|grep 3306 如果看到下图这样的,说明端口并未打开: 二.修改访问权限 进入目录"etc/mysql/mysql.conf.d/",如下图所示: 在这个目录下,有一个配置文件"mysqld.cnf",如下图所示: 打开这个配置文件: sudo vim mysqld.cnf 文件打开后有一大段注释说明,不用去管它,直接看到下图中的

  • 详解直接访问WEB-INF目录下的JSP页面的方法

    WEB-INF目录下的JSP页面不能通过地址栏直接访问,WEB-INF目录下的文件不能直接被访问主要是出于安全考虑,当然如果不用考虑安全性的话,你可以直接把JSP页面放到WEB-INF外的webapp目录下,这样也可以直接访问.下面说下如何直接访问WEB-INF目录下的jsp页面 可以通过转发的方式访问,我用的是Controller来进行转发,如下: package com.sogou.baike.controller; import org.apache.log4j.Logger; impor

  • springBoot快速访问工程目录下的静态资源

    目录 1.牛刀小试 1.1 图片静态资源的访问 1.2 为静态资源添加访问前缀 1.3 WelCome Page 的奇妙跳转 2.那么,SpringBoot是如何做到的呢? 1.牛刀小试 1.1 图片静态资源的访问 先看官方怎么说,点击链接,打开SpringBoot官方文档 ​ 文档中明确指出:/static(or/publicor/resourcesor/META-INF/resources) ,这几个目录是SpringBoot放置静态资源的目录,只要把静态资源放到这几个目录下,就能直接访问到

  • linux下判断文件和目录是否存在的方法(总结)

    1.前言 工作中涉及到文件系统,有时候需要判断文件和目录是否存在.我结合APUE第四章文件和目录,总结一下如何正确判断文件和目录是否存在,方便以后查询. 2.stat系列函数 stat函数用来返回与文件有关的结构信息.stat系列函数有三种情况,分别对应文件名称.文件描述符和符号链接文件.stat结构描述了文件的属性,主要包括文件的类型.文件大小等等.详细stat结构如下所示: struct stat { mode_t st_mode; // file type & mode(permissio

  • Windows系统下安装Node.js的步骤图文详解

    前言 随着近日Paypal和Netflix宣告 迁移到Node.js, 服务器端Javascript平台已经证明其自身在企业领域的价值. 这对于Node来说是一小步,对于Javascript而言却是一大跨越啊! 来自.NET, Java, PHP, Ruby on Rails和更多技术领域的程序员, 所有游走于服务器端的编码者都会聚集到这个平台上. 作为像 Yahoo, Walmart, 和 Oracle 这样的大玩家入局,, Node 正在甩掉其一直就存在的不成熟和不稳定的坏名声. 在这篇文章

  • Ubuntu 18.04下VMware Tools安装配置图文教程

    本文记录了Ubuntu 18.04下VMware Tools安装配置图文教程,供大家参考,具体内容如下 1.打开虚拟机VMware Workstation,启动Ubuntu系统,菜单栏 - 虚拟机 - 安装VMware Tools,不启动Ubuntu系统是无法点击"安装VMware Tools"选项的,如下图: 2.等待几分钟会发现ubuntu桌面多了VMware Tools镜像,点击它,其里面有一个VMwareTools-tar.gz文件 3.接下来我们把VMwareTools-ta

  • ubuntu 安装linux 下vmVMware tools 步骤及问题解决方法

    一. 菜单栏 "虚拟机" --> "设置 " 使用linux.so镜像文件 此文件在vmware workstation 的安装目录.并且打开CD/DVD的连接. 二.终端执行如下命令 mount /dev/cdrom /mnt/cdrom 挂载 cd /mnt/cdrom cp VMwareXXX.tar.gz /tmp VMwareXXX.tar.gz 为自己vmware tools安装包, 复制到/tmp 目录下 umount /mnt/cdrom 解除

  • golang文件服务器的两种方式(可以访问任何目录)

    一.方法1: 主要用到的方法是http包的FileServer,参数很简单,就是要路由的文件夹的路径. package main import ( "fmt" "net/http" ) func main() { http.Handle("/", http.FileServer(http.Dir("./"))) e := http.ListenAndServe(":8080", nil) fmt.Print

  • Ubuntu 20.04 下安装配置 VScode 的 C/C++ 开发环境(图文教程)

    前言: 之前安装了Ubuntu 18.04,结果在安装Codeblocks / VScode还是安装gcc,c/c++的时候出现了一堆错误(缺失依赖树等等问题,换源也无法成功),整了一个下午没有任何进展,网上找不到任何解决方法,于是只能重装了Ubuntu 20.04,之后Codeblocks倒是安装成功了,但是明明在已经安装了C/C++跟GCC编译包的情况,它仍然显示在该路径下找不到,无论路径是默认自动定位在/usr 还是在/usr/bin 之下仍然出现此情况,同样网上找不到任何解决方法,于是只

随机推荐