Installing nginx in docker from php:8.0.2-fpm I could not find error.log and access.log files, which I defined in nginx.conf :

```
server {
    listen 80;
    index index.php;
    error_log /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    error_page 404 /index.php;

    root /var/www/lar-nginx_docker_root/public;

    location ~ \.php$ {
        try_files $uri $uri/ =404;
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location  / { # catch any non php files
        try_files $uri $uri/ /index.php?$query_string;
        gzip_static on;
    }

}

```

But entering in bash I can not opened these files and checking I do not see /var/log/nginx/ subdirectory:

```
master@master-laptop:/mnt/_work_sdb8/wwwroot/lar/lar-nginx/DOCKER$ docker-compose exec web bash
root@7f85f7225617:/var/www/lar-nginx_docker_root# cat /var/log/nginx/error.log
cat: /var/log/nginx/error.log: No such file or directory
root@7f85f7225617:/var/www/lar-nginx_docker_root# cat /var/log/nginx/access.log
cat: /var/log/nginx/access.log: No such file or directory
root@7f85f7225617:/var/www/lar-nginx_docker_root# cd /var/log                 
root@7f85f7225617:/var/log# ls -la
total 152
drwxr-xr-x 1 root root  4096 Feb  9  2021 .
drwxr-xr-x 1 root root  4096 Feb  9  2021 ..
-rw-r--r-- 1 root root  5883 Sep 26 07:52 alternatives.log
drwxr-xr-x 1 root root  4096 Sep 26 07:52 apt
-rw-rw---- 1 root utmp     0 Feb  8  2021 btmp
-rw-r--r-- 1 root root 93784 Sep 26 07:52 dpkg.log
-rw-r--r-- 1 root root  3232 Feb  8  2021 faillog
-rw-rw-r-- 1 root utmp 29492 Feb  8  2021 lastlog
-rw-rw-r-- 1 root utmp     0 Feb  8  2021 wtmp

```

In DOCKER/docker-compose.yml I have :

```
    nginx:
        image: nginx:1.19-alpine
        container_name: lar_nginx_nginx
        # restart: always
        ports:
            - '8084:80'

        volumes:
            - ../:/var/www/lar-nginx_docker_root
            - ./nginx:/etc/nginx/conf.d

```

Is something is wrong in my configurations and how it can be fixed?

**UPDATED BLOCK # 2 :**

I fixed some invalid paths I had, but running

```
docker-compose up -d --build

```

with success I found some messages in nginx logs :

```
master@master-laptop:/mnt/_work_sdb8/wwwroot/lar/lar-nginx/DOCKER$ docker logs --tail=50  lar_nginx_nginx
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf is not a file or does not exist
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
nginx: [emerg] host not found in upstream "app" in /etc/nginx/conf.d/nginx.conf:12

```

and again no /var/log/nginx subdirectory :

```
master@master-laptop:/mnt/_work_sdb8/wwwroot/lar/lar-nginx/DOCKER$ docker-compose exec web bash
root@5f94882294c0:/var/www/LAR-NGINX_docker_root# cat /var/log/nginx/error.log
cat: /var/log/nginx/error.log: No such file or directory
root@5f94882294c0:/var/www/LAR-NGINX_docker_root# cat /var/log/nginx/access.log
cat: /var/log/nginx/access.log: No such file or directory
root@5f94882294c0:/var/www/LAR-NGINX_docker_root# cd /var/log
root@5f94882294c0:/var/log# ls -la
total 152
drwxr-xr-x 1 root root  4096 Feb  9  2021 .
drwxr-xr-x 1 root root  4096 Feb  9  2021 ..
-rw-r--r-- 1 root root  6326 Sep 27 07:40 alternatives.log
drwxr-xr-x 1 root root  4096 Sep 27 07:40 apt
-rw-rw---- 1 root utmp     0 Feb  8  2021 btmp
-rw-r--r-- 1 root root 96133 Sep 27 07:40 dpkg.log
-rw-r--r-- 1 root root  3232 Feb  8  2021 faillog
-rw-rw-r-- 1 root utmp 29492 Feb  8  2021 lastlog
-rw-rw-r-- 1 root utmp     0 Feb  8  2021 wtmp

```

