AWS ECS Docker:未指向 Drupal 路径并给出错误您无权访问此资源
AWS ECS Docker: Not pointing to Drupal path and giving error You don't have permission to access this resource
Drupal 8 目录结构如下
drupal -> Web -> Index.php
我有以下文件
docker-compose.yml
version: '3'
services:
drupal:
image: drupal:latest
container_name: drupal
build: .
ports:
- "8081:80"
volumes:
- ./:/var/www
restart: always
DockerFile
FROM drupal:8.6-apache
RUN apt-get update && apt-get install -y \
curl \
git \
mysql-client \
vim \
wget
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
php composer-setup.php && \
mv composer.phar /usr/local/bin/composer && \
php -r "unlink('composer-setup.php');"
RUN wget -O drush.phar https://github.com/drush-ops/drush-launcher/releases/download/0.4.2/drush.phar && \
chmod +x drush.phar && \
mv drush.phar /usr/local/bin/drush
COPY apache-drupal.conf /etc/apache2/sites-enabled/000-default.conf
WORKDIR /var/www/web
apache-drupal.conf
<VirtualHost *:80>
DocumentRoot "/var/www/web/"
DirectoryIndex index.php
<Directory "/var/www/web/">
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/www/web/error.log
CustomLog /var/www/web/access.log combined
</VirtualHost>
当我通过 Public IP 访问 Drupal 集群时,它只会显示 error.log
& access.log
文件。不是 Drupal 整个项目。
路径中缺少什么?
看来你遇到了某种碰撞。
- 您的
drupal:8.6-apache
图像在 /var/www/html
文件夹中包含 Drupal,但您将卷映射到容器内的 /var/www/
文件夹。这完全打破了它。
- 您的
apache-drupal.conf
文件指向 /var/www/web
,但项目已经在 html
中(我们在容器中)
使其工作的简单方法是执行 3 次修改(如果仅获取映射日志就足够了)
- 将
docker-compose.yml
中的卷映射更改为 /var/www/web
- 将
apache-drupal.conf
中的DocumentRoot
和Directory
改为/var/www/html/
Drupal 8 目录结构如下
drupal -> Web -> Index.php
我有以下文件
docker-compose.yml
version: '3'
services:
drupal:
image: drupal:latest
container_name: drupal
build: .
ports:
- "8081:80"
volumes:
- ./:/var/www
restart: always
DockerFile
FROM drupal:8.6-apache
RUN apt-get update && apt-get install -y \
curl \
git \
mysql-client \
vim \
wget
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
php composer-setup.php && \
mv composer.phar /usr/local/bin/composer && \
php -r "unlink('composer-setup.php');"
RUN wget -O drush.phar https://github.com/drush-ops/drush-launcher/releases/download/0.4.2/drush.phar && \
chmod +x drush.phar && \
mv drush.phar /usr/local/bin/drush
COPY apache-drupal.conf /etc/apache2/sites-enabled/000-default.conf
WORKDIR /var/www/web
apache-drupal.conf
<VirtualHost *:80>
DocumentRoot "/var/www/web/"
DirectoryIndex index.php
<Directory "/var/www/web/">
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/www/web/error.log
CustomLog /var/www/web/access.log combined
</VirtualHost>
当我通过 Public IP 访问 Drupal 集群时,它只会显示 error.log
& access.log
文件。不是 Drupal 整个项目。
路径中缺少什么?
看来你遇到了某种碰撞。
- 您的
drupal:8.6-apache
图像在/var/www/html
文件夹中包含 Drupal,但您将卷映射到容器内的/var/www/
文件夹。这完全打破了它。 - 您的
apache-drupal.conf
文件指向/var/www/web
,但项目已经在html
中(我们在容器中)
使其工作的简单方法是执行 3 次修改(如果仅获取映射日志就足够了)
- 将
docker-compose.yml
中的卷映射更改为/var/www/web
- 将
apache-drupal.conf
中的DocumentRoot
和Directory
改为/var/www/html/