docker 中 nginx 配置文件遇到麻烦

Docker 中 docker pull nginx 后 想启动Laravel 项目, 但是配置文件无法修改。
我用目录挂载的方式把容器里面的default.conf 文件拉出来了, 但是修改完没有反应, php文件无法读取。

这是我运行的指令

docker run -d --name web-blog -p 80:80 -v /mnt/d/docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /mnt/d/docker/nginx/logs:/var/log/nginx -v /var/www/blog/public:/usr/share/nginx/html -v /mnt/d/docker/nginx/conf:/etc/nginx/conf.d --privileged=true nginx

default.conf 配置如下

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    location / {
        root   /var/wwww/blog/public;
        index  index.html index.htm index.php;
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        include        fastcgi_params;
    }

}

是不是我糊涂了,还是真的有问题

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

好像 php配置中的 fastcgi_pass 你没搭建网络的话 ,需要手动关联两个容器 然后 填写 php 容器名的 不是写127.0.0.1

location ~ \.php$ {
        root           html;
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
        include        fastcgi_params;
    }
3年前 评论
Developer (楼主) 3年前
讨论数量: 7

问题描述有点模糊。看起来你是pull个nginx镜像,然后用这个镜像部署laravel项目。 你先确定下你的容器有没php运行环境吧

3年前 评论

root /var/wwww/blog/public; 应该写你容器里面的目录吧

3年前 评论

nginx 修改配置文件需要 nginx -s reload

3年前 评论

配置文件映射的时候遇到了问题, laradock 配置环境很是头疼,不能访问本地的文件目录,映射也出现了问题

3年前 评论

好像 php配置中的 fastcgi_pass 你没搭建网络的话 ,需要手动关联两个容器 然后 填写 php 容器名的 不是写127.0.0.1

location ~ \.php$ {
        root           html;
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
        include        fastcgi_params;
    }
3年前 评论
Developer (楼主) 3年前

1.检查nginx和php-fpm 是否在启动 2.检查nginx.conf中的root 路径是否正确 3.检查php-fpm的端口是否正确 4.你拉去的是nginx镜像,是没有php-fpm的吧。如果没有php-fpm的话,就白扯了

3年前 评论
Developer (楼主) 3年前
aa24615

127.0.0.1:9000; 这里是本地网络 你nginx里有php-fpm? 一般的做法是php另外一个容器 然后关联网络

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!