I have file virtualhost.conf :

```
<VirtualHost *:80>

  DocumentRoot /var/www/LAR-NGINX_docker_root/public
  <Directory /var/www/LAR-NGINX_docker_root/public>
    Order allow,deny
    Allow from all

    Options -MultiViews

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    php_value  memory_limit  4048M
    php_value  file_uploads  On
    php_value  upload_max_filesize  200M
    php_value  post_max_size  200M
    php_value  max_execution_time  1000
    php_value  short_open_tag  On

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
  </Directory>

  ErrorLog /var/log/nginx/error.log

  # Possible values include: debug, info, notice, warn, error, crit,
  # alert, emerg.
  LogLevel warn

</VirtualHost>

```

and in the end of my Dockerfile.yml I have :

```
  RUN  docker-php-ext-install gd pdo pdo_mysql pdo_sqlite zip gmp bcmath pcntl sysvmsg exif

  COPY virtualhost.conf /etc/nginx/conf.d/default.conf

  WORKDIR  /var/www/LAR-NGINX_docker_root

```

and in docker-compose.yml I added /var/log/nginx path :

```
version: '3.3'

services:

    web:
        build:
            context: ./           # directory of web/Dockerfile.yml
            dockerfile: Dockerfile.yml

        container_name: lar_nginx_web
        # restart: always
        working_dir: /var/www/LAR-NGINX_docker_root/
        volumes:
            - ../:/var/www/LAR-NGINX_docker_root

    nginx:
        image: nginx:1.19-alpine
        container_name: lar_nginx_nginx
        # restart: always
        ports:
            - '8084:80'

        volumes:
            - ../:/var/www/LAR-NGINX_docker_root
            - ./nginx:/etc/nginx/conf.d
            - ./log/nginx:/var/log/nginx

        depends_on:
            - web

    db:
        container_name: lar_nginx_db
        image: mysql:5.7.28
        # image: mysql:8.0.21
        # restart: always
        environment:
            - MYSQL_DATABASE=DockerLarNginx
            - MYSQL_USER=docker_user
            - MYSQL_PASSWORD=4321
            - MYSQL_ALLOW_EMPTY_PASSWORD=false
            - MYSQL_ROOT_PASSWORD=321
            - TZ=Europe/Kiev

        volumes:
            - /var/lib/mysql

    phpmyadmin:
        container_name: lar_nginx_phpmyadmin
        depends_on:
            - db
        image: phpmyadmin/phpmyadmin
        # restart: always
        ports:
            - 8085:80
        environment:
            PMA_HOST: db
            MYSQL_ROOT_PASSWORD: 1

    composer:
        image: composer:2.1
        container_name: lar_nginx_composer
        volumes:
            - ./:/var/www/LAR-NGINX_docker_root
        working_dir: /var/www/LAR-NGINX_docker_root
        command: composer install  --ignore-platform-reqs

```

and I have working phpmyadmin by url :

```
http://127.0.0.1:8085/

```

But trying to open site

```
http://127.0.0.1:8084/

```

I got error :

```
This site can’t be reached
127.0.0.1 refused to connect.

```

What is wrong in my configurations ?

**UPDATED BLOCK # 3 :**
I removed copying of VirtualHost from DOCKER/Dockerfile.yml and added several rows in nginx.conf :

```
http {
    client_max_body_size 20M;
    memory_limit    4048M;
    file_uploads    On
    upload_max_filesize  200M
    post_max_size   200M
    max_execution_time  1000
    short_open_tag  On
}

server {
    listen 80;
    index index.php;
    error_log /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    error_page 404 /index.php;

    root /var/www/LAR-NGINX_docker_root/public;

    location ~ \.php$ {
        try_files $uri $uri/ =404;
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location  / { # catch any non php files
        try_files $uri $uri/ /index.php?$query_string;
        gzip_static on;
    }

}

```

But checking logs I see :

```
master@master-laptop:/mnt/_work_sdb8/wwwroot/lar/lar-nginx/DOCKER$ docker logs --tail=50  lar_nginx_nginx
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf is not a file or does not exist

/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
nginx: [emerg] "http" directive is not allowed here in /etc/nginx/conf.d/nginx.conf:1

```

