总结
豆包 AI 助手文章总结

Docker Compose部署LEMP环境报错“Primary script unknown”是什么原因?

霞舞
发布: 2025-02-23 09:06:11
原创
982人浏览过

Docker Compose 部署 LEMP 环境报错“Primary script unknown”解决方案

在使用 docker compose 部署 lemp (linux, nginx, mysql, php) 环境时,访问 php 文件出现 “primary script unknown” 错误?本文将分析问题根源并提供解决方案。

Docker Compose部署LEMP环境报错“Primary script unknown”是什么原因?

错误原因在于 Docker Compose 配置文件中,错误地重复挂载了宿主机的 /opt/html/ 目录。 Nginx 容器的 /etc/nginx/conf.d/default.conf 文件中,location 配置存在冲突:

location / {
    root   /usr/share/nginx/html/wordpress;
    index  index.php index.html;
}
location ~\.php$ {
    root /usr/share/nginx/html/;
    fastcgi_pass php-fpm01:9000;
    fastcgi_index index.php;
    fastcgi_param script_filename /var/www/html$fastcgi_script_name;
    include fastcgi_params;
}
登录后复制

由于 /opt/html/ 被同时挂载到 /usr/share/nginx/html/ 和 /usr/share/nginx/html/wordpress/ ,当访问如 /wp-admin/install.php 时,Nginx 会在两个位置同时查找,而 wordpress 目录位于 /usr/share/nginx/html/wordpress/ ,导致找不到 PHP 脚本,从而报错。

解决方案:

移除 Nginx 容器中冗余的挂载配置。 在 docker-compose.yml 文件中,删除 Nginx 服务的以下配置:

- /opt/html/:/usr/share/nginx/html
登录后复制

修改后的 docker-compose.yml 文件示例:

services:
  web01:
    container_name: nginx01
    depends_on:
      - "db01"
      - "php01"
    image: nginx:stable
    ports:
      - "8080:80"
    volumes:
      - /opt/conf/nginx/:/etc/nginx
    networks:
      - lnmp

  db01:
    container_name: mysql01
    image: mysql:5.7
    ports:
      - "3306:3306"
    volumes:
      - db_data:/var/lib/mysql
    env_file:
      - env.mysql
    networks:
      - lnmp

  php01:
    container_name: php-fpm01
    image: vphp:7.3-fpm
    ports:
      - "9000:9000"
    volumes:
      - /opt/conf/php-fpm/php-fpm.d:/usr/local/etc/php-fpm.d
      - /opt/html/:/var/www/html
    networks:
      - lnmp
    privileged: true

volumes:
  db_data:
    external: false
networks:
  lnmp:
    external: false
登录后复制

执行 docker-compose up -d 命令重新部署 LEMP 环境,即可解决 “primary script unknown” 错误。 确保 /opt/html/ 只在 PHP-FPM 容器中被正确挂载。 如果问题仍然存在,请检查 Nginx 配置文件中的 root 指令是否正确指向你的项目根目录。

以上就是Docker Compose部署LEMP环境报错“Primary script unknown”是什么原因?的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
豆包 AI 助手文章总结
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号