AMH面板何时支持PostgreSQL?Node.js18+PostgreSQL14环境配置问题?

新手上路,请多包涵

请问什么时候能支持postgresql呢?
这个非常需要,源码环境需要他,希望能支持,使用AMH面板9年了,喜欢的他的克制,不盲目跟,但是有点过于克制,实在有点落后了;
例如我的环境需求是 Node.js18+PostgreSQL14+Nginx反向代理构建,
AMH 面板本身无直接配合使用Node/PostgreSQL 这两个很麻烦

尝试过用AI帮我处理,但是都处理的并不理想网站出现404错误,也没修复好

阅读 761
avatarAI BotBETA

关于AMH面板对PostgreSQL的支持及Node.js 18+环境配置问题,以下是详细解答:

1. AMH面板对PostgreSQL的支持现状

  • 截至2024年7月,AMH面板(最新版本为 AMH 7.x)仍未原生支持 PostgreSQL。官方文档和社区反馈均显示其核心数据库管理仍以 MySQL/MariaDB 为主。
  • 替代方案

    • 手动安装 PostgreSQL:可通过SSH登录服务器独立安装并管理PostgreSQL 14:

      # 安装PostgreSQL官方源
      sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
      wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/trusted.gpg.d/pgdg.asc
      sudo apt update
      sudo apt install postgresql-14
      # 配置用户与数据库
      sudo -u postgres psql -c "CREATE USER amh_user WITH PASSWORD 'your_password';"
      sudo -u postgres psql -c "CREATE DATABASE amh_db OWNER amh_user;"
    • 管理工具:使用 pgAdmin 或命令行工具 psql 管理数据库。
  • AMH未来支持计划
    官方未公开PostgreSQL支持时间表。建议通过 AMH社区工单系统GitHub Issue 提交需求(链接:https://github.com/amh-sh),推动开发优先级。

2. Node.js 18+ 环境配置指南

AMH面板默认不提供Node.js管理模块,需手动部署:

# 安装Node.js 18.x
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs

# 验证安装
node -v  # 应输出 v18.x
npm -v

# 部署项目(示例)
cd /home/wwwroot/your_domain
npm install
npm run build  # 若为SSR应用

3. Nginx反向代理配置(解决404错误)

在AMH的Nginx管理界面中,为你的Node.js应用添加以下代理配置:

server {
  listen 80;
  server_name your_domain.com;

  location / {
    proxy_pass http://localhost:3000;  # 指向Node.js应用端口
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
  }
}

关键排查点

  • 确保Node.js应用已在 localhost:3000(或自定义端口)运行。
  • 检查AMH防火墙是否开放了Node.js所用端口(如 3000)。
  • 若使用HTTPS,需在AMH中申请SSL证书并配置443端口转发。

4. AMH生态的局限性建议

  • 优势:轻量、简洁、资源占用低,适合传统PHP+MySQL环境。
  • 不足:对现代技术栈(Node.js/PostgreSQL)支持滞后,需较多手动操作。
  • 过渡方案

    • 使用 Docker 容器化部署PostgreSQL和Node.js(需服务器安装Docker引擎)。
    • 考虑混合管理:AMH处理Web服务(Nginx/PHP),独立运维Node.js/PostgreSQL。

总结

虽然AMH暂不支持PostgreSQL,但您完全可通过手动部署实现需求

  1. 独立安装PostgreSQL 14,用外部工具管理。
  2. 手动配置Node.js 18+环境。
  3. 用AMH的Nginx模块做反向代理。

若追求开箱即用的体验,可评估其他支持多数据库的面板(如 宝塔国际版HestiaCP),但需权衡资源占用和安全性。建议持续关注AMH GitHub的动态,社区需求增多可能推动功能更新。

1 个回答

AMH软件商店中主要的网站环境是lnmp、lamp、lngx,其它环境软件可以在容器部署,
要PostgreSQL14的话,在AMH面板『容器』点击创建,填写:

docker run -d --name postgres14 -e POSTGRES_USER=test -e POSTGRES_PASSWORD=test_passwd -e POSTGRES_DB=test_db -p 5432:5432  -v /home/usrdata/postgresql-14:/var/lib/postgresql/data postgres:14

执行即可,另需其它版本相应修改,上面的
test用户、test_db数据库、test_passwd密码,改成自己需要的。
其它应用也可以,反向代理就安装lngx使用。

node18例如,运行本机的/home/usrdata/nodeapp/项目,index.js是有监听了3001端口。

docker run -d  --name nodeapp -p 3001:3001 -v /home/usrdata/nodeapp:/usr/src/nodeapp -w /usr/src/nodeapp node:18 sh -c "node index.js"

lngx添加网站主机即80、443,反向代理相应3001端口的地址就好。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题