Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php DOCKER APACHE2将不考虑新的0000默认。_Php_Apache_Docker_Docker Compose_Dockerfile - Fatal编程技术网

Php DOCKER APACHE2将不考虑新的0000默认。

Php DOCKER APACHE2将不考虑新的0000默认。,php,apache,docker,docker-compose,dockerfile,Php,Apache,Docker,Docker Compose,Dockerfile,我正在尝试将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

我正在尝试将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的应用程序,服务器必须指向
public
文件夹。因此,您可以看到我正在用下面的
000 default.conf
文件替换
apache2
的默认配置文件

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/public

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

服务器管理员webmaster@localhost
DocumentRoot/var/www/html/public
ErrorLog${APACHE_LOG_DIR}/error.LOG
CustomLog${APACHE\u LOG\u DIR}/access.LOG组合
docker compose up
命令上一切运行正常,但是当我浏览
localhost:9899
时,我得到了禁止的错误,但是
localhost:9899/public
正确启动了
laravel
应用程序。这意味着我提供的
000 default.conf
无效,服务器仍然指向
/var/www/html/
,而不是
/var/www/html/public


所以我尝试,
exec
进入正在运行的容器,检查
000 default.conf
。我可以看到我的文件而不是默认文件。我对这个问题不太了解。我想让Apache考虑我的<代码> 000默认值。我希望你们能看到我做错了什么。

Apache不会查看可用的
站点
目录,而是查看启用的
站点
目录。 您可以
将配置文件添加到后一个目录中,或设置符号链接:

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

已启用站点中的配置文件是指向可用站点中的文件的符号链接