加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

php – Docker apache2不会考虑新的000-default.conf

发布时间:2020-12-16 03:49:49 所属栏目:安全 来源:网络整理
导读:我正在尝试将Laravel 5.2应用程序停靠.为此,我使用以下图像, php:apachemysql:5.7 下面是我的docker-compose.yml web: build: . volumes: - ./:/var/www/html ports: - "9899:80" links: - db command : [/usr/sbin/apache2ctl,-D,FOREGROUND]db: image: mys

我正在尝试将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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读