如何将 Next.js APP 部署到 cPanel(指南)
已发表: 2023-07-17- 什么是 Next.js
- 什么是 cPanel
- 将 Next.js 应用程序部署到 cPanel
- 将 NextJs 部署到 cPanel 的优点和缺点
- 常见问题解答
- 其他资源
- 结论
学习以无缝且有效的方式在 cPanel 上部署 Next.js 应用程序。 我将逐步指导您完成此过程。
在深入研究之前,我们先来了解一下 Next.js 和 cPanel 是什么,以防您对这些术语不熟悉。
什么是 Next.js
Next.js 是一个简洁的框架,基于 React.js。 在构建服务器端渲染 (SSR) 应用程序时,它是一个向导。 React.js 默认只支持制作单页应用程序(SPA)。 然而,Next.js 凭借其极具吸引力的 SSR 功能跃居前列。 还有什么? Next.js 具有基于文件的路由系统以及其他优点。
什么是 cPanel
转向 cPanel。 将其视为简化服务器管理的软件。 它为您带来了许多工具。 文件管理器、数据库管理器和域名管理器只是几个示例。
现在我们已经与 Next.js 和 cPanel 交上了朋友,让我们继续我们的主要任务:在 cPanel 上部署 Next.js 应用程序。 假设您有一个 Next.js 应用程序、一个带有 cPanel 的 Web 主机以及一个链接的域名,让我们继续吧。
将 Next.js 应用程序部署到 cPanel
步骤 1 :首先设置自定义 Next.js 服务器。 您需要在项目的根目录中有一个 server.js 文件,其中填充了所需的代码。 查找官方 Next.js 指南寻求帮助。
const { createServer } = require('http') const { parse } = require('url') const next = require('next') const dev = process.env.NODE_ENV !== 'production' const hostname = 'localhost' const port = 3000 // when using middleware `hostname` and `port` must be provided below const app = next({ dev, hostname, port }) const handle = app.getRequestHandler() app.prepare().then(() => { createServer(async (req, res) => { try { // Be sure to pass `true` as the second argument to `url.parse`. // This tells it to parse the query portion of the URL. const parsedUrl = parse(req.url, true) const { pathname, query } = parsedUrl if (pathname === '/a') { await app.render(req, res, '/a', query) } else if (pathname === '/b') { await app.render(req, res, '/b', query) } else { await handle(req, res, parsedUrl) } } catch (err) { console.error('Error occurred handling', req.url, err) res.statusCode = 500 res.end('internal server error') } }) .once('error', (err) => { console.error(err) process.exit(1) }) .listen(port, () => { console.log(`> Ready on http://${hostname}:${port}`) }) })
第 2 步:调整 package.json 文件。 此步骤使环境“生产就绪”并激活 server.js 文件。
{ "scripts": { "start": "NODE_ENV=production node server.js" } }
第 3 步:构建 Next.js 应用程序。 您可以在终端中使用npm run build或yarn run build命令来执行此操作。
第 4 步:构建后,在文件管理器中找到 Next.js 项目文件。 如果您没有看到隐藏文件,请打开可见性。 避免使用 node_modules 和 .git 文件夹、README.md 和 .gitignore 文件。 选择所有其他文件和文件夹,然后创建一个 ZIP 文件。
第 5 步:现在,登录您的 cPanel 虚拟主机。 将 ZIP 文件上传并解压到您域名的根文件夹中。
第 6 步:您的项目文件已准备就绪。 前往 cPanel 中的软件部分。 单击“设置 Node.js 应用程序”,然后单击“+ 创建应用程序”按钮。 设置 Node.js 应用程序,记住 Node.js 版本、生产应用程序模式、应用程序根目录、URL 和启动文件 (server.js)。

单击“创建”完成。 一旦创建,请停止一段时间。 向下滚动到“检测到的配置文件”部分。 运行 NPM Install 以获取所有 Node.js 包。 最后,单击启动应用程序。

就这样吧! 在浏览器中打开您的域名。 您的 Next.js 应用程序现已上线。 部署成功,干得好!
分享这种在 cPanel 上部署 Next.js 应用程序的方法是一种乐趣。 祝你好运,编码愉快!
将 NextJs 部署到 cPanel 的优点和缺点
将 Next.js 应用程序部署到 cPanel 具有多种优势。 以下是一些需要考虑的优点和缺点。
优点:
- 用户友好:cPanel 提供易于使用的图形界面,简化了部署过程。
- 自动化:cPanel 包含许多自动化工具,可以处理创建数据库、管理网站文件、设置电子邮件等任务。
- 多功能性:cPanel 支持广泛的应用程序,包括 Node.js 应用程序,例如使用 Next.js 构建的应用程序。
缺点:
- 灵活性有限:虽然 cPanel 易于使用,但由于其简化的界面,有时会限制灵活性和对服务器环境的控制。
- 潜在的兼容性问题:一些用户报告在共享托管平台上部署 Next.js 应用程序时出现问题,例如在构建过程中遇到错误。
常见问题解答
在 cPanel 上托管 Next.js 网站具有多种优势,例如节省成本和保留 Next.js 功能。 但是,有一些限制需要注意。 例如,cPanel不支持Serverless功能和自动静态优化。 在 cPanel 上托管的决定应基于个人偏好和业务需求。
.htaccess 文件配置是在 cPanel 上部署 Next.js 应用程序的关键部分。 该文件控制服务器在遇到某些条件时的行为。 示例中提供的具体配置有助于正确处理请求和重定向。
如果您在 cPanel 上部署 Next.js 应用程序时遇到崩溃或重定向问题,一种解决方案可能是在根文件夹中创建一个名为 app.js 的启动文件。 在这种情况下,您需要将应用程序作为 Node.js 应用程序运行。
在 cPanel 上部署 Next.js 应用程序时可以禁用图像优化,但提供的信息中未包含确切的说明。 具体步骤请参考Next.js官方文档或相关教程。
其他资源
最佳 Next.JS 托管提供商
最佳 Node.js 托管提供商
结论
虽然将 Next.js 应用程序部署到 cPanel 可能会遇到一些挑战,但好处往往大于缺点。 cPanel 提供的简单性和自动化使部署过程变得简单且易于管理,即使对于刚接触该过程的开发人员也是如此。 通过本指南,您现在应该能够更好地将 Next.js 应用程序部署到 cPanel。

作为 Codeless 的联合创始人之一,我带来了开发 WordPress 和 Web 应用程序的专业知识,以及有效管理托管和服务器的记录。 我对获取知识的热情以及对构建和测试新技术的热情驱使我不断创新和改进。
专业知识:
Web开发,
网页设计,
Linux系统管理,
搜索引擎优化
经验:
拥有 15 年 Web 开发经验,开发和设计了一些最流行的 WordPress 主题,例如 Specular、Tower 和 Folie。
教育:
我拥有工程物理学学位以及材料科学和光电子学理学硕士学位。
推特、领英