我有 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();
?>
谁能指导我如何解决这个问题?
提前致谢。
看起来您已经正确设置了 Apache 配置,但问题可能与项目文件夹内的文件和目录的所有权和权限有关。
您可以采取以下几个步骤来排查和解决问题:
检查所有权: 确保项目文件夹中的文件和目录归正确的用户所有。运行以下命令以递归地将所有权更改为您的用户:
sudo chown -R $USER:$USER /home/user/Desktop/project 将 $USER 替换为您的实际用户名。
检查权限:
确保权限设置正确。运行以下命令来设置正确的权限:
sudo chmod -R 755 /home/user/Desktop/project
检查 Apache 错误日志中是否有任何特定错误消息。您可以使用以下命令查看错误日志:
sudo tail -f /var/log/apache2/error.log
查找与权限或访问问题相关的任何错误消息。
更改 Apache 配置或文件权限后,重新加载 Apache 服务以应用更改:
sudo service apache2 reload
或者,您可以重新启动 Apache:
sudo service apache2 restart
进行这些更改后,尝试再次访问 http://localhost:8080。如果问题仍然存在,请检查 Apache 错误日志中是否有任何新的错误消息,因为它们可以提供有关该问题的有价值的信息。相应地调整权限,直到问题解决。