macos 下写 PHP ,有什么方便的环境部署方式吗?

2022-04-02 17:38:41 +08:00
 gongquanlin

因为要同时写多个项目,不同域名,每次都手动配置 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

3806 次点击
所在节点    PHP
31 条回复
kestrelBright
2022-04-02 17:41:57 +08:00
docker composer 一劳永逸
skiy
2022-04-02 18:19:35 +08:00
???字太多,反而不太明白需求重点了。

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
skiy
2022-04-02 18:20:41 +08:00
netwok_mode -> network_mode
imnpc
2022-04-02 18:33:22 +08:00
1. laravel 官方维护的 Homestead 需要虚拟机
2. MAMP PRO 付费的
Vitta
2022-04-02 18:48:07 +08:00
mamp pro
vainl1
2022-04-02 19:00:03 +08:00
chenxu
2022-04-02 19:06:45 +08:00
mamp pro
changz
2022-04-02 19:24:01 +08:00
xphp -S 127.0.0.1:8000 server.php 🐶
lybcyd
2022-04-02 19:40:11 +08:00
laravel 吗?用 laravel valet 吧,可以自动 serve 一个文件夹下所有项目,并配置好 project.test 域名
JaguarJack
2022-04-02 19:45:51 +08:00
本地开发的话,就使用 docker ,一个项目一个端口号。而且不需要 web 服务器,php -s 就能满足了
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 。
cooper
2022-04-02 20:02:19 +08:00
Valet + PHP Monitor 香得很!
cooper
2022-04-02 20:04:47 +08:00
zhouxelf
2022-04-02 20:10:55 +08:00
Laradock
sunhuawei
2022-04-02 20:54:09 +08:00
1 楼正解,docker compose ,一个 nginx 容器,一个 php-fpm 容器,nginx 配置多个域名+php-fpm 的容器多个文件映射就能实现一个域名对应一个项目。我就这样同时挂载了 10 个左右项目

想折腾就再起个 redis 容器。不想折腾直接 php-fpm 容器里装一个,通过 docker compose 定义安装步骤
wangnimabenma
2022-04-02 21:18:12 +08:00
ghoul5426
2022-04-02 22:20:08 +08:00
楼主是在 macOS 下需要同时配置多个项目的开发环境吧

Nginx 或 Apache 都可以配置多个虚拟主机(使用不同域名),不就行了么,怎么绕这么远。。。

还是我没听懂楼主的需求。
Magician
2022-04-02 22:27:19 +08:00
valet homestead
xiaoz
2022-04-02 22:31:33 +08:00
其实我的建议是花几十块钱买个云服务器,安装个宝塔,然后 VSCODE 远程开发,换电脑了也不怕。或者装到内网虚拟机也行。
vacker
2022-04-02 22:57:23 +08:00
楼主你想麻烦了,Valet + PHP Monitor 完美,还可以自己选 PHP 版本

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/844605

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX