Использовал docker. Для мака чтобы поднять веб сервер но у меня nginx поднялся, а вот чтобы открылся именно сам проект такого не произошло
Какие конфиги я использовал
docker-compose
version: '3'
services:
webserver:
container_name: nginx_kfnp_yii2
build:
context: .
dockerfile: ./docker/Dockerfile
environment:
XDEBUG_CONFIG: remote_host=host.docker.internal
PHP_IDE_CONFIG: serverName=localhost
ports:
- 80:80
volumes:
- ./:/var/www
links:
- db
depends_on:
- db
adminer:
image: adminer
restart: always
ports:
- 8080:8080
db:
container_name: mysql_kfnp_yii2
image: percona:latest
command: --default-authentication-plugin=mysql_native_password
restart: on-failure
ports:
- 3306:3306
expose:
- 3306
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: yii2basic
MYSQL_USER: mysqluser
MYSQL_PASSWORD: mysqluser
./docker/Dockerfile
#инструкция FROM - указывает на базе какого обараза будем собирать наш контейнер.
FROM debian:latest
#инструкция RUN - указывает какую команду нужно выполнить внутри образа. обновим индекс пакетов
RUN apt-get update
RUN apt-get install -y curl gnupg2 wget ca-certificates lsb-release
RUN echo "deb http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \ | tee /etc/apt/sources.list.d/nginx.list \
&& curl -fsSL https://nginx.org/keys/nginx_signing.key | apt-key add - \
&& apt-get update
#Инструкция ENV задает переменные окружения с именем <key> и значением <value>.
#Это значение будет находиться в окружении всех команд потомков Dockerfile и могут быть использованы как обычные переменные окружения.
ENV TZ=Europe/Moscow
#указываем временную зону для нашего образа.
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get install -y git nginx python3 perl \
software-properties-common nano wget zip unzip \
&& apt-get update
#устанавливаем php расширения
RUN apt-get install -y \
php7.3-fpm php7.3-common php7.3-mysql php7.3-gmp \
php7.3-curl php7.3-intl php7.3-mbstring php7.3-xmlrpc \
php7.3-gd php7.3-xml php7.3-cli php7.3-zip php7.3-soap \
php7.3-imap
#после завершения установок всех пакетов - обновим индекс
RUN apt-get update
RUN curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer && composer global require hirak/prestissimo --no-plugins --no-scripts
#откроем 80 порт
EXPOSE 80
#добавим в контейнер конфигурационный файл php.ini, расположим его на стаднатрном для ubuntu месте
ADD ./docker/conf/php/php.ini /etc/php/7.3/nginx/php.ini
#обязательно добавим конфигурации xdebug
ADD ./docker/conf/php/xdebug.ini /etc/php/7.3/mods-available/xdebug.ini
#добавим конфигурацонный файл для виртуального сервера
ADD ./docker/conf/nginx/test.site.conf /etc/nginx/sites-enabled/test.site.conf
#укажим дирректорию /var/www как рабочую
WORKDIR /var/www
#запускаем процес apache2 в нормальном режиме (На переднем плане).
#Пока живет это процесс, живет и контейнер.
CMD ["nginx", "-g", "daemon off;"]
./docker/conf/nginx/test.site.conf
server {
listen 80 default_server;
server_name app-test.local;
set $base_root /var/www/;
root $base_root;
charset UTF-8;
index index.php index.html;
location / {
root $base_root/frontend/web;
try_files $uri $uri/ /frontend/web/index.php$is_args$args;
location ~ ^/assets/.+\.php(/|$) {
deny all;
}
}
location /admin {
alias $base_root/backend/web/;
try_files $uri /backend/web/index.php$is_args$args;
location ~ ^/admin/assets/.+\.php(/|$) {
deny all;
}
}
location ~ ^/.+\.php(/|$) {
rewrite (?!^/((frontend|backend)/web|admin))^ /frontend/web$uri break;
rewrite (?!^/backend/web)^/admin(/.+)$ /backend/web$1 break;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}
location ~ /\. {
deny all;
}
}
Сами конфиги и проект залит в docker контейнер. И потом еще изменил на локалке /etc/hosts
127.0.0.1 app-test.local
По сути должно работать, только вот nginx работает но сайт он не видит
Из-за чего может быть такое и как это исправить. Лазил уже в контейнер так и не догнал в чем проблема. В логах нет никакой информации