我正在尝试将Laravel 5.2应用程序停靠.为此,我使用以下图像,
PHP:apache
MysqL:5.7
下面是我的docker-compose.yml
web:
build: .
volumes:
- ./:/var/www/html
ports:
- "9899:80"
links:
- db
command : [/usr/sbin/apache2ctl,-D,FOREGROUND]
db:
image: MysqL:5.7
volumes:
- /home/data:/var/lib/MysqL
environment:
MysqL_DATABASE: custom
MysqL_ROOT_PASSWORD: custom
还有我的Dockerfile
FROM PHP:apache
RUN apt-get update && docker-PHP-ext-install pdo pdo_MysqL
RUN rm -f /etc/apache2/sites-available/000-default.conf
ADD ./settings/000-default.conf /etc/apache2/sites-available
Dockerfile和docker-compose.yml都位于laravel根目录中.要运行基于laravel的应用程序,服务器必须指向公用文件夹.所以,你可以看到我用000-default.conf文件替换apache2的默认配置文件,
在docker-compose up命令上运行正常但是,当我浏览localhost:9899时我得到Forbidden错误,但localhost:9899 / public正确启动了laravel app.这意味着我提供的000-default.conf没有效果,服务器仍然指向/ var / www / html /而不是/ var / www / html / public.
所以我试过,exec进入运行容器来检查000-default.conf.我可以看到我的文件而不是默认文件.我没有理解这个问题.我希望apache考虑我的000-default.conf.我希望你们能看到我做错了什么.
最佳答案
Apache不会查看sites-available目录,而是查看启用站点的目录.
您可以将配置文件添加到后一个目录中,也可以设置符号链接:
您可以将配置文件添加到后一个目录中,也可以设置符号链接:
ADD ./settings/000-default.conf /etc/apache2/sites-available
RUN ln -s /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-enabled/000-default.conf
原文地址:https://www.jb51.cc/docker/435741.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。