【问题标题】:Laradock: multiple projects on localhostLaradock:本地主机上的多个项目
【发布时间】:2020-06-08 17:08:00
【问题描述】:

我已经安装了 Laradock,但无法在 localhost 上设置多个项目进行开发。

1) 克隆 Laradock git repo

git clone https://github.com/Laradock/laradock.git

2) 创建多个项目文件夹

- laradock
- new-project
  ﹂index.php
- test-project
  ﹂index.php

3) 为每个项目设置 Nginx 配置文件

laradock/nginx/sites/new-project.conf

server {

    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    server_name ~^(?<project>.+)\.laradock\.dev$;
    root /var/www/$project;
    index index.php index.html index.htm;
...
}

laradock/nginx/sites/test-project.conf 的配置相同

4) 撰写

docker-compose up -d nginx mysql phpmyadmin


结果 Nginx 容器失败:

$ docker ps -a
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                     PORTS                                                                                                    NAMES
3189cee03979        laradock_nginx        "/bin/bash /opt/star…"   6 seconds ago       Exited (1) 4 seconds ago                                                                                                            laradock_nginx_1
b078751511b4        laradock_php-fpm      "docker-php-entrypoi…"   6 seconds ago       Up 5 seconds               9000/tcp                                                                                                 laradock_php-fpm_1
e4c2eab1cd2b        laradock_phpmyadmin   "/docker-entrypoint.…"   8 seconds ago       Up 6 seconds               0.0.0.0:8081->80/tcp                                                                                     laradock_phpmyadmin_1
d2f5ce2fdda4        laradock_workspace    "/sbin/my_init"          8 seconds ago       Up 6 seconds               0.0.0.0:3000-3001->3000-3001/tcp, 0.0.0.0:8080->8080/tcp, 0.0.0.0:2222->22/tcp, 0.0.0.0:8001->8000/tcp   laradock_workspace_1
40da6b9cfdd5        laradock_mysql        "docker-entrypoint.s…"   8 seconds ago       Up 7 seconds               0.0.0.0:3306->3306/tcp, 33060/tcp                                                                        laradock_mysql_1
7963bf244ca6        docker:19.03-dind     "dockerd-entrypoint.…"   8 seconds ago       Up 7 seconds               2375-2376/tcp                                                                                            laradock_docker-in-docker_1

但是,如果我从 nginx/sites 中删除配置文件并只保留其中一个工作,即test-project.conf,它就像一个项目一样工作正常。我在地址栏中输入localhost 并正确加载页面以防万一nginx/sites 中有一个配置文件但不是两个或更多。

如何正确设置 Nginx 配置文件以处理 localhost 上的多个项目?有没有办法硬编码server_name 值而不是使用变量$project

【问题讨论】:

    标签: php laravel docker nginx laradock


    【解决方案1】:

    我为每个新配置复制了 default.conf 文件。在每个新创建的 conf 文件中,我需要删除 ssl ipv6only=on 部分

    从此: 听 443 ssl; 听 [::]:443 ssl ipv6only=on;

    对此: 听 443 ssl; 听 [::]:443;

    我发现它是因为 reddit 上的这个帖子: https://www.reddit.com/r/laravel/comments/9ubn31/laradock_nginx_issue_for_multi_site_configuration/

    现在我工作正常。希望这会有所帮助。

    【讨论】:

    • 这个答案值得一吃!
    猜你喜欢
    • 1970-01-01
    • 2015-07-09
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多