Looks like that is the point that default.conf is not created. Maybe in some docker config file I have
to point to nginx.conf ?

But it is written in my docker-compose.yml :

```
   nginx:
        image: nginx:1.19-alpine
        container_name: lar_nginx_nginx
        # restart: always
        ports:
            - '8084:80'

        volumes:
            - ../:/var/www/lar-nginx_docker_root
            - ./nginx:/etc/nginx/conf.d

```

Also entering into bash I got :

```
root@11ed27f97ac4:/var/log# uname -a
Linux 11ed27f97ac4 5.11.0-36-generic #40~20.04.1-Ubuntu SMP Sat Sep 18 02:14:19 UTC 2021 x86_64 GNU/Linux
root@11ed27f97ac4:/var/log# ls -l /etc/nginx/
ls: cannot access '/etc/nginx/': No such file or directory

```

and :

```
master@master-laptop:/mnt/_work_sdb8/wwwroot/lar/lar-nginx/DOCKER$ ls -l /var/log/nginx
ls: cannot access '/var/log/nginx': No such file or directory

```

I try to run in my hosting Kubuntu :

```
docker exec -it lar_nginx_nginx sh
Error response from daemon: Container fc8de90773b28e205f1471440f8f997b8fa5e462a390b9e0eb7b1aba0cfb9047 is not running

```

But in my bash I enter with command :

```
docker-compose exec web bash

```

What is wrong ?

**UPDATED BLOCK # 4 :**

I remade nginx block in docker-compose.yml:

nginx:
image: nginx:1.19-alpine
container\_name: lar\_nginx\_nginx
restart: always
ports:
- '8081:80'

```
volumes:
    - ./nginx/default.conf:/etc/nginx/conf.d/default.conf

depends_on:
    - web

```

and in default.conf :

```
http {

    index index.php;
    client_max_body_size 20M;
    memory_limit    4048M;
    file_uploads    On;
    upload_max_filesize  200M;
    post_max_size   200M;
    max_execution_time  1000;
    short_open_tag  On;

    server {
        listen 80;
        error_log /var/log/nginx/error.log;
        access_log /var/log/nginx/access.log;
        error_page 404 /index.php;

        root /var/www/LAR-NGINX_docker_root/public;

        location ~ \.php$ {
            try_files $uri $uri/ =404;
            fastcgi_pass lar_nginx_web:8081;
            fastcgi_index index.php;
            fastcgi_pass app:8081;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }

        location  / { # catch any non php files
            try_files $uri $uri/ /index.php?$query_string;
            gzip_static on;
        }

    }

}

```

But I see errors in log :

```
master@master-laptop:/_wwwroot/lar/lar-nginx/DOCKER$ docker logs --tail=50  lar_nginx_nginx
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf differs from the packaged version
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2021/10/01 13:24:26 [emerg] 1#1: "http" directive is not allowed here in /etc/nginx/conf.d/default.conf:1
nginx: [emerg] "http" directive is not allowed here in /etc/nginx/conf.d/default.conf:1
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf differs from the packaged version
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2021/10/01 13:25:27 [emerg] 1#1: "http" directive is not allowed here in /etc/nginx/conf.d/default.conf:1
nginx: [emerg] "http" directive is not allowed here in /etc/nginx/conf.d/default.conf:1
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf differs from the packaged version
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2021/10/01 13:26:27 [emerg] 1#1: "http" directive is not allowed here in /etc/nginx/conf.d/default.conf:1
nginx: [emerg] "http" directive is not allowed here in /etc/nginx/conf.d/default.conf:1
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf differs from the packaged version
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2021/10/01 13:27:28 [emerg] 1#1: "http" directive is not allowed here in /etc/nginx/conf.d/default.conf:1
nginx: [emerg] "http" directive is not allowed here in /etc/nginx/conf.d/default.conf:1
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf differs from the packaged version
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2021/10/01 13:28:29 [emerg] 1#1: "http" directive is not allowed here in /etc/nginx/conf.d/default.conf:1
nginx: [emerg] "http" directive is not allowed here in /etc/nginx/conf.d/default.conf:1

```

looking at link <https://www.nginx.com/resources/wiki/start/topics/examples/server_blocks/>
and relared examples I do not see any structure errors...

Thanks!