1. Ошибка Apache: Forbidden
Решение:
- Убедитесь, что все файлы и каталоги внутри /var/www/html/ имеют правильные разрешения. Обычно достаточно, чтобы файлы были доступны для чтения всем пользователям, и чтобы каталоги были доступны для исполнения.
- Можно добавить команды в ваш Dockerfile для установки правильных разрешений, например:
RUN chown -R www-www-data /var/www/html/ && \
chmod -R 755 /var/www/html/
2. Ошибка подключения к MySQL из phpMyAdmin
Решение:
- В вашем docker-compose.yml вы используете переменную MYSQL_ROOT_PASSWORD: admin для сервиса phpmyadmin, но не указываете ее для сервиса mysql. Вам нужно добавить эту же переменную в секцию environment сервиса mysql, чтобы установить пароль для пользователя root:
mysql:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: admin
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
- Убедитесь, что вы используете верный пароль при попытке входа через phpMyAdmin.
- Убедитесь, что в настройках phpMyAdmin указан верный хост (PMA_HOST: mysql). Это должно соответствовать имени сервиса mysql в вашем docker-compose.yml.
Попробуйте внести изменения и перезапустить ваш Docker контейнеры.
Ошибка:
Forbidden
You don't have permission to access this resource.
Apache/2.4.57 (Debian) Server at local host Port 8080
PhpmyAdmin тоже не работает, После входа происходит ошибка:
mysqli::real_connect(): (HY000/1045): Access denied for user 'root'@'172.18.0.4' (using password: YES)
Dockerfile:
FROM php:8.3.4-apache
COPY ./ /var/www/html/
EXPOSE 80
Docker-compose.yml:
version: '3'
services:
php:
build:
context: .
dockerfile: Dockerfile
ports:
- "8080:80"
mysql:
image: mysql:latest
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
volumes:
- ./mysql-data:/var/lib/mysql
phpmyadmin:
image: phpmyadmin:latest
links:
- mysql
ports:
- "8081:80"
environment:
PMA_HOST: mysql
MYSQL_ROOT_PASSWORD: admin