我已经安装了Laradock,但是无法在localhost上设置多个项目进行开发。
1)克隆Laradock git repogit 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配置文件以处理本地主机上的多个项目?有什么方法可以硬编码
server_name
值,而不是使用变量$project
吗?
最佳答案
我为每个新配置复制了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/
现在我工作正常。希望这可以帮助。
关于php - Laradock:本地主机上的多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61142300/