<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Nguyễn Hoàng Minh, Tác giả tại Hướng dẫn TENTEN</title>
	<atom:link href="https://help.tenten.vn/author/minhnh2/feed/" rel="self" type="application/rss+xml" />
	<link>https://help.tenten.vn/author/minhnh2/</link>
	<description>Tài liệu hỗ trợ khách hàng</description>
	<lastBuildDate>Wed, 06 May 2026 16:04:06 +0000</lastBuildDate>
	<language>vi</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://help.tenten.vn/wp-content/uploads/2023/09/favicontenten.png</url>
	<title>Nguyễn Hoàng Minh, Tác giả tại Hướng dẫn TENTEN</title>
	<link>https://help.tenten.vn/author/minhnh2/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Hướng dẫn sử dụng Vibe Code Hosting</title>
		<link>https://help.tenten.vn/huong-dan-su-dung-vibe-code-hosting/</link>
		
		<dc:creator><![CDATA[Nguyễn Hoàng Minh]]></dc:creator>
		<pubDate>Wed, 06 May 2026 06:45:03 +0000</pubDate>
				<category><![CDATA[AI Hosting]]></category>
		<category><![CDATA[Kiến thức chung]]></category>
		<category><![CDATA[deploy code 1 click]]></category>
		<category><![CDATA[hosting ai code]]></category>
		<category><![CDATA[hosting nodejs viet nam]]></category>
		<category><![CDATA[hosting plesk nodejs]]></category>
		<category><![CDATA[nodejs hosting]]></category>
		<category><![CDATA[tenten hosting]]></category>
		<category><![CDATA[vibe code hosting]]></category>
		<guid isPermaLink="false">https://help.tenten.vn/?p=14573</guid>

					<description><![CDATA[<p>Ở bài viết này TENTEN sẽ hướng dẫn các bạn cách sử dụng Vibe Code Hosting mới nhất tại Tenten. Vibe Code Hosting là sản phẩm mới nhất tại Tenten để bạn có thể deploy source code được tạo từ AI hoặc source code với các framewok sử dụng Node.JS một cách nhanh chóng. Bước 1:Cấu &#8230;</p>
<p>Bài viết <a href="https://help.tenten.vn/huong-dan-su-dung-vibe-code-hosting/">Hướng dẫn sử dụng Vibe Code Hosting</a> đã xuất hiện đầu tiên vào ngày <a href="https://help.tenten.vn">Hướng dẫn TENTEN</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Ở bài viết này TENTEN sẽ hướng dẫn các bạn cách sử dụng <a href="https://tenten.vn/vi/hosting/vibe-code-hosting">Vibe Code Hosting</a> mới nhất tại Tenten.</p>
<p>Vibe Code Hosting là sản phẩm mới nhất tại Tenten để bạn có thể deploy source code được tạo từ AI hoặc source code với các framewok sử dụng Node.JS một cách nhanh chóng.</p>
<p><strong><span style="font-size: 18pt;">Bước 1:Cấu hình và trỏ domain về hosting</span></strong></p>
<ul>
<li>Bạn vui lòng truy cập bài viết <a href="https://help.tenten.vn/huong-dan-cau-hinh-dns-tai-tenten/">Tại đây</a> để cấu hình trỏ domain về phía hosting.</li>
</ul>
<p><strong><span style="font-size: 18pt;">Bước 2 : Truy cập vào Vibe Code Hosting.</span></strong></p>
<p>Sau khi đăng nhập, bạn vui lòng click vào plugin sau có tên là &#8220;Tenten 1-Click Lauch Website&#8221;</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-14577 size-full" src="https://help.tenten.vn/wp-content/uploads/2026/05/b2.png" alt="" width="1918" height="919" srcset="https://help.tenten.vn/wp-content/uploads/2026/05/b2.png 1918w, https://help.tenten.vn/wp-content/uploads/2026/05/b2-300x144.png 300w, https://help.tenten.vn/wp-content/uploads/2026/05/b2-1024x491.png 1024w, https://help.tenten.vn/wp-content/uploads/2026/05/b2-768x368.png 768w, https://help.tenten.vn/wp-content/uploads/2026/05/b2-1536x736.png 1536w" sizes="auto, (max-width: 1918px) 100vw, 1918px" /></p>
<p><span style="font-size: 18pt;"><strong>Bước 3: Tiến hành tạo dự án đầu tiên</strong></span></p>
<p>Khi vào plugin, bạn có thể bấm &#8220;Tạo dự án đầu tiên&#8221; hoặc &#8220;Thêm dự án&#8221; để bắt đầu tạo.</p>
<p>bạn chọn phương thức upload mã nguồn là qua file zip hoặc qua github</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-14578 size-full" src="https://help.tenten.vn/wp-content/uploads/2026/05/b3.png" alt="" width="1403" height="570" srcset="https://help.tenten.vn/wp-content/uploads/2026/05/b3.png 1403w, https://help.tenten.vn/wp-content/uploads/2026/05/b3-300x122.png 300w, https://help.tenten.vn/wp-content/uploads/2026/05/b3-1024x416.png 1024w, https://help.tenten.vn/wp-content/uploads/2026/05/b3-768x312.png 768w" sizes="auto, (max-width: 1403px) 100vw, 1403px" /></p>
<p><span style="font-size: 18pt;"><strong>Bước 3.1: Với phương thức triển khai bằng cách upload file zip</strong></span></p>
<p>Với phương thức triển khai bằng file zip, hãy chắc chắn rằng source code của bạn nằm ở thư mục gốc, không phải nằm trong thư mục con.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-14579 size-full" src="https://help.tenten.vn/wp-content/uploads/2026/05/b3.1.png" alt="" width="1674" height="456" srcset="https://help.tenten.vn/wp-content/uploads/2026/05/b3.1.png 1674w, https://help.tenten.vn/wp-content/uploads/2026/05/b3.1-300x82.png 300w, https://help.tenten.vn/wp-content/uploads/2026/05/b3.1-1024x279.png 1024w, https://help.tenten.vn/wp-content/uploads/2026/05/b3.1-768x209.png 768w, https://help.tenten.vn/wp-content/uploads/2026/05/b3.1-1536x418.png 1536w" sizes="auto, (max-width: 1674px) 100vw, 1674px" /></p>
<p>Sau đó bạn kéo thả file zip vào vùng chọn hoặc bấm vào vùng chọn để chọn file zip</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-14580" src="https://help.tenten.vn/wp-content/uploads/2026/05/b3.1.1.png" alt="" width="1903" height="917" srcset="https://help.tenten.vn/wp-content/uploads/2026/05/b3.1.1.png 1903w, https://help.tenten.vn/wp-content/uploads/2026/05/b3.1.1-300x145.png 300w, https://help.tenten.vn/wp-content/uploads/2026/05/b3.1.1-1024x493.png 1024w, https://help.tenten.vn/wp-content/uploads/2026/05/b3.1.1-768x370.png 768w, https://help.tenten.vn/wp-content/uploads/2026/05/b3.1.1-1536x740.png 1536w" sizes="auto, (max-width: 1903px) 100vw, 1903px" /></p>
<p>Sau đó bạn bấm chọn tên miền, nếu bạn muốn tạo sub-domain trong plugin luôn, bạn chọn &#8220;Thêm mới sub domain hoặc domain&#8221; rồi bạn nhập đầy đủ sub-domain.</p>
<p>Cuối cùng, bạn bấm triển khai ngay và đợi plugin chạy, sau khi chạy xong, bạn sẽ nhận được thông báo &#8220;đã cài thành công dự án&#8221; là website của bạn đã sẵn sàng</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-14581" src="https://help.tenten.vn/wp-content/uploads/2026/05/b3.1.2.png" alt="" width="1918" height="918" srcset="https://help.tenten.vn/wp-content/uploads/2026/05/b3.1.2.png 1918w, https://help.tenten.vn/wp-content/uploads/2026/05/b3.1.2-300x144.png 300w, https://help.tenten.vn/wp-content/uploads/2026/05/b3.1.2-1024x490.png 1024w, https://help.tenten.vn/wp-content/uploads/2026/05/b3.1.2-768x368.png 768w, https://help.tenten.vn/wp-content/uploads/2026/05/b3.1.2-1536x735.png 1536w" sizes="auto, (max-width: 1918px) 100vw, 1918px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-14582" src="https://help.tenten.vn/wp-content/uploads/2026/05/b3.1.3.png" alt="" width="1906" height="916" srcset="https://help.tenten.vn/wp-content/uploads/2026/05/b3.1.3.png 1906w, https://help.tenten.vn/wp-content/uploads/2026/05/b3.1.3-300x144.png 300w, https://help.tenten.vn/wp-content/uploads/2026/05/b3.1.3-1024x492.png 1024w, https://help.tenten.vn/wp-content/uploads/2026/05/b3.1.3-768x369.png 768w, https://help.tenten.vn/wp-content/uploads/2026/05/b3.1.3-1536x738.png 1536w" sizes="auto, (max-width: 1906px) 100vw, 1906px" /></p>
<p><span style="font-size: 18pt;"><strong>Bước 3.2: Với phương thức upload qua github public repository</strong></span></p>
<p>*Với repository github công khai, bạn chỉ cần paste link git repository là được.</p>
<p>Các cấu hình khác, bạn làm tương tự như upload zip.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-14583" src="https://help.tenten.vn/wp-content/uploads/2026/05/b3.2.1.png" alt="" width="1919" height="918" srcset="https://help.tenten.vn/wp-content/uploads/2026/05/b3.2.1.png 1919w, https://help.tenten.vn/wp-content/uploads/2026/05/b3.2.1-300x144.png 300w, https://help.tenten.vn/wp-content/uploads/2026/05/b3.2.1-1024x490.png 1024w, https://help.tenten.vn/wp-content/uploads/2026/05/b3.2.1-768x367.png 768w, https://help.tenten.vn/wp-content/uploads/2026/05/b3.2.1-1536x735.png 1536w" sizes="auto, (max-width: 1919px) 100vw, 1919px" /></p>
<p><span style="font-size: 18pt;"><strong>Bước 3.3: Với phương thức upload qua github private repository</strong></span></p>
<p>Bạn làm tương tự như bước 3.2: upload qua github public repository, tuy nhiên, khi bạn bấm triển khai, bạn cần xác minh bạn có quyền truy cập vào repository đó bằng cách đăng nhập github.</p>
<p>Bạn copy mã xác thực rồi bấm mở trang đăng nhập:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-14584" src="https://help.tenten.vn/wp-content/uploads/2026/05/3.3.1.png" alt="" width="1889" height="914" srcset="https://help.tenten.vn/wp-content/uploads/2026/05/3.3.1.png 1889w, https://help.tenten.vn/wp-content/uploads/2026/05/3.3.1-300x145.png 300w, https://help.tenten.vn/wp-content/uploads/2026/05/3.3.1-1024x495.png 1024w, https://help.tenten.vn/wp-content/uploads/2026/05/3.3.1-768x372.png 768w, https://help.tenten.vn/wp-content/uploads/2026/05/3.3.1-1536x743.png 1536w" sizes="auto, (max-width: 1889px) 100vw, 1889px" /></p>
<p>Sau khi trang đăng nhập mở ra, bạn đăng nhập vào github rồi nhập mã xác thực bạn đã copy ở bước trên rồi bấm Tiếp tục/Continue:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-14585" src="https://help.tenten.vn/wp-content/uploads/2026/05/3.3.2.png" alt="" width="1919" height="918" srcset="https://help.tenten.vn/wp-content/uploads/2026/05/3.3.2.png 1919w, https://help.tenten.vn/wp-content/uploads/2026/05/3.3.2-300x144.png 300w, https://help.tenten.vn/wp-content/uploads/2026/05/3.3.2-1024x490.png 1024w, https://help.tenten.vn/wp-content/uploads/2026/05/3.3.2-768x367.png 768w, https://help.tenten.vn/wp-content/uploads/2026/05/3.3.2-1536x735.png 1536w" sizes="auto, (max-width: 1919px) 100vw, 1919px" /></p>
<p>Sau đó bạn click Authorize github để xác minh:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-14586" src="https://help.tenten.vn/wp-content/uploads/2026/05/3.3.3.png" alt="" width="1904" height="919" srcset="https://help.tenten.vn/wp-content/uploads/2026/05/3.3.3.png 1904w, https://help.tenten.vn/wp-content/uploads/2026/05/3.3.3-300x145.png 300w, https://help.tenten.vn/wp-content/uploads/2026/05/3.3.3-1024x494.png 1024w, https://help.tenten.vn/wp-content/uploads/2026/05/3.3.3-768x371.png 768w, https://help.tenten.vn/wp-content/uploads/2026/05/3.3.3-1536x741.png 1536w" sizes="auto, (max-width: 1904px) 100vw, 1904px" /></p>
<p>Nếu github có yêu cầu xác minh 2 bước, bạn hãy nhập mã xác minh 2 bước trên thiết bị hoặc mã gửi về email hoặc backup code, và github sẽ hiện Congratulations:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-14587" src="https://help.tenten.vn/wp-content/uploads/2026/05/3.3.4.png" alt="" width="969" height="561" srcset="https://help.tenten.vn/wp-content/uploads/2026/05/3.3.4.png 969w, https://help.tenten.vn/wp-content/uploads/2026/05/3.3.4-300x174.png 300w, https://help.tenten.vn/wp-content/uploads/2026/05/3.3.4-768x445.png 768w" sizes="auto, (max-width: 969px) 100vw, 969px" /></p>
<p>Sau đó, bạn quay trở lại trang quản trị hosting và bấm &#8220;Triển khai dự án ngay&#8221; thêm 1 lần nữa, nếu bấm triển khai mà vẫn yêu cầu xác minh, bạn chỉ cần bấm triển khai lại vì việc gửi thông tin xác thực từ github về sẽ mất một chút thời gian.</p>
<p>Cuối cùng, bạn vui lòng đợi tiến trình triển khai tự động hoàn tất là xong.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-14588" src="https://help.tenten.vn/wp-content/uploads/2026/05/3.3.5.png" alt="" width="1889" height="914" srcset="https://help.tenten.vn/wp-content/uploads/2026/05/3.3.5.png 1889w, https://help.tenten.vn/wp-content/uploads/2026/05/3.3.5-300x145.png 300w, https://help.tenten.vn/wp-content/uploads/2026/05/3.3.5-1024x495.png 1024w, https://help.tenten.vn/wp-content/uploads/2026/05/3.3.5-768x372.png 768w, https://help.tenten.vn/wp-content/uploads/2026/05/3.3.5-1536x743.png 1536w" sizes="auto, (max-width: 1889px) 100vw, 1889px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-14589" src="https://help.tenten.vn/wp-content/uploads/2026/05/3.3.6.png" alt="" width="1411" height="663" srcset="https://help.tenten.vn/wp-content/uploads/2026/05/3.3.6.png 1411w, https://help.tenten.vn/wp-content/uploads/2026/05/3.3.6-300x141.png 300w, https://help.tenten.vn/wp-content/uploads/2026/05/3.3.6-1024x481.png 1024w, https://help.tenten.vn/wp-content/uploads/2026/05/3.3.6-768x361.png 768w" sizes="auto, (max-width: 1411px) 100vw, 1411px" /></p>
<p><span style="font-size: 18pt;"><strong>Bước 4: Cài đặt bảo mật cho website</strong></span></p>
<p>Thông thường, website đã tự cài đặt chứng chỉ bảo mật trong quá trình triển khai.</p>
<p>Tuy nhiên, khi triển khai nếu bạn chưa cấu hình DNS ở bước 1 thì website chưa thể có chứng chỉ bảo mật, vì thế bạn sẽ cần cấu hình DNS, đợi các bản ghi phân giải rồi cấu hình.</p>
<p>Việc cấu hình chứng chỉ bảo mật trên Vibe Code Hosting chỉ cần 1 click, bạn chỉ cần click vào nút AutoSSL và đợi tiến trình chạy hoàn tất là được.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-14590" src="https://help.tenten.vn/wp-content/uploads/2026/05/4.png" alt="" width="1396" height="655" srcset="https://help.tenten.vn/wp-content/uploads/2026/05/4.png 1396w, https://help.tenten.vn/wp-content/uploads/2026/05/4-300x141.png 300w, https://help.tenten.vn/wp-content/uploads/2026/05/4-1024x480.png 1024w, https://help.tenten.vn/wp-content/uploads/2026/05/4-768x360.png 768w" sizes="auto, (max-width: 1396px) 100vw, 1396px" /></p>
<p><span style="font-size: 18pt;"><strong>Bước 5: Xác nhận lại thông tin</strong></span></p>
<p>Trên bảng điều khiển hiện đang có một số ký tự/emoji/icon, bạn có thể xem hình dưới đây để hiểu thêm:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-14591" src="https://help.tenten.vn/wp-content/uploads/2026/05/5.png" alt="" width="1838" height="828" srcset="https://help.tenten.vn/wp-content/uploads/2026/05/5.png 1838w, https://help.tenten.vn/wp-content/uploads/2026/05/5-300x135.png 300w, https://help.tenten.vn/wp-content/uploads/2026/05/5-1024x461.png 1024w, https://help.tenten.vn/wp-content/uploads/2026/05/5-768x346.png 768w, https://help.tenten.vn/wp-content/uploads/2026/05/5-1536x692.png 1536w" sizes="auto, (max-width: 1838px) 100vw, 1838px" /></p>
<p>Về các chức năng, trên bảng điều khiển hiện có một số nút chức năng có tác dụng như sau:</p>
<ol>
<li>Truy cập web: khi click sẽ tự động mở website của bạn ở tab mới.</li>
<li>Dừng: khi click website của bạn sẽ tạm dừng, khi truy cập sẽ hiện thông báo lỗi không có quyền truy cập</li>
<li>Khởi động lại: khi click website của bạn sẽ không thể truy cập khoảng 10s để restart NodeJS.</li>
<li>Đồng bô: chỉ xuất hiện khi bạn triển khai bằng git, hosting sẽ pull code từ git về để đồng bộ với phiên bản mới nhất</li>
<li>Chạy: chỉ xuất hiện khi bạn bấm dừng, khi click sẽ khởi động website đã bị tạm dừng</li>
<li>Xoá: chỉ xuất hiện khi bạn bấm dừng, khi click sẽ xoá toàn bộ source code của bạn trên hosting, dừng tiến trình Nodejs và tải lại trang mặc định của Plesk.</li>
<li>Xoá tất cả: chỉ xuất hiện khi bạn bấm dừng, chức năng sẽ tương tự như xoá nhưng xoá tất cả sẽ xoá cả tên miền/tên miền phụ của bạn</li>
</ol>
<p>Quý khách có thể tham khảo video sau: <a href="https://www.youtube.com/watch?v=pDJNcLLtrOo">https://www.youtube.com/watch?v=pDJNcLLtrOo</a></p>
<p>Trong bài viết này, Tenten đã hướng dẫn quý khách sử dụng Vibe Code Hosting.</p>
<p>Chúc các bạn thao tác thành công !</p>
<p>Bài viết <a href="https://help.tenten.vn/huong-dan-su-dung-vibe-code-hosting/">Hướng dẫn sử dụng Vibe Code Hosting</a> đã xuất hiện đầu tiên vào ngày <a href="https://help.tenten.vn">Hướng dẫn TENTEN</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Hướng Dẫn Sửa Lỗi FASTPANEL Không Khởi Động Sau Khi Tự Update</title>
		<link>https://help.tenten.vn/sua-loi-fastpanel-khong-khoi-dong-sau-update/</link>
		
		<dc:creator><![CDATA[Nguyễn Hoàng Minh]]></dc:creator>
		<pubDate>Fri, 13 Feb 2026 01:55:33 +0000</pubDate>
				<category><![CDATA[Cloud VPS]]></category>
		<category><![CDATA[Kiến thức chung]]></category>
		<category><![CDATA[cannot unmarshal into int fastpanel]]></category>
		<category><![CDATA[FastPanel]]></category>
		<category><![CDATA[fastpanel2.service failed]]></category>
		<guid isPermaLink="false">https://help.tenten.vn/?p=14521</guid>

					<description><![CDATA[<p>Hướng Dẫn Sửa Lỗi FASTPANEL Không Khởi Động Sau Khi Tự Update Đây là hướng dẫn sửa lỗi cho ubuntu 20.04, nếu bạn sử dụng phiên bản khác, vui lòng sửa file ubu20.yml thành phiên bản của bạn, ví dụ như ubuntu 22.04 thì file sẽ là ubu22.yml 1. Hiện tượng lỗi Khi kiểm tra &#8230;</p>
<p>Bài viết <a href="https://help.tenten.vn/sua-loi-fastpanel-khong-khoi-dong-sau-update/">Hướng Dẫn Sửa Lỗi FASTPANEL Không Khởi Động Sau Khi Tự Update</a> đã xuất hiện đầu tiên vào ngày <a href="https://help.tenten.vn">Hướng dẫn TENTEN</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><!-- Bài viết hướng dẫn sửa lỗi FASTPANEL (WordPress HTML) --></p>
<h1>Hướng Dẫn Sửa Lỗi FASTPANEL Không Khởi Động Sau Khi Tự Update</h1>
<p>Đây là hướng dẫn sửa lỗi cho ubuntu 20.04, nếu bạn sử dụng phiên bản khác, vui lòng sửa file ubu20.yml thành phiên bản của bạn, ví dụ như ubuntu 22.04 thì file sẽ là ubu22.yml</p>
<h2>1. Hiện tượng lỗi</h2>
<p>Khi kiểm tra log:</p>
<pre><code>journalctl -u fastpanel2 -n 50 --no-pager</code></pre>
<p>Xuất hiện lỗi:</p>
<pre><code>ERROR: Unable to load './config/modules' config:
Cannot parse 'config/modules/ubu20.yml' file:
yaml: unmarshal errors:

line 723: cannot unmarshal !!str `24.6.0` into int
line 729: cannot unmarshal !!str `23.11.1` into int
...</code></pre>
<p>Service liên tục restart:</p>
<pre><code>fastpanel2.service: Scheduled restart job, restart counter is at 129316</code></pre>
<p>FASTPANEL không thể khởi động.</p>
<h2>2. Nguyên nhân</h2>
<p>FASTPANEL tự động cập nhật lên phiên bản mới.</p>
<p>Trong file:</p>
<pre><code>/usr/local/fastpanel2/config/modules/ubu20.yml</code></pre>
<p>Các version NodeJS được khai báo dạng chuỗi, ví dụ:</p>
<pre><code>24.6.0
23.11.1
22.18.0</code></pre>
<p>Trong khi phiên bản FASTPANEL mới yêu cầu kiểu dữ liệu <strong>integer</strong> (major version), ví dụ:</p>
<pre><code>24
23
22</code></pre>
<p>Do sai kiểu dữ liệu nên YAML không parse được, dẫn tới service không khởi động.</p>
<p>Ngoài ra còn thiếu cột <code>site_id</code> trong database SQLite sau update.</p>
<h2>3. Cách Fix Chi Tiết</h2>
<h3>Bước 1: Backup file cấu hình</h3>
<pre><code>cp /usr/local/fastpanel2/config/modules/ubu20.yml \
   /usr/local/fastpanel2/config/modules/ubu20.yml.bak</code></pre>
<h3>Bước 2: Chuyển version NodeJS từ x.y.z về x</h3>
<p>Sửa các dòng dạng:</p>
<pre><code>nodejs 24.6.0:</code></pre>
<p>Thành:</p>
<pre><code>nodejs 24:</code></pre>
<p>Chạy lệnh:</p>
<pre><code>sed -i -E 's/nodejs ([0-9]+)\.[0-9]+\.[0-9]+:/nodejs \1:/g' \
/usr/local/fastpanel2/config/modules/ubu20.yml</code></pre>
<h3>Bước 3: Sửa format version trong YAML</h3>
<p>Chuyển:</p>
<pre><code>version: '24.6.0'</code></pre>
<p>Thành:</p>
<pre><code>version: 24</code></pre>
<p>Chạy:</p>
<pre><code>sed -i -E "s/version: '([0-9]+)\.[0-9]+\.[0-9]+'/version: \1/g" \
/usr/local/fastpanel2/config/modules/ubu20.yml</code></pre>
<h3>Bước 4: Restart FASTPANEL</h3>
<pre><code>systemctl restart fastpanel2</code></pre>
<p>Nếu vẫn chưa lên, tiếp tục bước sửa database.</p>
<h3>Bước 5: Backup database FASTPANEL</h3>
<pre><code>cp /usr/local/fastpanel2/app/db/fastpanel2.db \
   /usr/local/fastpanel2/app/db/fastpanel2.db.backup</code></pre>
<h3>Bước 6: Thêm cột thiếu trong SQLite</h3>
<p>Mở database:</p>
<pre><code>sqlite3 /usr/local/fastpanel2/app/db/fastpanel2.db</code></pre>
<p>Thêm cột:</p>
<pre><code>ALTER TABLE site_upstream_target ADD COLUMN site_id INTEGER;</code></pre>
<p>Thoát:</p>
<pre><code>.exit</code></pre>
<h3>Bước 7: Restart lại service</h3>
<pre><code>systemctl restart fastpanel2</code></pre>
<p>Kiểm tra trạng thái:</p>
<pre><code>systemctl status fastpanel2 --no-pager</code></pre>
<p>Nếu hiển thị:</p>
<pre><code>Active: active (running)</code></pre>
<p>Là đã fix thành công.</p>
<h2>4. Kết quả sau khi sửa</h2>
<p>Service chạy bình thường:</p>
<pre><code>Active: active (running)
Main PID: xxxx (fastpanel)</code></pre>
<p>FASTPANEL truy cập lại được bình thường.</p>
<h2>5. Khuyến nghị</h2>
<ul>
<li>Tắt auto update FASTPANEL nếu có thể.</li>
<li>Hoặc kiểm soát update các module trong thư mục:
<pre><code>/usr/local/fastpanel2/config/modules/</code></pre>
</li>
<li>Nên backup định kỳ:
<ul>
<li>Thư mục <code>/usr/local/fastpanel2</code></li>
<li>Database <code>/usr/local/fastpanel2/app/db/fastpanel2.db</code></li>
</ul>
</li>
</ul>
<p>Bài viết <a href="https://help.tenten.vn/sua-loi-fastpanel-khong-khoi-dong-sau-update/">Hướng Dẫn Sửa Lỗi FASTPANEL Không Khởi Động Sau Khi Tự Update</a> đã xuất hiện đầu tiên vào ngày <a href="https://help.tenten.vn">Hướng dẫn TENTEN</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cấu hình email tên miền với gmail</title>
		<link>https://help.tenten.vn/cau-hinh-email-ten-mien-voi-gmail/</link>
		
		<dc:creator><![CDATA[Nguyễn Hoàng Minh]]></dc:creator>
		<pubDate>Tue, 25 Nov 2025 04:04:20 +0000</pubDate>
				<category><![CDATA[Email Premium]]></category>
		<category><![CDATA[Email Pro]]></category>
		<category><![CDATA[Email Server]]></category>
		<category><![CDATA[Email ZShield]]></category>
		<guid isPermaLink="false">https://help.tenten.vn/?p=14491</guid>

					<description><![CDATA[<p>Để cấu hình email tên miền với gmail, trước hết bạn cần đăng ký email server với các nhà cung cấp, ví dụ như tenten. Sau đó bạn làm theo các bước dưới đây: Bước 1: ghi nhớ thông tin: Tên miền của bạn sẽ có dạng abc.com (thay bằng tên miền thật sự của &#8230;</p>
<p>Bài viết <a href="https://help.tenten.vn/cau-hinh-email-ten-mien-voi-gmail/">Cấu hình email tên miền với gmail</a> đã xuất hiện đầu tiên vào ngày <a href="https://help.tenten.vn">Hướng dẫn TENTEN</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Để cấu hình email tên miền với gmail, trước hết bạn cần đăng ký email server với các nhà cung cấp, ví dụ như tenten. Sau đó bạn làm theo các bước dưới đây:</h2>
<h4>Bước 1: ghi nhớ thông tin:</h4>
<p>Tên miền của bạn sẽ có dạng abc.com (thay bằng tên miền thật sự của bạn) và email là user@abc.com (thay bằng email thật sự của bạn), phần lớn các cấu hình email sẽ như nhau nên bạn sẽ cần ghi nhớ các thông tin như sau:<br />
Email: user@abc.com<br />
Username: user<br />
domain: mail.abc.com<br />
password: Password của bạn<br />
Port SMTP: 465<br />
Port POP3: 995</p>
<h4>Bước 2: Cấu hình hộp thư gửi đi</h4>
<p>Bạn vào phần cài đặt của gmail để cấu hình</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-14492 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/11/1.1-e1764040751410.png" alt="" width="387" height="919" srcset="https://help.tenten.vn/wp-content/uploads/2025/11/1.1-e1764040751410.png 387w, https://help.tenten.vn/wp-content/uploads/2025/11/1.1-e1764040751410-126x300.png 126w" sizes="auto, (max-width: 387px) 100vw, 387px" /></p>
<p>Sau đó bạn truy cập và cấu hình theo hình dưới để vào phần cài đặt và cấu hình email gửi đi là email server</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-14493 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/11/1.2.png" alt="" width="1922" height="965" srcset="https://help.tenten.vn/wp-content/uploads/2025/11/1.2.png 1922w, https://help.tenten.vn/wp-content/uploads/2025/11/1.2-300x151.png 300w, https://help.tenten.vn/wp-content/uploads/2025/11/1.2-1024x514.png 1024w, https://help.tenten.vn/wp-content/uploads/2025/11/1.2-768x386.png 768w, https://help.tenten.vn/wp-content/uploads/2025/11/1.2-1536x771.png 1536w" sizes="auto, (max-width: 1922px) 100vw, 1922px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-14495 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_1.png" alt="" width="616" height="580" srcset="https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_1.png 616w, https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_1-300x282.png 300w" sizes="auto, (max-width: 616px) 100vw, 616px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-14496 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_2.png" alt="" width="623" height="579" srcset="https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_2.png 623w, https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_2-300x279.png 300w" sizes="auto, (max-width: 623px) 100vw, 623px" /></p>
<p>Sau đó bạn sẽ nhận được yêu cầu xác nhận, bạn truy cập mail.abc.com (thay bằng tên miền thật sự của bạn) hoặc webmail.abc.com</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-14497 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_3.png" alt="" width="622" height="577" srcset="https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_3.png 622w, https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_3-300x278.png 300w" sizes="auto, (max-width: 622px) 100vw, 622px" /></p>
<p>Sau khi xác minh xong bạn sẽ thấy tuỳ chọn đặt email của bạn làm mặc định và bạn đã có thể gửi email bình thường</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-14498 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_4.png" alt="" width="1660" height="515" srcset="https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_4.png 1660w, https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_4-300x93.png 300w, https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_4-1024x318.png 1024w, https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_4-768x238.png 768w, https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_4-1536x477.png 1536w" sizes="auto, (max-width: 1660px) 100vw, 1660px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-14499" src="https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_5-295x300.png" alt="" width="295" height="300" srcset="https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_5-295x300.png 295w, https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_5.png 608w" sizes="auto, (max-width: 295px) 100vw, 295px" /></p>
<h4>Bước 3: Cấu hình nhận email đến bằng gmail:</h4>
<p>Trong phần tài khoản và nhập, có phần kiểm tra thư từ tài khoản khác, bạn bấm vào phần thêm tài khoản thư:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-14500 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_6.png" alt="" width="1534" height="542" srcset="https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_6.png 1534w, https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_6-300x106.png 300w, https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_6-1024x362.png 1024w, https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_6-768x271.png 768w" sizes="auto, (max-width: 1534px) 100vw, 1534px" /></p>
<p>Sau đó bạn làm từng bước giống hướng dẫn dưới đây:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-14502 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_7.png" alt="" width="552" height="527" srcset="https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_7.png 552w, https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_7-300x286.png 300w" sizes="auto, (max-width: 552px) 100vw, 552px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-14503 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_8.png" alt="" width="548" height="525" srcset="https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_8.png 548w, https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_8-300x287.png 300w" sizes="auto, (max-width: 548px) 100vw, 548px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-14501 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_9.png" alt="" width="551" height="526" srcset="https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_9.png 551w, https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_9-300x286.png 300w" sizes="auto, (max-width: 551px) 100vw, 551px" /></p>
<p>Sau khi nhập đủ thông tin và bấm thêm tài khoản, email của bạn sẽ được chuyển về gmail và sẽ được gắn nhãn riêng như dưới đây</p>
<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-14504" src="https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_10-135x300.png" alt="" width="135" height="300" srcset="https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_10-135x300.png 135w, https://help.tenten.vn/wp-content/uploads/2025/11/Screenshot_10.png 271w" sizes="auto, (max-width: 135px) 100vw, 135px" /></p>
<p>Chúc bạn thành công.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Bài viết <a href="https://help.tenten.vn/cau-hinh-email-ten-mien-voi-gmail/">Cấu hình email tên miền với gmail</a> đã xuất hiện đầu tiên vào ngày <a href="https://help.tenten.vn">Hướng dẫn TENTEN</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Hướng dẫn đăng nhập email server tenten trên iphone để đồng bộ cùng macbook</title>
		<link>https://help.tenten.vn/huong-dan-dang-nhap-email-server-tenten-tren-iphone-de-dong-bo-cung-macbook/</link>
		
		<dc:creator><![CDATA[Nguyễn Hoàng Minh]]></dc:creator>
		<pubDate>Fri, 15 Aug 2025 03:23:08 +0000</pubDate>
				<category><![CDATA[Email Premium]]></category>
		<category><![CDATA[Email Pro]]></category>
		<category><![CDATA[Email Server]]></category>
		<category><![CDATA[Email ZShield]]></category>
		<category><![CDATA[cài đặt email tenten trên apple mail]]></category>
		<category><![CDATA[cài đặt email tenten trên iphone]]></category>
		<category><![CDATA[cấu hình email tenten trên iphone]]></category>
		<category><![CDATA[cấu hình mail tenten imap iphone]]></category>
		<category><![CDATA[email hosting tenten]]></category>
		<category><![CDATA[hướng dẫn đăng nhập email tenten]]></category>
		<category><![CDATA[mail server tenten ios]]></category>
		<category><![CDATA[sử dụng email tenten trên thiết bị apple]]></category>
		<category><![CDATA[tenten email server]]></category>
		<category><![CDATA[tenten imap smtp]]></category>
		<category><![CDATA[thiết lập email tenten ios]]></category>
		<category><![CDATA[đăng nhập email tenten]]></category>
		<category><![CDATA[đồng bộ email tenten giữa iphone và macbook]]></category>
		<category><![CDATA[đồng bộ email tenten với macbook]]></category>
		<guid isPermaLink="false">https://help.tenten.vn/?p=14412</guid>

					<description><![CDATA[<p>Email Server riêng là gì ? Mail Server là hệ thống máy chủ mail được cấu hình riêng theo tên miền của doanh nghiệp, có đầy đủ thông số như một máy chủ thông thường như CPU, RAM, Storage,… Cấu hình Email trên iphone để đồng bộ với macbook Bước 1: Vào phần cài đặt trên &#8230;</p>
<p>Bài viết <a href="https://help.tenten.vn/huong-dan-dang-nhap-email-server-tenten-tren-iphone-de-dong-bo-cung-macbook/">Hướng dẫn đăng nhập email server tenten trên iphone để đồng bộ cùng macbook</a> đã xuất hiện đầu tiên vào ngày <a href="https://help.tenten.vn">Hướng dẫn TENTEN</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1><strong>Email Server riêng là gì ?</strong></h1>
<p><b>Mail Server</b> là hệ thống máy chủ mail được cấu hình riêng theo tên miền của doanh nghiệp, có đầy đủ thông số như một máy chủ thông thường như CPU, RAM, Storage,…</p>
<p><img loading="lazy" decoding="async" class="size-medium wp-image-14426 aligncenter" src="https://help.tenten.vn/wp-content/uploads/2025/08/computer-img-18102021-300x253.png" alt="" width="300" height="253" srcset="https://help.tenten.vn/wp-content/uploads/2025/08/computer-img-18102021-300x253.png 300w, https://help.tenten.vn/wp-content/uploads/2025/08/computer-img-18102021-768x648.png 768w, https://help.tenten.vn/wp-content/uploads/2025/08/computer-img-18102021.png 780w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<h2>Cấu hình Email trên iphone để đồng bộ với macbook</h2>
<h3>Bước 1: Vào phần cài đặt trên iphone</h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-14413 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_1.png" alt="" width="340" height="755" srcset="https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_1.png 340w, https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_1-135x300.png 135w" sizes="auto, (max-width: 340px) 100vw, 340px" /></p>
<h3>Bước 2: Chọn phần Ứng dụng, với nhưng máy sử dụng ios từ 16 trở xuống có thể bỏ qua bước này.</h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-14414 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_2.png" alt="" width="338" height="759" srcset="https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_2.png 338w, https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_2-134x300.png 134w" sizes="auto, (max-width: 338px) 100vw, 338px" /></p>
<h3>Bước 3: Chọn vào ứng dụng mail</h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-14415 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_3.png" alt="" width="341" height="764" srcset="https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_3.png 341w, https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_3-134x300.png 134w" sizes="auto, (max-width: 341px) 100vw, 341px" /></p>
<h3>Bước 4: Chọn &#8220;các tài khoản mail&#8221;</h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-14416 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_4.png" alt="" width="357" height="760" srcset="https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_4.png 357w, https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_4-141x300.png 141w" sizes="auto, (max-width: 357px) 100vw, 357px" /></p>
<h3>Bước 5: Chọn thêm tài khoản</h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-14417 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_5.png" alt="" width="335" height="759" srcset="https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_5.png 335w, https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_5-132x300.png 132w" sizes="auto, (max-width: 335px) 100vw, 335px" /></p>
<h3>Bước 6: Chọn Khác</h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-14418 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_6.png" alt="" width="352" height="758" srcset="https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_6.png 352w, https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_6-139x300.png 139w" sizes="auto, (max-width: 352px) 100vw, 352px" /></p>
<h3>Bước 7: Chọn Thêm tài khoản mail</h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-14419 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_7.png" alt="" width="376" height="768" srcset="https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_7.png 376w, https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_7-147x300.png 147w" sizes="auto, (max-width: 376px) 100vw, 376px" /></p>
<h3>Bước 8: Nhập thông tin và bấm tiếp</h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-14420 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_8.png" alt="" width="349" height="741" srcset="https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_8.png 349w, https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_8-141x300.png 141w" sizes="auto, (max-width: 349px) 100vw, 349px" /></p>
<h3>Bước 9: Nhập đầy đủ thông tin như hướng dẫn trong ảnh, sau đó bấm tiếp và đợi đăng nhập</h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-14421 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_9.png" alt="" width="674" height="756" srcset="https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_9.png 674w, https://help.tenten.vn/wp-content/uploads/2025/08/Screenshot_9-267x300.png 267w" sizes="auto, (max-width: 674px) 100vw, 674px" /></p>
<h3>Bước 10: Lưu</h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-14422 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/08/z6908051428218_198c6f28b6f812a00598631526d61ee4-scaled.jpg" alt="" width="1183" height="2560" srcset="https://help.tenten.vn/wp-content/uploads/2025/08/z6908051428218_198c6f28b6f812a00598631526d61ee4-scaled.jpg 1183w, https://help.tenten.vn/wp-content/uploads/2025/08/z6908051428218_198c6f28b6f812a00598631526d61ee4-139x300.jpg 139w, https://help.tenten.vn/wp-content/uploads/2025/08/z6908051428218_198c6f28b6f812a00598631526d61ee4-473x1024.jpg 473w, https://help.tenten.vn/wp-content/uploads/2025/08/z6908051428218_198c6f28b6f812a00598631526d61ee4-768x1662.jpg 768w, https://help.tenten.vn/wp-content/uploads/2025/08/z6908051428218_198c6f28b6f812a00598631526d61ee4-710x1536.jpg 710w, https://help.tenten.vn/wp-content/uploads/2025/08/z6908051428218_198c6f28b6f812a00598631526d61ee4-946x2048.jpg 946w" sizes="auto, (max-width: 1183px) 100vw, 1183px" /></p>
<h3>Bước 11: Quay lại màn hình chính, truy cập ứng dụng mail để kiểm tra.</h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-14423 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/08/12-scaled.jpg" alt="" width="1183" height="2560" srcset="https://help.tenten.vn/wp-content/uploads/2025/08/12-scaled.jpg 1183w, https://help.tenten.vn/wp-content/uploads/2025/08/12-139x300.jpg 139w, https://help.tenten.vn/wp-content/uploads/2025/08/12-473x1024.jpg 473w, https://help.tenten.vn/wp-content/uploads/2025/08/12-768x1662.jpg 768w, https://help.tenten.vn/wp-content/uploads/2025/08/12-710x1536.jpg 710w, https://help.tenten.vn/wp-content/uploads/2025/08/12-946x2048.jpg 946w" sizes="auto, (max-width: 1183px) 100vw, 1183px" /></p>
<p>Khi đăng nhập bằng ứng dụng mail trên, nếu macbook của bạn cùng dùng chung tài khoản icolud với iphone thì email sẽ tự đồng bộ sang mà không cần đăng nhập lại.</p>
<p>Bài viết <a href="https://help.tenten.vn/huong-dan-dang-nhap-email-server-tenten-tren-iphone-de-dong-bo-cung-macbook/">Hướng dẫn đăng nhập email server tenten trên iphone để đồng bộ cùng macbook</a> đã xuất hiện đầu tiên vào ngày <a href="https://help.tenten.vn">Hướng dẫn TENTEN</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Hướng dẫn tích hợp TenTen Domain API &#8211; Quản lý tên miền tự động 2025</title>
		<link>https://help.tenten.vn/huong-dan-tich-hop-tenten-domain-api-quan-ly-ten-mien-tu-dong-2025/</link>
		
		<dc:creator><![CDATA[Nguyễn Hoàng Minh]]></dc:creator>
		<pubDate>Fri, 13 Jun 2025 03:10:24 +0000</pubDate>
				<category><![CDATA[Đại Lý]]></category>
		<category><![CDATA[api tên miền]]></category>
		<category><![CDATA[dns api]]></category>
		<category><![CDATA[domain api vietnam]]></category>
		<category><![CDATA[domain registration api]]></category>
		<category><![CDATA[quản lý domain api]]></category>
		<category><![CDATA[tenten api]]></category>
		<category><![CDATA[tenten domain]]></category>
		<category><![CDATA[whois api]]></category>
		<category><![CDATA[đăng ký tên miền api]]></category>
		<guid isPermaLink="false">https://help.tenten.vn/?p=14397</guid>

					<description><![CDATA[<p>Mục lục 1. Tổng quan 2. Cấu hình 3. Các API Endpoints 4. Dữ liệu tham chiếu 5. Cách sử dụng 6. Ví dụ code mẫu 7. Lưu ý quan trọng 8. Xử lý lỗi 9. Bảo mật Tổng quan Dự án này cung cấp các API để tương tác với dịch vụ tên miền &#8230;</p>
<p>Bài viết <a href="https://help.tenten.vn/huong-dan-tich-hop-tenten-domain-api-quan-ly-ten-mien-tu-dong-2025/">Hướng dẫn tích hợp TenTen Domain API &#8211; Quản lý tên miền tự động 2025</a> đã xuất hiện đầu tiên vào ngày <a href="https://help.tenten.vn">Hướng dẫn TENTEN</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><span style="font-size: 24px; font-weight: bold;">Mục lục</span></p>
<div class="container">
<div class="toc">
<ul>
<li><a href="#overview">1. Tổng quan</a></li>
<li><a href="#configuration">2. Cấu hình</a></li>
<li><a href="#endpoints">3. Các API Endpoints</a></li>
<li><a href="#reference-data">4. Dữ liệu tham chiếu</a></li>
<li><a href="#usage">5. Cách sử dụng</a></li>
<li><a href="#examples">6. Ví dụ code mẫu</a></li>
<li><a href="#important-notes">7. Lưu ý quan trọng</a></li>
<li><a href="#error-handling">8. Xử lý lỗi</a></li>
<li><a href="#security">9. Bảo mật</a></li>
</ul>
</div>
<section id="overview">
<h1>Tổng quan</h1>
<p>Dự án này cung cấp các API để tương tác với dịch vụ tên miền của TenTen, bao gồm tìm kiếm, đăng ký, quản lý và gia hạn tên miền. API được thiết kế để dễ dàng tích hợp vào các hệ thống quản lý tên miền hiện có.</p>
</section>
<section id="configuration">
<h1>Cấu hình</h1>
<h2>Thiết lập API Credentials</h2>
<p>Trong file <code>apitenten.php</code>, bạn cần cấu hình các thông tin sau:</p>
<div class="code-example">
<pre><code>&lt;?php
define("API_KEY", "api key lay tu trang cau hinh");
define("API_USER", "api user lay tu trang cau hinh");  
define("API_URL", "url ket noi api lay tu trang cau hinh");
?&gt;</code></pre>
</div>
<h2>Class API Core</h2>
<p>File <code>apitenten.php</code> chứa class <code>apiTenTen</code> với phương thức <code>callApi()</code> để thực hiện các cuộc gọi API thông qua cURL.</p>
</section>
<section id="endpoints">
<h1>Các API Endpoints</h1>
<div class="api-endpoint">
<h3>1. Tìm kiếm tên miền (search.php)</h3>
<div class="endpoint-info">
<div class="endpoint-detail"><strong>Mục đích:</strong> Kiểm tra tên miền đã được đăng ký hay chưa</div>
<div class="endpoint-detail"><strong>Endpoint:</strong> <code>search.json</code></div>
</div>
<h4>Parameters:</h4>
<table class="parameters-table">
<thead>
<tr>
<th>Tham số</th>
<th>Mô tả</th>
<th>Bắt buộc</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>api_key</code></td>
<td>Key truy cập API</td>
<td>&#x2705;</td>
</tr>
<tr>
<td><code>api_user</code></td>
<td>User truy cập API</td>
<td>&#x2705;</td>
</tr>
<tr>
<td><code>domainName</code></td>
<td>Tên miền cần kiểm tra</td>
<td>&#x2705;</td>
</tr>
</tbody>
</table>
<div class="code-example">
<pre><code>$cmd = "search.json";
$dataRequest["api_key"] = API_KEY;
$dataRequest["api_user"] = API_USER;
$dataRequest["domainName"] = "tenten.vn";</code></pre>
</div>
</div>
<div class="api-endpoint">
<h3>2. Tra cứu thông tin Whois (whois.php)</h3>
<div class="endpoint-info">
<div class="endpoint-detail"><strong>Mục đích:</strong> Lấy thông tin whois của tên miền đã được đăng ký</div>
<div class="endpoint-detail"><strong>Endpoint:</strong> <code>whois.json</code></div>
</div>
<h4>Parameters:</h4>
<table class="parameters-table">
<thead>
<tr>
<th>Tham số</th>
<th>Mô tả</th>
<th>Bắt buộc</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>api_key</code></td>
<td>Key truy cập API</td>
<td>&#x2705;</td>
</tr>
<tr>
<td><code>api_user</code></td>
<td>User truy cập API</td>
<td>&#x2705;</td>
</tr>
<tr>
<td><code>domainName</code></td>
<td>Tên miền cần xem thông tin whois</td>
<td>&#x2705;</td>
</tr>
</tbody>
</table>
<div class="code-example">
<pre><code>$cmd = "whois.json";
$dataRequest["api_key"] = API_KEY;
$dataRequest["api_user"] = API_USER;
$dataRequest["domainName"] = "tenten.com";</code></pre>
</div>
</div>
<div class="api-endpoint">
<h3>3. &#x1f1fb;&#x1f1f3; Đăng ký tên miền .vn (registerdomainvn.php)</h3>
<div class="endpoint-info">
<div class="endpoint-detail"><strong>Mục đích:</strong> Đăng ký tên miền .vn</div>
<div class="endpoint-detail"><strong>Endpoint:</strong> <code>create.json</code></div>
</div>
<h4>Parameters chính:</h4>
<table class="parameters-table">
<thead>
<tr>
<th>Tham số</th>
<th>Mô tả</th>
<th>Giá trị</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>domainType</code></td>
<td>Loại đăng ký</td>
<td>&#8220;I&#8221; = cá nhân, &#8220;R&#8221; = tổ chức</td>
</tr>
<tr>
<td><code>domainName</code></td>
<td>Tên miền cần đăng ký</td>
<td>example.vn</td>
</tr>
<tr>
<td><code>domainYear</code></td>
<td>Số năm đăng ký</td>
<td>1, 2, 3&#8230;</td>
</tr>
</tbody>
</table>
<h4>DNS Settings:</h4>
<ul>
<li><code>domainDNS1</code>, <code>domainIP1</code>: DNS Primary</li>
<li><code>domainDNS2</code>, <code>domainIP2</code>: DNS Secondary 1</li>
<li><code>domainDNS3</code>, <code>domainIP3</code>: DNS Secondary 2</li>
</ul>
<h4>Thông tin chủ sở hữu (Owner):</h4>
<table class="parameters-table">
<thead>
<tr>
<th>Tham số</th>
<th>Mô tả</th>
<th>Format</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>ownerName</code></td>
<td>Tên người sử dụng</td>
<td>Nguyễn Văn A</td>
</tr>
<tr>
<td><code>ownerAddress</code></td>
<td>Địa chỉ</td>
<td>Số 1 Đào Duy Anh, Đống Đa</td>
</tr>
<tr>
<td><code>ownerBirthday</code></td>
<td>Ngày sinh</td>
<td>YYYY-MM-DD</td>
</tr>
<tr>
<td><code>ownerPersonID</code></td>
<td>Số CMND/CCCD</td>
<td>1111111111</td>
</tr>
<tr>
<td><code>ownerMail</code></td>
<td>Email</td>
<td>info@example.com</td>
</tr>
<tr>
<td><code>ownerPhone</code></td>
<td>Số điện thoại</td>
<td>+84-71089999</td>
</tr>
<tr>
<td><code>ownerCity</code></td>
<td>Mã tỉnh thành</td>
<td>HNI (Hà Nội)</td>
</tr>
<tr>
<td><code>ownerCountry</code></td>
<td>Mã quốc gia</td>
<td>VN (Việt Nam)</td>
</tr>
</tbody>
</table>
<div class="note-box">
<h4>Lưu ý:</h4>
<p>Thông tin người quản lý (Admin) có các trường tương tự như Owner nhưng với prefix <code>admin</code></p>
</div>
</div>
<div class="api-endpoint">
<h3>4. Đăng ký tên miền quốc tế (registerdomainqt.php)</h3>
<div class="endpoint-info">
<div class="endpoint-detail"><strong>Mục đích:</strong> Đăng ký tên miền quốc tế (.com, .net, .org, v.v.)</div>
<div class="endpoint-detail"><strong>Endpoint:</strong> <code>create.json</code></div>
</div>
<div class="note-box">
<h4>Lưu ý:</h4>
<p>Parameters tương tự như đăng ký .vn nhưng không yêu cầu thông tin admin</p>
</div>
</div>
<div class="api-endpoint">
<h3>5. Gia hạn tên miền (renew.php)</h3>
<div class="endpoint-info">
<div class="endpoint-detail"><strong>Mục đích:</strong> Gia hạn tên miền đã đăng ký</div>
<div class="endpoint-detail"><strong>Endpoint:</strong> <code>renew.json</code></div>
</div>
<h4>Parameters:</h4>
<table class="parameters-table">
<thead>
<tr>
<th>Tham số</th>
<th>Mô tả</th>
<th>Bắt buộc</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>api_key</code></td>
<td>Key truy cập API</td>
<td>&#x2705;</td>
</tr>
<tr>
<td><code>api_user</code></td>
<td>User truy cập API</td>
<td>&#x2705;</td>
</tr>
<tr>
<td><code>domainName</code></td>
<td>Tên miền cần gia hạn</td>
<td>&#x2705;</td>
</tr>
<tr>
<td><code>domainYear</code></td>
<td>Số năm cần gia hạn</td>
<td>&#x2705;</td>
</tr>
</tbody>
</table>
</div>
<div class="api-endpoint">
<h3>6. Thay đổi DNS (changednsdomain.php)</h3>
<div class="endpoint-info">
<div class="endpoint-detail"><strong>Mục đích:</strong> Thay đổi thông tin DNS của tên miền</div>
<div class="endpoint-detail"><strong>Endpoint:</strong> <code>nameserver.json</code></div>
</div>
<h4>Parameters:</h4>
<table class="parameters-table">
<thead>
<tr>
<th>Tham số</th>
<th>Mô tả</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>domainName</code></td>
<td>Tên miền cần thay đổi DNS</td>
</tr>
<tr>
<td><code>domainDNS1</code>, <code>domainIP1</code></td>
<td>DNS Primary mới</td>
</tr>
<tr>
<td><code>domainDNS2</code>, <code>domainIP2</code></td>
<td>DNS Secondary 1 mới</td>
</tr>
<tr>
<td><code>domainDNS3</code>, <code>domainIP3</code></td>
<td>DNS Secondary 2 mới</td>
</tr>
</tbody>
</table>
</div>
<div class="api-endpoint">
<h3>7. Lấy thông tin chi tiết tên miền (infodomain.php)</h3>
<div class="endpoint-info">
<div class="endpoint-detail"><strong>Mục đích:</strong> Lấy thông tin chi tiết của tên miền</div>
<div class="endpoint-detail"><strong>Endpoint:</strong> <code>info.json</code></div>
</div>
</div>
<div class="api-endpoint">
<h3>8. Danh sách tên miền (listdomain.php)</h3>
<div class="endpoint-info">
<div class="endpoint-detail"><strong>Mục đích:</strong> Lấy danh sách tên miền trong tài khoản</div>
<div class="endpoint-detail"><strong>Endpoint:</strong> <code>list.json</code></div>
</div>
</div>
</section>
<section id="reference-data">
<h1>Dữ liệu tham chiếu</h1>
<div class="reference-data">
<div class="reference-item">
<h4>Mã tỉnh thành Việt Nam</h4>
<p>File: <code>listProvinceVietnam.php</code></p>
<p><code>HNI: Hà Nội</code> <code>HCM: Hồ Chí Minh</code> <code>HPG: Hải Phòng</code> <code>DNK: Đà Nẵng</code></div>
<div class="reference-item">
<h4>Mã quốc gia</h4>
<p>File: <code>listCountry.php/listCountry.json</code></p>
<p><code>VN: Việt Nam</code> <code>US: United States</code> <code>GB: United Kingdom</code> <code>JP: Japan</code></div>
</div>
<h2>Dữ liệu địa danh hành chính</h2>
<p>Thư mục <code>dia_danh_hanh_chinh/</code> chứa các file dữ liệu về địa danh hành chính Việt Nam:</p>
<ul>
<li><code>location_provinces.csv/json</code>: Danh sách tỉnh thành</li>
<li><code>location_districts.csv/json</code>: Danh sách quận/huyện</li>
<li><code>location_wards.csv/json</code>: Danh sách phường/xã</li>
</ul>
</section>
<section id="usage">
<h1> Cách sử dụng</h1>
<ol>
<li><strong>Cấu hình API:</strong> Thiết lập <code>API_KEY</code>, <code>API_USER</code>, và <code>API_URL</code> trong file <code>apitenten.php</code></li>
<li><strong>Include file chính:</strong>
<div class="code-example">
<pre><code>require_once "apitenten.php";</code></pre>
</div>
</li>
<li><strong>Tạo request:</strong> Tạo mảng dữ liệu với các parameters cần thiết</li>
<li><strong>Gọi API:</strong> Sử dụng phương thức <code>$api-&gt;callApi($cmd, $request)</code></li>
<li><strong>Xử lý response:</strong> Parse JSON response và xử lý kết quả</li>
</ol>
</section>
<section id="examples">
<h1>Ví dụ code mẫu</h1>
<div class="success-box">
<h4>Ví dụ hoàn chỉnh &#8211; Kiểm tra tên miền</h4>
</div>
<div class="code-example">
<pre><code>&lt;?php
require_once "apitenten.php";

// Kiểm tra tên miền
$cmd = "search.json";
$dataRequest = array(
    "api_key" =&gt; API_KEY,
    "api_user" =&gt; API_USER,
    "domainName" =&gt; "example.vn"
);

$result = $api-&gt;callApi($cmd, $dataRequest);
$dataResult = json_decode($result, true);

if ($dataResult['status'] == 'success') {
    echo "Tên miền có thể đăng ký";
} else {
    echo "Tên miền đã được đăng ký";
}
?&gt;</code></pre>
</div>
</section>
<section id="important-notes">
<h1>Lưu ý quan trọng</h1>
<div class="warning-box">
<h4>Các điểm cần chú ý:</h4>
<ol>
<li><strong>Format số điện thoại:</strong> Phải theo định dạng quốc tế <code>+84-xxxxxxxx</code></li>
<li><strong>Format ngày sinh:</strong> Phải theo định dạng <code>YYYY-MM-DD</code></li>
<li><strong>Mã tỉnh thành và quốc gia:</strong> Phải sử dụng đúng mã trong các file tham chiếu</li>
<li><strong>DNS Settings:</strong> Cần cung cấp đầy đủ thông tin DNS khi đăng ký tên miền</li>
<li><strong>Domain Type:</strong> &#8220;I&#8221; cho cá nhân, &#8220;R&#8221; cho tổ chức</li>
</ol>
</div>
</section>
<section id="error-handling">
<h1>Xử lý lỗi</h1>
<p>Tất cả các API sẽ trả về response dạng JSON. Cần kiểm tra trường <code>status</code> để xác định kết quả thành công hay thất bại.</p>
<div class="code-example">
<pre><code>$dataResult = json_decode($result, true);

if ($dataResult['status'] == 'success') {
    // Xử lý khi thành công
    echo "Thao tác thành công: " . $dataResult['message'];
} else {
    // Xử lý khi có lỗi
    echo "Lỗi: " . $dataResult['error_message'];
}</code></pre>
</div>
</section>
<section id="security">
<h1>Bảo mật</h1>
<div class="warning-box">
<h4>Các nguyên tắc bảo mật:</h4>
<ul>
<li>Không chia sẻ <code>API_KEY</code> và <code>API_USER</code> công khai</li>
<li>Sử dụng HTTPS cho tất cả các cuộc gọi API</li>
<li>Validate dữ liệu đầu vào trước khi gửi request</li>
<li>Lưu trữ credentials trong file cấu hình riêng biệt</li>
<li>Sử dụng rate limiting để tránh spam API</li>
</ul>
</div>
</section>
<div class="footer">
<p>Link cấu hình chi tiết: https://id.tenten.vn/document_api/cauhinh.html</p>
<p>Danh mục API được cập nhập liên tục: https://id.tenten.vn/document_api/index.html</p>
</div>
</div>
<p>Bài viết <a href="https://help.tenten.vn/huong-dan-tich-hop-tenten-domain-api-quan-ly-ten-mien-tu-dong-2025/">Hướng dẫn tích hợp TenTen Domain API &#8211; Quản lý tên miền tự động 2025</a> đã xuất hiện đầu tiên vào ngày <a href="https://help.tenten.vn">Hướng dẫn TENTEN</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Hướng dẫn chạy NextJS trên cPanel</title>
		<link>https://help.tenten.vn/huong-dan-chay-nextjs-tren-cpanel/</link>
		
		<dc:creator><![CDATA[Nguyễn Hoàng Minh]]></dc:creator>
		<pubDate>Wed, 07 May 2025 10:08:09 +0000</pubDate>
				<category><![CDATA[Cpanel]]></category>
		<category><![CDATA[SSD Linux]]></category>
		<guid isPermaLink="false">https://help.tenten.vn/?p=14375</guid>

					<description><![CDATA[<p>1. Giới thiệu NextJS là công nghệ frontend hiện đại, được sử dụng rộng rãi để xây dựng các ứng dụng web nhanh, linh hoạt và tối ưu trải nghiệm người dùng. Tuy nhiên, khi cần triển khai ứng dụng NextJS lên môi trường cPanel hosting – vốn thường được thiết kế cho PHP – &#8230;</p>
<p>Bài viết <a href="https://help.tenten.vn/huong-dan-chay-nextjs-tren-cpanel/">Hướng dẫn chạy NextJS trên cPanel</a> đã xuất hiện đầu tiên vào ngày <a href="https://help.tenten.vn">Hướng dẫn TENTEN</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h4>1. Giới thiệu</h4>
<p><strong>NextJS</strong> là công nghệ frontend hiện đại, được sử dụng rộng rãi để xây dựng các ứng dụng web nhanh, linh hoạt và tối ưu trải nghiệm người dùng. Tuy nhiên, khi cần triển khai ứng dụng NextJS lên môi trường <strong>cPanel hosting</strong> – vốn thường được thiết kế cho PHP – nhiều người gặp phải không ít khó khăn, từ bước build cho đến cấu hình server.</p>
<p>Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách triển khai một ứng dụng NextJS lên cPanel một cách chi tiết và dễ hiểu. Dù bạn sử dụng shared hosting hay VPS có cài cPanel, bài viết sẽ cung cấp các bước cụ thể như: build ứng dụng, upload mã nguồn, cấu hình thư mục public và xử lý các vấn đề thường gặp.</p>
<p>Hướng dẫn này đặc biệt hữu ích với những ai muốn tận dụng hosting cPanel có sẵn thay vì thuê VPS hoặc server riêng để chạy ứng dụng Next.</p>
<h4>2. Chuẩn bị</h4>
<p>Bạn cần chuẩn bị sẵn source code ứng dụng NextJS đã được buid sẵn ở localhost bằng lệnh npm run build hoặc yarn build hoặc bun run build</p>
<p>Source code của bạn cần có file gốc để chạy, thường tên là server.js, kể cả bạn dùng vite hay typescript thì vẫn cần file này</p>
<p>Ví dụ nội dung file server.js:</p>
<p><code>const { createServer } = require('http')</code></p>
<p><code>const { parse } = require('url')</code></p>
<p><code>const next = require('next')</code></p>
<p><code>const dev = process.env.NODE_ENV !== 'production'</code></p>
<p><code>const hostname = 'localhost'</code></p>
<p><code>const port = process.env.PORT || 3000</code></p>
<p><code>// when using middleware `hostname` and `port` must be provided below</code></p>
<p><code>const app = next({ dev, hostname, port })</code></p>
<p><code>const handle = app.getRequestHandler()</code></p>
<p><code>app.prepare().then(() =&gt; {</code></p>
<p><code>createServer(async (req, res) =&gt; {</code></p>
<p><code>try {</code></p>
<p><code>// Be sure to pass `true` as the second argument to `url.parse`.</code></p>
<p><code>// This tells it to parse the query portion of the URL.</code></p>
<p><code>const parsedUrl = parse(req.url, true)</code></p>
<p><code>const { pathname, query } = parsedUrl</code></p>
<p><code>if (pathname === '/a') {</code></p>
<p><code>await app.render(req, res, '/a', query)</code></p>
<p><code>} else if (pathname === '/b') {</code></p>
<p><code>await app.render(req, res, '/b', query)</code></p>
<p><code>} else {</code></p>
<p><code>await handle(req, res, parsedUrl)</code></p>
<p><code>}</code></p>
<p><code>} catch (err) {</code></p>
<p><code>console.error('Error occurred handling', req.url, err)</code></p>
<p><code>res.statusCode = 500</code></p>
<p><code>res.end('internal server error')</code></p>
<p><code>}</code></p>
<p><code>})</code></p>
<p><code>.once('error', (err) =&gt; {</code></p>
<p><code>console.error(err)</code></p>
<p><code>process.exit(1)</code></p>
<p><code>})</code></p>
<p><code>.listen(port, () =&gt; {</code></p>
<p><code>console.log(`&gt; Ready on http://${hostname}:${port}`)</code></p>
<p><code>})</code></p>
<p><code>})</code></p>
<h4>3. Upload</h4>
<p>Bạn xóa folder node_modules, nhưng giữ lại folder sau khi đã build code, folder chuẩn để upload sẽ có dạng như sau:</p>
<p><img loading="lazy" decoding="async" class="wp-image-14373 size-full aligncenter" src="https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_2.png" alt="" width="625" height="660" srcset="https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_2.png 625w, https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_2-284x300.png 284w" sizes="auto, (max-width: 625px) 100vw, 625px" /></p>
<p>Trong folder cần có folder đã build và file cấu hình server.js. Sau đó, bạn tiến hành nén folder gốc thành file .zip có dạng như sau:</p>
<p><img loading="lazy" decoding="async" class="wp-image-14376 size-full aligncenter" src="https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_1.png" alt="" width="139" height="60" /></p>
<p>Sau đó, vào file manager trên cpanel</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-14377 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_3.png" alt="" width="689" height="401" srcset="https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_3.png 689w, https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_3-300x175.png 300w" sizes="auto, (max-width: 689px) 100vw, 689px" /></p>
<p>Sau đó bạn upload lên file manager và tiến hành giải nén, sau khi giải nén thì bạn sẽ có folder với cấu trúc thư mục như sau:</p>
<p><img loading="lazy" decoding="async" class="wp-image-14378 size-full aligncenter" src="https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_4.png" alt="" width="904" height="427" srcset="https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_4.png 904w, https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_4-300x142.png 300w, https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_4-768x363.png 768w" sizes="auto, (max-width: 904px) 100vw, 904px" /></p>
<h4>4. Tiến hành cài đặt</h4>
<p>Bạn quay lại Cpanel, kéo xuống phần Software và chọn Setup Node.js App</p>
<p><img loading="lazy" decoding="async" class="wp-image-14379 size-full aligncenter" src="https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_5.png" alt="" width="1136" height="676" srcset="https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_5.png 1136w, https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_5-300x179.png 300w, https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_5-1024x609.png 1024w, https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_5-768x457.png 768w" sizes="auto, (max-width: 1136px) 100vw, 1136px" /></p>
<p>Sau đó bạn chọn Create Application</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-14380 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_6.png" alt="" width="951" height="206" srcset="https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_6.png 951w, https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_6-300x65.png 300w, https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_6-768x166.png 768w" sizes="auto, (max-width: 951px) 100vw, 951px" /></p>
<p>Bạn tiến hàn cấu hình web app của bạn như sau:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-14381 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_7.png" alt="" width="1004" height="802" srcset="https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_7.png 1004w, https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_7-300x240.png 300w, https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_7-768x613.png 768w" sizes="auto, (max-width: 1004px) 100vw, 1004px" /></p>
<p>Node.js version mới nhất đang được hỗ trợ là 20.18.3, bạn có thể chọn phiên bản thấp hơn</p>
<p>Application mode có Production và Development, bạn chọn phù hợp với nhu cầu cá nhân.</p>
<p>Application root là folder chứa folder source code ở phần 3, trong bài viết này là public_html/landingpage</p>
<p>Application URL bạn chọn tên miền mình muốn gán, có thể thêm prefix ví dụ như tenmien.com/prefix</p>
<p>Application Startup file chính là file server.js ở phần chuẩn bị, chúng ta để cùng thư mục source code là Application Root, sau đó nhập tên file, ở trong bài này là server.js</p>
<p>Sau khi bạn điền xong, bạn chọn Create thì sẽ sang bước tiếp theo</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-14382 size-full" src="https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_8.png" alt="" width="959" height="545" srcset="https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_8.png 959w, https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_8-300x170.png 300w, https://help.tenten.vn/wp-content/uploads/2025/05/Screenshot_8-768x436.png 768w" sizes="auto, (max-width: 959px) 100vw, 959px" /></p>
<p>Sang đến màn hình sau, bạn chọn run npm install để cài đặt các package phù hợp với phiên bản bạn chọn, vì ở môi trường localhost phiên bản sẽ khác một chút, ví dụ cùng là node.js 18 nhưng ở localhost sẽ là 18.xx.xx thì ở cpanel sẽ là 18.xy.xz</p>
<p>Khi scrip npm install chạy xong, bạn chọn run js script</p>
<p>Sau đó bạn chọn start vì bạn đã build ở localhost rồi</p>
<p>Nếu bạn chưa build ở localhost thì bạn chọn build, tuy nhiên bộ nhớ ram của hosting có thể sẽ không đủ để build.</p>
<p>Sau khi build xong bạn bấm dấu x để tắt và save lại</p>
<p>Vậy là Website của bạn đã chạy thành công.</p>
<p>Bài viết <a href="https://help.tenten.vn/huong-dan-chay-nextjs-tren-cpanel/">Hướng dẫn chạy NextJS trên cPanel</a> đã xuất hiện đầu tiên vào ngày <a href="https://help.tenten.vn">Hướng dẫn TENTEN</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
