Docker中的Apache不会提供laravel站点

时间:2017-07-21 08:41:59

标签: apache docker laravel-5 docker-compose apache-config

我有一个与docker-compose有关的问题。我正在使用带有docker-compose的开发配置。

我的docker-compose.yml:

version: '3'
services:
  # base de données mysql
  database:
    image: mysql:5.7
    container_name: mysql57_Adhesion
    ports:
      - 3306:3306
    expose:
     - 3306
    volumes:
     - /data/dev/docker/composePhpAdhesion/database:/var/lib/mysql
    environment:
     - MYSQL_ROOT_PASSWORD=myPassword



  # apache 2.4 et php 5.6 fourni par le fichier Dockerfile
  php:
    build: .
    container_name: apache24_php56_Adhesion
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /data/devPhp/workspace:/var/www/html
    links:
      - database
    environment:
      PMA_HOST: database
      PMA_PORT: 3306

我将apache / var / www / html挂载到计算机上的特定目录/ data / devPhp / workspace。

它的工作原理是简单的apache conf文件(000-default.conf):

   DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <Directory /var/www/html>
            Options Indexes FollowSymLinks Includes ExecCGI
            AllowOverride All
            Require all granted
    </Directory>

在这种情况下:

作品。

但是对于laravel 5,我需要一个特定的documentroot目录:

   DocumentRoot /var/www/html/adhesion/public

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <Directory /var/www/html/adhesion/public>
            Options Indexes FollowSymLinks Includes ExecCGI
            AllowOverride All
            Require all granted
            # RewriteEngine On
            # RewriteRule ^(.*)$ public/$1 [L]
    </Directory>

它不起作用......这个网址:

因404错误而失败...

提前感谢任何想法。

EDIT / UPDATE:

改善格式

1 个答案:

答案 0 :(得分:0)

apache mod-rewrite对laravel来说至关重要!!!!

How to enable mod_rewrite on Apache 2.4?

在网址http://localhost/adhesion/上使用mod_rewrite正在运行!