加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (https://www.0358zz.com/)- 行业物联网、运营、专有云、管理运维、大数据!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux下H5开发环境搭建与数据库配置指南

发布时间:2026-10-12 12:01:16 所属栏目:Linux 来源:DaWei
导读:  去年三月那会儿,前端说要在Linux上搭H5开发环境,我原以为就是装个Node.js配个Nginx的事儿——结果运维甩过来一台裸机,说“你自己搞吧,数据库也得自己配”。我盯着屏幕上的命令行,突然想起上周产品经理说“这个需求两

  去年三月那会儿,前端说要在Linux上搭H5开发环境,我原以为就是装个Node.js配个Nginx的事儿——结果运维甩过来一台裸机,说“你自己搞吧,数据库也得自己配”。我盯着屏幕上的命令行,突然想起上周产品经理说“这个需求两周内必须上线”,手机还亮了一下,是测试组的消息:“你们新接口QPS挺高啊,别崩了”。

  先说H5开发环境。我直接按网上教程装Node.js,结果`npm install`卡在`fetchMetadata`上,等了十分钟没动静。前端在群里喊:“是不是镜像源没换?”我查了`npm config get registry`,显示`https://registry.npmjs.org/`,确实慢。改用淘宝源后,`install`倒是快了,可`webpack`编译时又报错,说`node-sass`版本不兼容。我原以为降级Node.js版本就行,结果降完发现`npm`版本又低了,`package-lock.json`里全是冲突。最后前端甩过来一个`nvm`的安装脚本,说“用这个切换版本吧”。我一边敲`nvm install 14.17.0`一边骂:“早说啊,害我重装了三回系统!”

  咖啡凉了,我转头看运维,他正盯着工单系统,键盘声噼里啪啦响。我问:“数据库怎么配?”他说:“MySQL 8.0,自己装。”我查了文档,发现8.0的默认认证插件从`mysql_native_password`改成了`caching_sha2_password`,前端连不上,报`Access denied for user 'root'@'localhost'`。我改`/etc/my.cnf`,加`default_authentication_plugin=mysql_native_password`,重启MySQL,结果服务起不来,日志里全是`Unknown/unsupported storage engine: InnoDB`。我原以为是配置文件写错了,结果运维说:“你装的MySQL是社区版,可能缺依赖。”我`yum install`了一堆包,重启了三回,终于能连了——可前端又说:“密码能不能别用明文?我们用Sequelize连,得改`auth_socket`。”我盯着屏幕上的`ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';`,突然觉得这行命令比我们写的接口逻辑还复杂。

  窗外天黑了,我翻到旧同事的朋友圈,他去年离职时发了张图,配文“终于不用再配开发环境了”。我点了个赞,继续改`nginx.conf`。前端说H5要支持HTTPS,我`certbot`申请了证书,结果`nginx`配置里`ssl_certificate`和`ssl_certificate_key`的路径写反了,浏览器报`NET::ERR_CERT_INVALID`。我查了半天,发现是`certbot`生成的证书在`/etc/letsencrypt/live/`下,而我写成了`/etc/ssl/`。改完重启`nginx`,前端说:“现在访问404。”我查日志,发现`root`指令指向的目录不对——原来前端把静态文件放在了`/var/www/html/dist`,而我配的是`/var/www/html`。我`mkdir`建目录,`chown`改权限,终于能访问了——可产品经理又跳出来:“首页加载太慢,优化下!”

  其实说白了,Linux下H5开发环境搭建和数据库配置,拼的就是“优胜劣汰”——谁能先扛住那些莫名其妙的报错,谁就能活下来。我见过有人用Docker一键部署,结果容器里网络不通;也见过有人手写脚本,结果依赖冲突满天飞。我原以为这些坑网上都有答案,结果搜到的教程要么过时,要么缺关键步骤。比如`node-sass`的兼容性问题,网上有人说“降级Node.js”,有人说“用`dart-sass`”,可没人说“得先删`node_modules`再重新`install`”。还有MySQL的认证插件,官方文档写得清楚,可实际操作时,`caching_sha2_password`和`mysql_native_password`的切换,能卡住半个下午。

  运维突然凑过来:“你数据库的`max_connections`调了没?前端说并发高。”我查了`SHOW VARIABLES LIKE 'max_connections';`,显示`151`。我原以为默认值够用,结果前端说:“我们测试时同时开了二十个标签页,直接报`Too many connections`。”我改`/etc/my.cnf`,加`max_connections=500`,重启MySQL,结果服务又起不来——这次是`innodb_buffer_pool_size`设得太大,内存不够。我调小了点,终于能用了。可前端又说:“缓存策略得改,不然并发高时数据库压力大。”我盯着`EXPLAIN`的输出,突然想起上周排期会,产品经理说“这个功能下周必须上线”。

  现在回头看,这些坑其实都有规律:版本冲突、权限问题、配置遗漏。可当时就是卡在那儿,查半天不知道哪儿错了。我甚至怀疑是不是自己太菜——直到看到前端也在群里吐槽:“我本地Windows配H5环境也卡了半天,`npm install`报错,`webpack`编译慢,最后装了WSL才解决。”原来大家都一样,优胜劣汰的从来不是技术,是耐心。谁先崩溃,谁就输。

文章配图,仅供参考

  下一步怎么查?我打算把这次踩的坑整理成文档,丢到内网Wiki上——虽然可能没人看,但至少下次前端再让我配环境时,我能甩个链接过去:“自己看,别问我。”至于数据库的并发优化,我查了`SHOW STATUS LIKE 'Threads_connected';`,没细看,先让前端把缓存策略改了再说。至于H5环境,我偷偷装了`nvm`和`Docker`,万一再出问题,直接拉镜像跑——虽然我知道,新的坑可能已经在路上了。

(编辑:站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章