Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to deploy a nextjs application on cpanel?

I followed these steps to deploy my nextjs on cPanel.

  1. go to package.json and add this line: "homepage": "http://afsanefadaei.ir"

  2. run next build to have .next folder as my build folder

  3. go to cpanel >> file manager >> public_html folder and upload the contetn of .next folder to this directory

  4. add or edit this file: .htaccess to:

    enter image description here

but when I go to the website I face this:

enter image description here

Do you know what is wrong with this?

like image 999
Afsanefda Avatar asked May 10 '26 07:05

Afsanefda


2 Answers

I uploaded out (which gets generated doing npm run build && npm run export) folder to public_html and created .htaccess file like

<IfModule mod_rewrite.c>

  RewriteEngine On
  RewriteBase /
  RewriteRule ^index.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-L
  RewriteRule . /index.html [L]

</IfModule>

It worked for me 😁

Problem: When I refresh the page on some different route let's say /about, it brings the index.js page contents but URL doesn't change to /

like image 125
Saurav Gupta Avatar answered May 11 '26 21:05

Saurav Gupta


  1. Your .next doesn't have index.html file.
  2. Seems like you have server side (mostly using nodejs), but unfortunately you couldn't run that server side from cpanel.
  3. As I know, you should use next export instead of next build if you tend to have frontend side only.

But the most important thing is number 1, make sure you have index.html inside your .next folder.

like image 35
Darryl RN Avatar answered May 11 '26 21:05

Darryl RN