Php 未找到文件-Docker中的Nginx 描述
我有一个docker容器 nginx.confPhp 未找到文件-Docker中的Nginx 描述,php,laravel,docker,nginx,docker-compose,Php,Laravel,Docker,Nginx,Docker Compose,我有一个docker容器 nginx.conf server { listen 80; index index.php index.html; root /var/www/public; location / { try_files $uri /index.php?$args; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$;
server {
listen 80;
index index.php index.html;
root /var/www/public;
location / {
try_files $uri /index.php?$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
docker compose.yaml
version: '2'
services:
# The Application
app:
build:
context: ./
dockerfile: app.dockerfile
working_dir: /var/www
volumes:
- ./:/var/www
environment:
- "DB_PORT=3306"
- "DB_HOST=database"
# The Web Server
web:
build:
context: ./
dockerfile: web.dockerfile
working_dir: /var/www
volumes_from:
- app
ports:
- 85:80
# The Database
database:
image: mysql:5.6
volumes:
- dbdata:/var/lib/mysql
environment:
- "MYSQL_DATABASE=homestead"
- "MYSQL_USER=homestead"
- "MYSQL_PASSWORD=secret"
- "MYSQL_ROOT_PASSWORD=secret"
ports:
- "33062:3306"
volumes:
dbdata:
码头工人似乎建造并开始成功
docker-compose up -d
docker_app_1 is up-to-date
docker_database_1 is up-to-date
Recreating docker_web_1 ...
Recreating docker_web_1 ... done
但我一直在
找不到文件
如何调试它?使用docker exec启动容器-它是xxxxxx bash
一旦你这样做,你将在容器内。现在根据docker compose文件检查文件是否位于要放置它们的位置 所有卷和其他目录设置理想情况下都指向同一位置。在nginx.conf中有root/var/www/public;但在yal中,您使用/var/www。这可能是您的问题 至于要继续执行的步骤,您可以在旋转docker-compose.yml文件后使用以下命令检查服务实际使用的目录:
docker compose exec yourServiceName sh
用您在yaml中定义的任何服务替换您的ServiceName。因此,应用程序,网络或数据库在您的yaml以上。该命令将带您进入指定容器的shell(sh)。您也可以用其他命令替换sh来执行容器中的其他操作。您介意共享docker compose文件吗?@Sergiu:根据要求,我在帖子中包含了我的docker-compose.yaml。@kyo您有什么解决方案吗?我也收到了类似的错误什么是xxxxxx?这是码头工人的身份证吗?或pid?使用“docker ps”或“docker ps-a”将生成docker容器列表。查找容器的ID。xxxxxx是容器id。=>“docker exec-it bash”