当前位置: 首页 > 知识库问答 >
问题:

php7 - 在deepin20系统中安装apache2之后改变目录,访问出现403错误?

陶树
2024-11-10

如标题所述,我出现了如下错误:
Forbidden
You don't have permission to access this resource.

Apache/2.4.38 (Uos) Server at localhost Port 80
我能够想到的是目录没有权限,因此对目录已经设置了权限
image.png

配置文件如下:

<VirtualHost *:80>
    # The ServerName directive sets the request scheme, hostname and port that
    # the server uses to identify itself. This is used when creating
    # redirection URLs. In the context of virtual hosts, the ServerName
    # specifies what hostname must appear in the request's Host: header to
    # match this virtual host. For the default virtual host (this file) this
    # value is not decisive as it is used as a last resort host regardless.
    # However, you must set it for any further virtual host explicitly.
    #ServerName www.example.com

    ServerAdmin webmaster@localhost
    DocumentRoot /home/leomus/www

    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
    # error, crit, alert, emerg.
    # It is also possible to configure the loglevel for particular
    # modules, e.g.
    #LogLevel info ssl:warn
        
    <Directory "/home/leomus/www"> 
        Options FollowSymLinks 
        AllowOverride None 
        Order deny,allow
        Allow from all 
    </Directory> 
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

        # or most configuration files from conf-available/, which are
    # enabled or disabled at a global level, it is possible to
    # include a line for only one particular virtual host. For example the
    # following line enables the CGI configuration for this host only
    # after it has been globally disabled with "a2disconf".
    #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

期间我修改目录成var/www/html
成初始状态,但是无法运行php
**无法运行PHP的问题已经解决是缺少插件,安装相关组件即可运行PHP
安装组件命令如下**

 sudo apt install php7.3-mysql php7.3-curl php7.3-gd php7.3-intl php-pear php7.3-imagick 

但是仍然不能修改目录,这个目录是正常且路径是存在的。
我系统里面安装了PHP7.3
image.png
我实在找不出问题所在了,有知道兄弟麻烦解答一下,谢谢!

补充问题:我发现只要网站目录换成apache2默认的目录暨:/var/www/html

网站就能正常,如果换成其他任何目录就不行!

这是什么原理,搞不明白!

共有2个答案

轩辕经国
2024-11-10

更改目录权限

确保目录及其所有子目录和文件具有正确的权限,通常使用 755 权限。具体操作步骤:

chmod -R 755 /path/to/your/new/directory

更改目录所有者

确保 Apache 用户(通常是 www-dataapache)拥有该目录及其内容的所有权:

# 如果Apache用户是www-data
chown -R www-data:www-data /path/to/your/new/directory

确认Apache的运行用户和组与新目录的所有者和组一致。可以在/etc/apache2/envvars文件中设置Apache的运行用户和组:

export APACHE_RUN_USER=youruser
export APACHE_RUN_GROUP=yourgroup

如果Apache用户是apache

chown -R apache:apache /path/to/your/new/directory


### 验证权限和所有权
使用以下命令检查目录的权限和所有权:

ls -l /path/to/your/new/directory


你应该看到类似于以下的输出:

drwxr-xr-x 2 www-data www-data 4096 Nov 9 21:58 your-directory


### 更新Apache配置文件
确保在 Apache 配置文件中正确配置了新目录。例如,在 `/etc/apache2/apache2.conf` 中添加或修改以下内容:

<Directory "/path/to/your/new/directory">

Options Indexes FollowSymLinks
AllowOverride None
Require all granted

</Directory>


### 重启Apache服务
每次修改配置文件后,记得重启 Apache 服务以应用更改:

sudo systemctl restart apache2

茹展鹏
2024-11-10
在 Deepin 20 系统中安装 Apache2 后遇到 403 错误通常是由于权限设置或配置问题。以下是一些可能的解决方案:

