Docker - 403 禁止 PHP Apache Ubuntu 16

问题描述 投票:0回答:1

我有 ubuntu 16,我正在尝试使用本文中的 PHP 7.4 来使用 docker https://linuxhint.com/lamp_server_docker/ .

一切正常,除了 http://localhost:8080/ 之外,它一直显示“403 Forbidden”。

下面是我的

docker-compose.yaml
的样子。在里面创建了一个文件夹和文件
/var/www/html/docker2

version: "3.7"
services:
  web-server:
    build:
      dockerfile: php.Dockerfile
      context: .
    restart: always
    volumes:
      - myapp:/home/user/Desktop/project
    ports:
      - "8080:80"
  mysql-server:
    image: mysql:8.0.19
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: secret
    volumes:
      - mysql-data:/var/lib/mysql

  phpmyadmin:
    image: phpmyadmin/phpmyadmin:5.0.1
    restart: always
    environment:
      PMA_HOST: mysql-server
      PMA_USER: root
      PMA_PASSWORD: secret
    ports:
      - "5000:80"
volumes:
  mysql-data:  
  myapp:
    external: true

如您所见,我已经在

home/user/Desktop/project
创建了我的项目,并且已经完成了
sudo chmod -R 755 /home/user/Desktop/
,并且还通过
000-default.conf
打开了
/etc/apache2/sites-available/000-default.conf
并添加了以下代码。

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /home/user/Desktop/project
    <Directory /home/user/Desktop/project>
                Require all granted
    </Directory>    
</VirtualHost>

我还在

index.php
创建了
/home/user/Desktop/project/index.php
文件并添加了以下代码进行测试。

当我这样做时

docker-compose up -d
,所有服务都开始启动..我还可以使用
5000
端口
http://my.i.p.address:5000/
进入我的新phpmyadmin,但是当我尝试去这里
http://localhost:8080/
时,它一直说
403 Forbidden
。我还设置了权限
sudo chmod -R 755 /home/user/Desktop/
并重新启动了 apache -
sudo service apache2 restart
和 docker -
docker-compose restart
但没有运气。

<?php 

phpinfo();
?>

谁能指导我如何解决这个问题?

提前致谢。

php docker apache
1个回答
0
投票

看起来您已经正确设置了 Apache 配置,但问题可能与项目文件夹内的文件和目录的所有权和权限有关。

您可以采取以下几个步骤来排查和解决问题:

  1. 检查所有权: 确保项目文件夹中的文件和目录归正确的用户所有。运行以下命令以递归地将所有权更改为您的用户:

    sudo chown -R $USER:$USER /home/user/Desktop/project 将 $USER 替换为您的实际用户名。

  2. 检查权限:

确保权限设置正确。运行以下命令来设置正确的权限:

sudo chmod -R 755 /home/user/Desktop/project
  1. 检查 Apache 日志:

检查 Apache 错误日志中是否有任何特定错误消息。您可以使用以下命令查看错误日志:

sudo tail -f /var/log/apache2/error.log

查找与权限或访问问题相关的任何错误消息。

  1. Apache 配置重新加载:

更改 Apache 配置或文件权限后,重新加载 Apache 服务以应用更改:

sudo service apache2 reload

或者,您可以重新启动 Apache:

sudo service apache2 restart
  1. Docker 卷权限: 如果您使用 Docker 卷,请确保 Docker 容器具有从卷读取数据的正确权限。您可能需要调整 Docker 容器内的用户或组以匹配主机上的权限。

进行这些更改后,尝试再次访问 http://localhost:8080。如果问题仍然存在,请检查 Apache 错误日志中是否有任何新的错误消息,因为它们可以提供有关该问题的有价值的信息。相应地调整权限,直到问题解决。

© www.soinside.com 2019 - 2024. All rights reserved.