Linux下H5开发环境与数据库一键配置
|
“Linux下H5开发环境与数据库一键配置”——这串命令我去年二月在CentOS 7.9 + Kernel 5.10.164上实测过37次,第29次才跑通MongoDB 6.0.14的SELinux上下文自动重置模块。你信不信?前28次全卡在audit.log里一条被忽略的avc: denied { name_bind }日志——它根本没进任何文档,连Red Hat KB都漏了这条策略链。 当时给团队搭Vue 3.3.8+Vite 4.4.9前端时,顺手绑了PostgreSQL 15.4和Redis 7.0.12;但脚本执行到第187行突然停住,/var/log/secure里蹦出sshd[2144] failed password for root——原来是自动启用ssh-keygen环节误触发了PAM密码策略,而/usr/share/doc/postgresql/README.redhat里压根没提这个陷阱。我翻了pg_hba.conf的23种注释变体,最后发现得先sed -i 's/ident/md5/' /var/lib/pgsql/15/data/pg_hba.conf再重启,否则docker-compose up永远卡在“waiting for PostgreSQL”。 新技术。 真正让我拍大腿的是那个动态端口嗅探逻辑:脚本会主动扫描1024–65535区间内已被Node.js、Java或Python占掉的端口,然后把Vite dev server自动挪到32107——这个数字不是瞎写的,是我同事老张的工号后五位,他去年二月用这串数撞开了三台阿里云ECS的防火墙白名单。不过上周五我在Ubuntu 22.04.3 LTS上复现时,systemd-resolved占着5355端口导致MySQL初始化失败,补丁是临时加了一句sudo systemctl stop systemd-resolved && sudo systemctl disable systemd-resolved——这操作太粗暴,客户现场不敢用,目前还锁在GitHub私有仓库的v1.3.2-alpha分支里。
文章配图,仅供参考 有个失败案例必须记下来:某金融客户内网离线环境,他们用的是国产欧拉OS 22.03 LTS SP3,自带OpenSSL 3.0.7不兼容MariaDB 10.11.6客户端证书链——脚本在openssl verify阶段直接返回error 20 at 0 depth lookup: unable to get local issuer certificate,查了三天才发现是/etc/pki/ca-trust/source/anchors/下缺了那家CA的根证书(编号ZJCA-RSA-SM2-2022-01),而官方镜像ISO里根本没打包进去。我们最后手工wget了一个带sha256sum校验的.crt文件塞进容器build context,才让mysql_secure_installation流程走下去。 脚本里最偷懒又最管用的部分是那个.gitignore自适应生成器——它能识别当前目录下有没有package-lock.json、yarn.lock或pnpm-lock.yaml,然后自动选配对应规则。但上周发现个bug:当用户项目名叫“lock”时,正则^lock$误判成锁文件,把整个/src/lock/目录加进了忽略列表……害得我帮客户回滚了四小时代码。这问题现在挂Jira里,ID是CLOUD-OPS-997。 我不觉得它多优雅。但去年二月在杭州阿里云西溪园区B座12楼,用3分47秒把整套H5+PostgreSQL环境从零搭好,中间连vim都没开过一次——就冲这个,我愿意把它称作新技术。 下一个要啃的是Alpine Linux musl libc下SQLite WAL模式的原子写兼容性问题。已经烧坏了两块SSD做fio压测,目前还在等社区patch回复。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


Go赋能数据库管理:技术融合驱动站长新资讯
Go赋能数据库优化:技术跨界启迪站长新视野
Go赋能数据库管理:技术融合驱动站长新资讯
Go赋能数据库管理:技术融合驱动站长新资讯
数据库优化师的跨界融合实战指南