因为要同时写多个项目,不同域名,每次都手动配置 nginx 太麻烦了,有没有什么更好的方式? 现在的做法是:docker 启动了个 centos 镜像,端口映射 80 端口到主机的 8080 端口,然后在里面跑了个宝塔,然后宝塔新建网站绑定域名之后,母鸡在修改 hosts ,母鸡的 nginx 直接转发到本机的 8080 端口访问;
有时候机器意外重启,都要重新启动 docker ,因为系统限制,还要进 centos 启动 bt 、nginx 、redis ,开发太麻烦了;
如果直接用 docker ,还需要手动绑定母鸡 nginx ,而且还得挨个配置 docker 端口,麻烦的一批
有没有什么优雅的方式或者 macos 的 app ,能和 win 上的 phpstudy 一样,快乐的管理域名和开发环境?
macos 的 phpstudy 就不要说了……
写 springboot 和 go 的时候因为可以 debug ,本身不用 nginx 转发到 phpfpm 就方便的很
实在不行就只能解析一个域名到 127.0.0.1 ,然后用 laravel 的php artisan serve
+上 host 去绑定了~
另外 go 有没有能解析 nginx 配置的库?可以的话直接手搓一个 nginx 的管理工具了~看了下 nginx 的 conf 不是啥标准格式,不知道该咋解析 T.T
1
kestrelBright 2022-04-02 17:41:57 +08:00
docker composer 一劳永逸
|
2
skiy 2022-04-02 18:19:35 +08:00 via iPhone
???字太多,反而不太明白需求重点了。
docker compose up -d docker-compose.yml 上使用 netwok_mode 为 host ,command 参数 指向一个 启动 bt 的脚本。 --- 另外,可能也不需要用到 bt 啊。直接去找个 nginx-php 的镜像就好了。或者自己组装一个。 参考 https://github.com/webysther/packagist-mirror/blob/master/docker-compose.yml |
3
skiy 2022-04-02 18:20:41 +08:00 via iPhone
netwok_mode -> network_mode
|
4
imnpc 2022-04-02 18:33:22 +08:00
1. laravel 官方维护的 Homestead 需要虚拟机
2. MAMP PRO 付费的 |
5
Vitta 2022-04-02 18:48:07 +08:00
mamp pro
|
6
vainl1 2022-04-02 19:00:03 +08:00
nginx 配置管理: https://github.com/schenkd/nginx-ui
|
7
chenxu 2022-04-02 19:06:45 +08:00 via Android
mamp pro
|
8
changz 2022-04-02 19:24:01 +08:00
xphp -S 127.0.0.1:8000 server.php 🐶
|
9
lybcyd 2022-04-02 19:40:11 +08:00 via Android
laravel 吗?用 laravel valet 吧,可以自动 serve 一个文件夹下所有项目,并配置好 project.test 域名
|
10
JaguarJack 2022-04-02 19:45:51 +08:00 via iPhone
本地开发的话,就使用 docker ,一个项目一个端口号。而且不需要 web 服务器,php -s 就能满足了
|
11
findex 2022-04-02 19:55:21 +08:00
macos 下如果只是简单的配置开发环境,直接用 mamp 就可以了。不过目前好像只有 x86 版本的,arm64 版本的还没看到。用的 x86 的 mamp 环境包,比较耗费内存。
如果是 devops 还涉及到服务器部署的话,直接用 docker 套吧。写个 docker yaml ,开发部署 CI/CD 一套完成。我在 M1 上用的 docker 跑的 x86 镜像,有性能损失,但是打包后放到 x86 linux 服务器上目前没啥问题。如果你的服务器是 arm64 的,那最好了,服务器目前还是 x86 主流。另外说一句,mysql 在 m1 上用 arm64 的镜像有问题,不能成功运行,推荐使用 mariadb 。 |
12
cooper 2022-04-02 20:02:19 +08:00 1
Valet + PHP Monitor 香得很!
|
13
cooper 2022-04-02 20:04:47 +08:00 1
|
14
zhouxelf 2022-04-02 20:10:55 +08:00
Laradock
|
15
sunhuawei 2022-04-02 20:54:09 +08:00
1 楼正解,docker compose ,一个 nginx 容器,一个 php-fpm 容器,nginx 配置多个域名+php-fpm 的容器多个文件映射就能实现一个域名对应一个项目。我就这样同时挂载了 10 个左右项目
想折腾就再起个 redis 容器。不想折腾直接 php-fpm 容器里装一个,通过 docker compose 定义安装步骤 |
16
wangnimabenma 2022-04-02 21:18:12 +08:00
|
17
ghoul5426 2022-04-02 22:20:08 +08:00
楼主是在 macOS 下需要同时配置多个项目的开发环境吧
Nginx 或 Apache 都可以配置多个虚拟主机(使用不同域名),不就行了么,怎么绕这么远。。。 还是我没听懂楼主的需求。 |
18
Magician 2022-04-02 22:27:19 +08:00
valet homestead
|
19
xiaoz 2022-04-02 22:31:33 +08:00 via Android
其实我的建议是花几十块钱买个云服务器,安装个宝塔,然后 VSCODE 远程开发,换电脑了也不怕。或者装到内网虚拟机也行。
|
20
vacker 2022-04-02 22:57:23 +08:00 via Android 1
楼主你想麻烦了,Valet + PHP Monitor 完美,还可以自己选 PHP 版本
|
21
tlerbao 2022-04-02 23:08:23 +08:00
我是 docker ,dnmp:https://github.com/yeszao/dnmp
|
22
BeautifulSoap 2022-04-02 23:15:36 +08:00 via Android
?看了半天愣是没看懂 lz 到底想干嘛,难道 lz 你学了 docker 却根本没学 docker compose ?
而且你居然是起个 CentOS 容器,然后每次都手动在里面安装东西启动服务?你这样用 docker 是最错误的用法,建议先学学 docker compose 和怎么用 然后 docker 想无脑做 php 开发的话,直接用 php 官方的 php:apache 这个镜像,官方帮你维护好 php+apache 直接开箱即用(反正你只是开发 php ,web 服务器到底用 nginx 还是 apache 没差别) 以及 lz 说了半天绑域名是干嘛,你反正只是本地开发直接不同项目用不同的 docker compose 跑起来,然后绑定到不同端口( 8080 8081 8082 等等)不就行了。如果你一定要纠结绑域名这事 jwilder/nginx-proxy 这个镜像了解下,无需任何复杂配置就可以自动生成 nginx 配置,把域名绑定到对应 docker 容器。我一台服务器上跑的多个不同域名的网站都是通过这个镜像统一自动代理的 |
23
kingjpa 2022-04-02 23:27:08 +08:00
直接 php-cli run -p 8000 /8001 /8002 /8003 不就支持多个项目了吗??
|
24
815979670 2022-04-02 23:29:06 +08:00
如果要免费的面板的话 http://www.xsrvs.com/index.html
|
25
hingle 2022-04-03 10:36:47 +08:00
把 nginx 换成 traefik 试试?
|
26
panpanhtai 2022-04-03 11:56:11 +08:00 via iPhone
@xiaoz 相同办法,省心,让别人看项目还方便
|
27
MeetTheFuture 2022-04-03 12:47:56 +08:00
docker composer
|
28
qfdk 2022-04-03 14:02:38 +08:00 via iPhone
MacOS 啥版本啊? arm 的么 我给你打个包 看下我的管理程序吧 专门开发反代专用 有兴趣 pm 我 给你体验下.一直自用
|
29
DonDonc 2022-04-03 14:32:09 +08:00
我是在虚拟机里开一个 Ubuntu Server ,在虚拟机内部署,路由和端口使用 Clash 分流规则处理,这样对我而言比较灵活,虚拟机随时可以做快照,改网络设定也只要一行配置,而且 Clash 本身就是一直开着。不过我的项目比较简单,只是兼职帮别人处理一些简单问题。
|
30
smallgoogle 2022-04-03 16:05:16 +08:00
虚拟机吧。我觉得最好用。docker 真的好费劲啊。还不如跑一个虚拟机。
|
31
sunny168k123 2022-05-29 18:35:41 +08:00 via iPhone
本地环境,我之前用 docker 的时候 都是 nmpr 单独一个容器 用 docker-compose 配置 但是 docker 太占内存 我现在都用 homebrew
|