1. **确保目录权限正确**:
   - 确认 `/home/leomus/www` 目录及其内容的权限和所有权设置正确。通常,Apache 需要对该目录有读取权限。你可以使用以下命令设置适当的权限:
 sudo chown -R $USER:$USER /home/leomus/www
 sudo chmod -R 755 /home/leomus/www
 ```
 注意:如果 Apache 运行在非 root 用户下(如 `www-data`),你可能需要将所有者设置为该用户:
 ```bash
 sudo chown -R www-data:www-data /home/leomus/www
 ```
  1. 更新 Apache 配置文件中的目录路径

    • 如果你已经将 DocumentRoot 更改到 /var/www/html,请确保 Apache 配置文件中也反映了这一更改,并且 /var/www/html 目录的权限设置正确。
    • 更新配置文件中的 <Directory> 指令以匹配新的 DocumentRoot:

      <Directory "/var/www/html">
          Options Indexes FollowSymLinks
          AllowOverride None
          Require all granted
      </Directory>
    • 注意:在 Apache 2.4 及以上版本中,推荐使用 Require all granted 替代 Order deny,allowAllow from all
  2. 确保 Apache 有权访问 PHP 文件

    • 如果你在 /var/www/html 目录中运行 PHP,请确保 PHP 文件的权限也允许 Apache 读取。
    • 同样,确保 Apache 加载了 PHP 模块。你可以通过查看 Apache 的配置文件(通常是 /etc/apache2/mods-enabled/ 目录下的文件)来确认 PHP 模块是否已启用。
  3. 重启 Apache 服务

    • 每次更改配置文件后,都需要重启 Apache 服务以使更改生效:

      sudo systemctl restart apache2
  4. 检查错误日志

    • 查看 Apache 的错误日志(通常位于 /var/log/apache2/error.log)以获取更多关于 403 错误的详细信息。
  5. SELinux 或 AppArmor

    • 如果你的系统启用了 SELinux 或 AppArmor,这些安全模块可能会阻止 Apache 访问某些目录。检查相关的安全策略日志,并根据需要进行调整。

通过以上步骤,你应该能够解决遇到的 403 错误问题。如果问题仍然存在,请仔细检查每一步的配置和权限设置。

 类似资料:
  • 当我在linux系统上安装Java8时,Iam得到以下错误-sudo:effective uid不是0,安装的sudo是setuid root吗?请帮帮忙。下面是System的sudoer文件。请帮助。 />mv/usr/lib/java-1.8.0/jdk1.8.0_161/usr/lib/java/>sudo更新-备选项--安装“/usr/bin/java”“java”“/usr/lib/jd

  • PHP版本:7.2.19-0ubuntu0.18.04.1 phpMyAdmin 4.6.6 在安装Phpmyadmin时,打开它时出现两个错误。一个在导入下,一个在导出下!这是因为mysql服务器出错还是因为phpmyadmin中的错误?我该如何处理它呢? 我在Debian9上安装了它,没有问题! 出口项下: ./libraries/plugin_interface.lib.php#551 co

  • 如何进入OpenHarmony的系统目录? 目的是获取设备的获取设备的特权管控白名单文件install_list_capability.json,安装调用了系统级API的APP,把APP包名加入白名单里

  • 本文向大家介绍Mac系统完美安装PHP7详细教程,包括了Mac系统完美安装PHP7详细教程的使用技巧和注意事项,需要的朋友参考一下  PHP发布5.6版本后,一直在等,等到了跨越式的PHP7版本,那么问题来了,版本6到哪去了?根据官方的说法,现在的PHP7要比PHP5.6快一倍,有的朋友说快十倍,反正是更快了,本人习惯Mac系统,因此根本Mac系统详细讲解如何安装PHP7! 一般有好几种方法来安装

  • 我有问题与apache2error.log.500错误没有出现在那里(/var/log/apache2/error.log),我只是得到这些行每次我重新启动apache2服务: 我把error_reporting=E_ALL,display_errors=上,display_startup_errors=上,log_errors=上 /etc/php/7.4/apache2/php.ini和 /e

  • 我刚刚安装了一台Ubuntu服务器,并把我的文件从另一台服务器转移到这台服务器上。< br >我已将文件复制到: /var/www/DIRECTORY 当我打开浏览器并输入IPADDRESS/DIRECTORY时,页面可以完美加载。 当然,我不希望人们通过一个目录访问我的网站,所以我试图改变我的服务器的DocumentRoot。所以我去了 /etc/apache2/sites-available/

  • 复制步骤:使用VS2012终极版(我相信任何版本也可以)创建一个类库项目,右键单击引用并管理nuget包。使用nuget包管理器,尝试安装System.数据。Sqlite(10.21.2015)最新版本。 我得到以下错误消息: 当然,如果我只安装“核心”包,它就可以工作。我不明白为什么我不能安装官方的完整包。

  • 问题内容: 我有错误: 我在OS X上使用go版本1.1。 我可以构建并运行,但无法安装软件包。 我的环境: 项目树: 我可以没有错误地构建: 这是一个简单的示例: 问题答案: 命令去 GOPATH环境变量 列出的每个目录必须具有规定的结构: 该目录包含源代码。“ ” 下面的路径确定导入路径或可执行文件名称。 该目录包含已安装的软件包对象。就像在Go树中一样,每个目标操作系统和体系结构对都有其自己