{"id":39684,"date":"2026-03-01T16:28:12","date_gmt":"2026-03-01T09:28:12","guid":{"rendered":"https:\/\/interdata.vn\/blog\/?p=39684"},"modified":"2026-03-01T16:28:12","modified_gmt":"2026-03-01T09:28:12","slug":"vps-chay-laravel","status":"publish","type":"post","link":"https:\/\/interdata.vn\/blog\/vps-chay-laravel\/","title":{"rendered":"C\u1ea5u H\u00ecnh VPS Ch\u1ea1y Laravel: H\u01b0\u1edbng D\u1eabn Deploy Chu\u1ea9n 2026"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-white ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">N\u1ed8I DUNG<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/interdata.vn\/blog\/vps-chay-laravel\/#Lam-the-nao-de-chon-cau-hinh-VPS-chay-Laravel-toi-uu-nhat\" >L\u00e0m th\u1ebf n\u00e0o \u0111\u1ec3 ch\u1ecdn c\u1ea5u h\u00ecnh VPS ch\u1ea1y Laravel t\u1ed1i \u01b0u nh\u1ea5t?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/interdata.vn\/blog\/vps-chay-laravel\/#Co-nhung-cach-nao-de-deploy-Laravel-len-VPS\" >C\u00f3 nh\u1eefng c\u00e1ch n\u00e0o \u0111\u1ec3 deploy Laravel l\u00ean VPS?<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/interdata.vn\/blog\/vps-chay-laravel\/#Cach-1-Tu-cau-hinh-Web-Server-ApacheNginx-thu-cong\" >C\u00e1ch 1: T\u1ef1 c\u1ea5u h\u00ecnh Web Server (Apache\/Nginx) th\u1ee7 c\u00f4ng<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/interdata.vn\/blog\/vps-chay-laravel\/#Cach-2-Su-dung-Panel-va-Script-Auto-Deploy-nhanh-chong\" >C\u00e1ch 2: S\u1eed d\u1ee5ng Panel v\u00e0 Script Auto-Deploy nhanh ch\u00f3ng<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/interdata.vn\/blog\/vps-chay-laravel\/#5-Yeu-to-can-can-nhac-ky-truoc-khi-setup-VPS-cho-Laravel\" >5 Y\u1ebfu t\u1ed1 c\u1ea7n c\u00e2n nh\u1eafc k\u1ef9 tr\u01b0\u1edbc khi setup VPS cho Laravel<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/interdata.vn\/blog\/vps-chay-laravel\/#Giai-phap-thue-VPS-gia-re-toi-uu-cho-ung-dung-Laravel\" >Gi\u1ea3i ph\u00e1p thu\u00ea VPS gi\u00e1 r\u1ebb, t\u1ed1i \u01b0u cho \u1ee9ng d\u1ee5ng Laravel<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/interdata.vn\/blog\/vps-chay-laravel\/#Cau-hoi-thuong-gap-ve-VPS-chay-Laravel\" >C\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 VPS ch\u1ea1y Laravel<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/interdata.vn\/blog\/vps-chay-laravel\/#Q1-Tai-sao-chay-lenh-composer-install-tren-VPS-bi-treo-hoac-vang-loi-%E2%80%9CKilled%E2%80%9D\" >Q1: T\u1ea1i sao ch\u1ea1y l\u1ec7nh composer install tr\u00ean VPS b\u1ecb treo ho\u1eb7c v\u0103ng l\u1ed7i &#8220;Killed&#8221;?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/interdata.vn\/blog\/vps-chay-laravel\/#Q2-Web-bao-loi-HTTP-500-ngay-sau-khi-vua-up-source-code-len-VPS\" >Q2: Web b\u00e1o l\u1ed7i HTTP 500 ngay sau khi v\u1eeba up source code l\u00ean VPS?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/interdata.vn\/blog\/vps-chay-laravel\/#Q3-Toi-nen-chon-Nginx-hay-Apache-de-chay-web-Laravel\" >Q3: T\u00f4i n\u00ean ch\u1ecdn Nginx hay Apache \u0111\u1ec3 ch\u1ea1y web Laravel?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/interdata.vn\/blog\/vps-chay-laravel\/#Q4-Cai-dat-Cronjob-Schedule-cho-Laravel-tren-VPS-nhu-the-nao\" >Q4: C\u00e0i \u0111\u1eb7t Cronjob (Schedule) cho Laravel tr\u00ean VPS nh\u01b0 th\u1ebf n\u00e0o?<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<div class=\"summary\">\n<p>\u0110\u1ec3 ch\u1ea1y Laravel tr\u00ean VPS m\u01b0\u1ee3t m\u00e0, b\u1ea1n c\u1ea7n m\u1ed9t m\u00e1y ch\u1ee7 \u1ea3o t\u1ed1i thi\u1ec3u 1GB RAM (khuy\u1ebfn ngh\u1ecb 2GB) c\u00e0i \u0111\u1eb7t h\u1ec7 \u0111i\u1ec1u h\u00e0nh Ubuntu, k\u1ebft h\u1ee3p c\u00f9ng web server (Nginx\/Apache), PHP v\u00e0 c\u01a1 s\u1edf d\u1eef li\u1ec7u (MySQL\/PostgreSQL). Qu\u00e1 tr\u00ecnh deploy c\u00f3 th\u1ec3 th\u1ef1c hi\u1ec7n th\u1ee7 c\u00f4ng b\u1eb1ng l\u1ec7nh terminal ho\u1eb7c t\u1ef1 \u0111\u1ed9ng h\u00f3a qua c\u00e1c control panel. M\u1ea5u ch\u1ed1t quan tr\u1ecdng nh\u1ea5t \u0111\u1ec3 website ho\u1ea1t \u0111\u1ed9ng l\u00e0 ph\u1ea3i tr\u1ecf Document Root c\u1ee7a web server v\u00e0o \u0111\u00fang th\u01b0 m\u1ee5c <code>\/public<\/code> v\u00e0 c\u1ea5p quy\u1ec1n ghi cho th\u01b0 m\u1ee5c <code>storage<\/code>.<\/p>\n<p><strong>C\u00e1c \u0111i\u1ec3m ch\u00ednh:<\/strong><\/p>\n<ul>\n<li><strong>OS &amp; T\u00e0i nguy\u00ean:<\/strong> Ubuntu, Khuy\u1ebfn ngh\u1ecb t\u1eeb 2GB RAM.<\/li>\n<li><strong>M\u00f4i tr\u01b0\u1eddng y\u00eau c\u1ea7u:<\/strong> PHP (\u0111\u00fang version d\u1ef1 \u00e1n), Composer, Nginx\/Apache, MySQL.<\/li>\n<li><strong>2 ph\u01b0\u01a1ng ph\u00e1p deploy:<\/strong> T\u1ef1 c\u1ea5u h\u00ecnh (th\u1ee7 c\u00f4ng) ho\u1eb7c d\u00f9ng Panel\/Script (FlashPanel, LarVPS).<\/li>\n<li><strong>\u0110i\u1ec3m c\u1ed1t l\u00f5i:<\/strong> Document Root = <code>\/public<\/code>, chmod th\u01b0 m\u1ee5c <code>storage<\/code> v\u00e0 <code>bootstrap\/cache<\/code>.<\/li>\n<\/ul>\n<\/div>\n<p>Kh\u00e1c v\u1edbi Shared Hosting truy\u1ec1n th\u1ed1ng, vi\u1ec7c \u0111\u01b0a m\u1ed9t \u1ee9ng d\u1ee5ng Laravel l\u00ean VPS \u0111\u00f2i h\u1ecfi ng\u01b0\u1eddi l\u1eadp tr\u00ecnh vi\u00ean ho\u1eb7c qu\u1ea3n tr\u1ecb vi\u00ean ph\u1ea3i c\u00f3 ki\u1ebfn th\u1ee9c nh\u1ea5t \u0111\u1ecbnh v\u1ec1 qu\u1ea3n tr\u1ecb h\u1ec7 th\u1ed1ng Linux. N\u1ebfu thi\u1ebft l\u1eadp m\u00f4i tr\u01b0\u1eddng kh\u00f4ng chu\u1ea9n ho\u1eb7c c\u1ea5u h\u00ecnh sai, b\u1ea1n s\u1ebd ngay l\u1eadp t\u1ee9c \u0111\u1ed1i m\u1eb7t v\u1edbi nh\u1eefng v\u1ea5n \u0111\u1ec1 nh\u1ee9c nh\u1ed1i nh\u01b0 m\u00e0n h\u00ecnh tr\u1eafng, l\u1ed7i HTTP 500 ho\u1eb7c nguy hi\u1ec3m h\u01a1n l\u00e0 r\u00f2 r\u1ec9 file <code>.env<\/code> ch\u1ee9a d\u1eef li\u1ec7u nh\u1ea1y c\u1ea3m ra ngo\u00e0i internet.<\/p>\n<p>B\u00e0i vi\u1ebft n\u00e0y c\u1ee7a <a href=\"https:\/\/interdata.vn\/\"><strong>InterData<\/strong><\/a> s\u1ebd cung c\u1ea5p cho b\u1ea1n l\u1ed9 tr\u00ecnh ti\u00eau chu\u1ea9n, d\u1ef1a tr\u00ean kinh nghi\u1ec7m th\u1ef1c chi\u1ebfn, \u0111\u1ec3 t\u1ef1 tin ch\u1ecdn c\u1ea5u h\u00ecnh v\u00e0 deploy d\u1ef1 \u00e1n Laravel c\u1ee7a m\u00ecnh l\u00ean VPS m\u1ed9t c\u00e1ch tr\u01a1n tru, an to\u00e0n v\u00e0 \u00edt g\u1eb7p l\u1ed7i nh\u1ea5t.<\/p>\n<figure id=\"attachment_39689\" aria-describedby=\"caption-attachment-39689\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-39689\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/03\/VPS-chay-Python.jpg\" alt=\"VPS ch\u1ea1y Python\" width=\"800\" height=\"537\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/03\/VPS-chay-Python.jpg 800w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/03\/VPS-chay-Python-300x201.jpg 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/03\/VPS-chay-Python-768x516.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-39689\" class=\"wp-caption-text\">VPS ch\u1ea1y Python<\/figcaption><\/figure>\n<h2><span class=\"ez-toc-section\" id=\"Lam-the-nao-de-chon-cau-hinh-VPS-chay-Laravel-toi-uu-nhat\"><\/span>L\u00e0m th\u1ebf n\u00e0o \u0111\u1ec3 ch\u1ecdn c\u1ea5u h\u00ecnh VPS ch\u1ea1y Laravel t\u1ed1i \u01b0u nh\u1ea5t?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0110\u1ec3 ch\u1ecdn c\u1ea5u h\u00ecnh VPS ch\u1ea1y Laravel t\u1ed1i \u01b0u, b\u1ea1n n\u00ean \u01b0u ti\u00ean s\u1eed d\u1ee5ng h\u1ec7 \u0111i\u1ec1u h\u00e0nh Ubuntu v\u00e0 trang b\u1ecb m\u1ee9c RAM t\u1ed1i thi\u1ec3u t\u1eeb 2GB tr\u1edf l\u00ean nh\u1eb1m \u0111\u1ea3m b\u1ea3o c\u00e1c ti\u1ebfn tr\u00ecnh h\u1ec7 th\u1ed1ng v\u00e0 qu\u00e1 tr\u00ecnh build kh\u00f4ng b\u1ecb gi\u00e1n \u0111o\u1ea1n.<\/p>\n<ul>\n<li><strong>H\u1ec7 \u0111i\u1ec1u h\u00e0nh:<\/strong> Ubuntu \u0111\u01b0\u1ee3c xem l\u00e0 l\u1ef1a ch\u1ecdn &#8220;qu\u1ed1c d\u00e2n&#8221; cho c\u00e1c d\u1ef1 \u00e1n Laravel. T\u00e0i li\u1ec7u ch\u00ednh th\u1ee9c c\u1ee7a Laravel v\u00e0 ph\u1ea7n l\u1edbn c\u1ed9ng \u0111\u1ed3ng \u0111\u1ec1u base tr\u00ean Ubuntu, gi\u00fap b\u1ea1n c\u1ef1c k\u1ef3 d\u1ec5 d\u00e0ng t\u00ecm ki\u1ebfm s\u1ef1 h\u1ed7 tr\u1ee3 khi g\u1eb7p l\u1ed7i.<\/li>\n<li><strong>T\u00e0i nguy\u00ean (Kinh nghi\u1ec7m th\u1ef1c t\u1ebf):<\/strong> V\u1ec1 m\u1eb7t l\u00fd thuy\u1ebft, m\u1ed9t VPS 1 vCPU v\u00e0 1GB RAM ho\u00e0n to\u00e0n c\u00f3 th\u1ec3 ch\u1ea1y \u0111\u01b0\u1ee3c m\u1ed9t website nh\u1ecf. <strong>Tuy nhi\u00ean<\/strong>, t\u1eeb kinh nghi\u1ec7m th\u1ef1c chi\u1ebfn, ti\u1ebfn tr\u00ecnh <code>composer install<\/code> ho\u1eb7c qu\u00e1 tr\u00ecnh build frontend (nh\u01b0 <code>npm run build<\/code>) l\u1ea1i v\u00f4 c\u00f9ng ng\u1ed1n RAM. N\u1ebfu s\u1eed d\u1ee5ng VPS 1GB RAM, h\u1ec7 th\u1ed1ng c\u1ee7a b\u1ea1n r\u1ea5t d\u1ec5 r\u01a1i v\u00e0o tr\u1ea1ng th\u00e1i &#8220;Out of memory&#8221; v\u00e0 ti\u1ebfn tr\u00ecnh s\u1ebd b\u1ecb &#8220;Killed&#8221; gi\u1eefa ch\u1eebng. Do \u0111\u00f3, khuy\u1ebfn ngh\u1ecb c\u1ea5u h\u00ecnh t\u1ed1i \u01b0u n\u00ean t\u1eeb <strong>2GB RAM tr\u1edf l\u00ean<\/strong>. N\u1ebfu ng\u00e2n s\u00e1ch h\u1ea1n h\u1eb9p b\u1eaft bu\u1ed9c d\u00f9ng g\u00f3i 1GB RAM, b\u1ea1n b\u1eaft bu\u1ed9c ph\u1ea3i c\u1ea5u h\u00ecnh th\u00eam Swap RAM (RAM \u1ea3o t\u1eeb \u1ed5 c\u1ee9ng) \u0111\u1ec3 d\u1ef1 ph\u00f2ng.<\/li>\n<li class=\"ck-list-marker-bold\"><strong>Th\u00e0nh ph\u1ea7n b\u1eaft bu\u1ed9c (Tech Stack):<\/strong>\n<ul>\n<li><strong>PHP:<\/strong> C\u00e0i \u0111\u1eb7t \u0111\u00fang phi\u00ean b\u1ea3n t\u01b0\u01a1ng th\u00edch v\u1edbi source code k\u00e8m c\u00e1c Extensions ph\u1ed5 bi\u1ebfn (BCMath, Ctype, JSON, Mbstring, OpenSSL, PDO, XML&#8230;).<\/li>\n<li><strong>Composer:<\/strong> Tr\u00ecnh qu\u1ea3n l\u00fd th\u01b0 vi\u1ec7n (Dependency Manager) kh\u00f4ng th\u1ec3 thi\u1ebfu c\u1ee7a PHP.<\/li>\n<li><strong>Web Server &amp; Database:<\/strong> S\u1eed d\u1ee5ng Nginx (ho\u1eb7c Apache) k\u1ebft h\u1ee3p c\u00f9ng MySQL\/MariaDB ho\u1eb7c PostgreSQL.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Co-nhung-cach-nao-de-deploy-Laravel-len-VPS\"><\/span>C\u00f3 nh\u1eefng c\u00e1ch n\u00e0o \u0111\u1ec3 deploy Laravel l\u00ean VPS?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Hi\u1ec7n nay c\u00f3 2 tr\u01b0\u1eddng ph\u00e1i ch\u00ednh \u0111\u1ec3 \u0111\u01b0a Laravel l\u00ean VPS: (1) Hardcore &#8211; T\u1ef1 g\u00f5 l\u1ec7nh c\u1ea5u h\u00ecnh t\u1eeb con s\u1ed1 0 gi\u00fap b\u1ea1n hi\u1ec3u s\u00e2u v\u1ec1 c\u1ed1t l\u00f5i h\u1ec7 th\u1ed1ng; v\u00e0 (2) Fast &#8211; D\u00f9ng c\u00f4ng c\u1ee5 t\u1ef1 \u0111\u1ed9ng h\u00f3a \u0111\u1ec3 ti\u1ebft ki\u1ec7m th\u1eddi gian, gi\u1ea3m thi\u1ec3u l\u1ed7i sai. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 b\u1ea3ng so s\u00e1nh tr\u1ef1c quan:<\/p>\n<figure class=\"table\">\n<table>\n<thead>\n<tr>\n<th>Ti\u00eau ch\u00ed<\/th>\n<th>C\u00e1ch 1: T\u1ef1 c\u1ea5u h\u00ecnh (Manual)<\/th>\n<th>C\u00e1ch 2: D\u00f9ng Panel\/Script<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Ki\u1ebfn th\u1ee9c y\u00eau c\u1ea7u<\/strong><\/td>\n<td>C\u1ea7n am hi\u1ec3u Linux Command, Nginx\/Apache.<\/td>\n<td>Kh\u00f4ng y\u00eau c\u1ea7u nhi\u1ec1u, giao di\u1ec7n tr\u1ef1c quan.<\/td>\n<\/tr>\n<tr>\n<td><strong>Th\u1eddi gian tri\u1ec3n khai<\/strong><\/td>\n<td>Ch\u1eadm (30 &#8211; 60 ph\u00fat ho\u1eb7c h\u01a1n n\u1ebfu c\u00f3 l\u1ed7i).<\/td>\n<td>Nhanh (Ch\u1ec9 5 &#8211; 10 ph\u00fat).<\/td>\n<\/tr>\n<tr>\n<td><strong>Ti\u00eau hao t\u00e0i nguy\u00ean<\/strong><\/td>\n<td>C\u1ef1c k\u1ef3 nh\u1eb9, ch\u1ec9 ch\u1ea1y nh\u1eefng th\u1ee9 c\u1ea7n thi\u1ebft.<\/td>\n<td>T\u1ed1n th\u00eam m\u1ed9t \u00edt RAM\/CPU cho Panel ch\u1ea1y ng\u1ea7m.<\/td>\n<\/tr>\n<tr>\n<td><strong>Qu\u1ea3n l\u00fd SSL\/Cronjob<\/strong><\/td>\n<td>Ph\u1ea3i thao t\u00e1c th\u1ee7 c\u00f4ng qua Terminal.<\/td>\n<td>Click chu\u1ed9t t\u1ef1 \u0111\u1ed9ng qua giao di\u1ec7n Web.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h3><span class=\"ez-toc-section\" id=\"Cach-1-Tu-cau-hinh-Web-Server-ApacheNginx-thu-cong\"><\/span>C\u00e1ch 1: T\u1ef1 c\u1ea5u h\u00ecnh Web Server (Apache\/Nginx) th\u1ee7 c\u00f4ng<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Vi\u1ec7c t\u1ef1 c\u1ea5u h\u00ecnh th\u1ee7 c\u00f4ng y\u00eau c\u1ea7u b\u1ea1n s\u1eed d\u1ee5ng command line \u0111\u1ec3 t\u1ea3i code v\u1ec1, t\u1ef1 c\u00e0i \u0111\u1eb7t th\u01b0 vi\u1ec7n v\u00e0 thi\u1ebft l\u1eadp Web Server (Nginx\/Apache) tr\u1ecf tr\u1ef1c ti\u1ebfp v\u00e0o th\u01b0 m\u1ee5c <code>public<\/code> c\u1ee7a d\u1ef1 \u00e1n.<\/p>\n<p>D\u01b0\u1edbi \u0111\u00e2y l\u00e0 c\u00e1c b\u01b0\u1edbc &#8220;x\u01b0\u01a1ng s\u1ed1ng&#8221; b\u1ea1n c\u1ea7n th\u1ef1c hi\u1ec7n:<\/p>\n<p><strong>B\u01b0\u1edbc 1: \u0110\u01b0a source code l\u00ean VPS<\/strong><\/p>\n<p>Khuy\u1ebfn kh\u00edch s\u1eed d\u1ee5ng <code>git clone<\/code> t\u1eeb Github\/Gitlab thay v\u00ec upload file n\u00e9n \u0111\u1ec3 ti\u1ec7n cho vi\u1ec7c c\u1eadp nh\u1eadt sau n\u00e0y.<\/p>\n<p><strong>B\u01b0\u1edbc 2: Kh\u1edfi t\u1ea1o d\u1ef1 \u00e1n<\/strong><\/p>\n<p>Di chuy\u1ec3n v\u00e0o th\u01b0 m\u1ee5c d\u1ef1 \u00e1n v\u00e0 ch\u1ea1y c\u00e1c l\u1ec7nh quan tr\u1ecdng sau:<\/p>\n<pre><code class=\"language-plaintext\">cp .env.example .env\r\ncomposer install --no-dev -o\r\nphp artisan key:generate<\/code><\/pre>\n<p><i>L\u01b0u \u00fd:<\/i> H\u1eadu t\u1ed1 <code>--no-dev -o<\/code> gi\u00fap b\u1ecf qua c\u00e1c th\u01b0 vi\u1ec7n d\u00e0nh cho m\u00f4i tr\u01b0\u1eddng dev v\u00e0 t\u1ed1i \u01b0u h\u00f3a autoloader, gi\u00fap web ch\u1ea1y nhanh h\u01a1n tr\u00ean m\u00f4i tr\u01b0\u1eddng Production.<\/p>\n<figure id=\"attachment_39687\" aria-describedby=\"caption-attachment-39687\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-39687\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/03\/Man-hinh-terminal-khi-chay-lenh-composer-install-thanh-cong-tren-VPS.jpg\" alt=\"M\u00e0n h\u00ecnh terminal khi ch\u1ea1y l\u1ec7nh composer install th\u00e0nh c\u00f4ng tr\u00ean VPS\" width=\"800\" height=\"537\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/03\/Man-hinh-terminal-khi-chay-lenh-composer-install-thanh-cong-tren-VPS.jpg 800w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/03\/Man-hinh-terminal-khi-chay-lenh-composer-install-thanh-cong-tren-VPS-300x201.jpg 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/03\/Man-hinh-terminal-khi-chay-lenh-composer-install-thanh-cong-tren-VPS-768x516.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-39687\" class=\"wp-caption-text\">M\u00e0n h\u00ecnh terminal khi ch\u1ea1y l\u1ec7nh composer install th\u00e0nh c\u00f4ng tr\u00ean VPS<\/figcaption><\/figure>\n<p><strong>B\u01b0\u1edbc 3: Tr\u1ecf Document Root (Quan tr\u1ecdng nh\u1ea5t)<\/strong><\/p>\n<p>\u0110\u00e2y l\u00e0 b\u01b0\u1edbc hay sai nh\u1ea5t. B\u1ea1n b\u1eaft bu\u1ed9c ph\u1ea3i tr\u1ecf \u0111\u01b0\u1eddng d\u1eabn g\u1ed1c c\u1ee7a t\u00ean mi\u1ec1n v\u00e0o th\u01b0 m\u1ee5c <code>public<\/code>. (Xem th\u00eam: B\u00e0i vi\u1ebft &#8220;H\u01b0\u1edbng d\u1eabn c\u1ea5u h\u00ecnh Nginx\/Apache&#8221; chi ti\u1ebft).<br \/>\n<i><\/i><\/p>\n<p><i>V\u00ed d\u1ee5 snippet c\u1ea5u h\u00ecnh Nginx:<\/i><\/p>\n<pre><code class=\"language-plaintext\">server {\r\n    listen 80;\r\n    server_name yourdomain.com;\r\n    root \/var\/www\/laravel\/public; # B\u1eaft bu\u1ed9c tr\u1ecf v\u00e0o \/public\r\n\r\n    index index.php index.html index.htm;\r\n\r\n    location \/ {\r\n        try_files $uri $uri\/ \/index.php?$query_string;\r\n    }\r\n    # ... c\u00e1c c\u1ea5u h\u00ecnh PHP-FPM kh\u00e1c\r\n}<\/code><\/pre>\n<figure id=\"attachment_39688\" aria-describedby=\"caption-attachment-39688\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-39688\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/03\/So-do-cau-truc-thu-muc-Laravel.jpg\" alt=\"S\u01a1 \u0111\u1ed3 c\u1ea5u tr\u00fac th\u01b0 m\u1ee5c Laravel\" width=\"800\" height=\"537\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/03\/So-do-cau-truc-thu-muc-Laravel.jpg 800w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/03\/So-do-cau-truc-thu-muc-Laravel-300x201.jpg 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/03\/So-do-cau-truc-thu-muc-Laravel-768x516.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-39688\" class=\"wp-caption-text\">S\u01a1 \u0111\u1ed3 c\u1ea5u tr\u00fac th\u01b0 m\u1ee5c Laravel<\/figcaption><\/figure>\n<p><strong>B\u01b0\u1edbc 4: Ph\u00e2n quy\u1ec1n (Permissions)<\/strong><\/p>\n<p>\u0110\u1ec3 tr\u00e1nh l\u1ed7i HTTP 500 tr\u1eafng trang, web server ph\u1ea3i c\u00f3 quy\u1ec1n ghi (write) v\u00e0o 2 th\u01b0 m\u1ee5c n\u00e0y:<\/p>\n<pre><code class=\"language-plaintext\">sudo chown -R www-data:www-data \/var\/www\/laravel\r\nsudo chmod -R 775 \/var\/www\/laravel\/storage\r\nsudo chmod -R 775 \/var\/www\/laravel\/bootstrap\/cache<\/code><\/pre>\n<p><strong>B\u01b0\u1edbc 5 &#8211; C\u01a1 s\u1edf d\u1eef li\u1ec7u<\/strong><\/p>\n<p>T\u1ea1o database, \u0111i\u1ec1n th\u00f4ng tin v\u00e0o file <code>.env<\/code> v\u00e0 ch\u1ea1y l\u1ec7nh <code>php artisan migrate<\/code>. Tham kh\u1ea3o chi ti\u1ebft t\u1ea1i t\u00e0i li\u1ec7u ch\u00ednh th\u1ee9c: <a href=\"https:\/\/laravel.com\/docs\" target=\"_blank\" rel=\"nofollow noopener\">laravel.com\/docs<\/a>.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Cach-2-Su-dung-Panel-va-Script-Auto-Deploy-nhanh-chong\"><\/span>C\u00e1ch 2: S\u1eed d\u1ee5ng Panel v\u00e0 Script Auto-Deploy nhanh ch\u00f3ng<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>S\u1eed d\u1ee5ng Panel qu\u1ea3n tr\u1ecb ho\u1eb7c Script t\u1ef1 \u0111\u1ed9ng gi\u00fap t\u1ef1 \u0111\u1ed9ng h\u00f3a to\u00e0n b\u1ed9 qu\u00e1 tr\u00ecnh c\u00e0i \u0111\u1eb7t m\u00f4i tr\u01b0\u1eddng (tech stack), t\u1ea1o database v\u00e0 t\u1ef1 \u0111\u1ed9ng nh\u1eadn di\u1ec7n c\u1ea5u h\u00ecnh Laravel ch\u1ec9 v\u1edbi v\u00e0i thao t\u00e1c c\u01a1 b\u1ea3n.<\/p>\n<ul>\n<li><strong>FlashPanel:<\/strong> \u0110\u00e2y l\u00e0 n\u1ec1n t\u1ea3ng qu\u1ea3n tr\u1ecb VPS qua giao di\u1ec7n web c\u1ef1c k\u1ef3 tr\u1ef1c quan. \u01afu \u0111i\u1ec3m c\u1ee7a FlashPanel l\u00e0 t\u1ef1 \u0111\u1ed9ng c\u00e0i tech stack, c\u00f3 kh\u1ea3 n\u0103ng li\u00ean k\u1ebft v\u1edbi GitHub \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng clone repository. H\u01a1n th\u1ebf n\u1eefa, n\u00f3 t\u00edch h\u1ee3p s\u1eb5n t\u00ednh n\u0103ng t\u1ef1 ch\u1ea1y c\u00e1c l\u1ec7nh <code>composer install<\/code>, <code>key:generate<\/code> ch\u1ec9 v\u1edbi 1 click. \u0110\u1eb7c bi\u1ec7t, b\u1ea1n c\u00f3 th\u1ec3 d\u1ec5 d\u00e0ng setup h\u1ec7 th\u1ed1ng Cronjob cho Laravel schedule (<code>php artisan schedule:run<\/code>) ngay tr\u00ean giao di\u1ec7n m\u00e0 kh\u00f4ng c\u1ea7n \u0111\u1ed9ng \u0111\u1ebfn crontab c\u1ee7a Linux.<\/li>\n<li><strong>LarVPS (Script):<\/strong> L\u00e0 m\u1ed9t Script ch\u1ea1y qua terminal chuy\u00ean bi\u1ec7t d\u00e0nh ri\u00eang cho vi\u1ec7c t\u1ed1i \u01b0u ch\u1ea1y Laravel, r\u1ea5t ph\u1ed5 bi\u1ebfn t\u1ea1i Vi\u1ec7t Nam. \u01afu \u0111i\u1ec3m tuy\u1ec7t \u0111\u1ed1i c\u1ee7a LarVPS l\u00e0 khi b\u1ea1n th\u00eam domain m\u1edbi, script s\u1ebd th\u00f4ng minh t\u1ef1 \u0111\u1ed9ng hi\u1ec3u \u0111\u00e2y l\u00e0 m\u00e3 ngu\u1ed3n Laravel v\u00e0 t\u1ef1 \u0111\u1ed9ng sinh ra c\u1ea5u h\u00ecnh Nginx tr\u1ecf Document Root v\u1ec1 th\u01b0 m\u1ee5c <code>\/public<\/code>. B\u1ea1n ho\u00e0n to\u00e0n kh\u00f4ng c\u1ea7n \u0111\u1ee5ng tay v\u00e0o s\u1eeda file config th\u1ee7 c\u00f4ng.<\/li>\n<\/ul>\n<figure id=\"attachment_39686\" aria-describedby=\"caption-attachment-39686\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-39686\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/03\/Giao-dien-truc-quan-cua-FlashPanel-cua-LarVPS-khi-tao-website-moi.jpg\" alt=\"Giao di\u1ec7n tr\u1ef1c quan c\u1ee7a FlashPanel c\u1ee7a LarVPS khi t\u1ea1o website m\u1edbi\" width=\"800\" height=\"537\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/03\/Giao-dien-truc-quan-cua-FlashPanel-cua-LarVPS-khi-tao-website-moi.jpg 800w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/03\/Giao-dien-truc-quan-cua-FlashPanel-cua-LarVPS-khi-tao-website-moi-300x201.jpg 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/03\/Giao-dien-truc-quan-cua-FlashPanel-cua-LarVPS-khi-tao-website-moi-768x516.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-39686\" class=\"wp-caption-text\">Giao di\u1ec7n tr\u1ef1c quan c\u1ee7a FlashPanel c\u1ee7a LarVPS khi t\u1ea1o website m\u1edbi<\/figcaption><\/figure>\n<h2><span class=\"ez-toc-section\" id=\"5-Yeu-to-can-can-nhac-ky-truoc-khi-setup-VPS-cho-Laravel\"><\/span>5 Y\u1ebfu t\u1ed1 c\u1ea7n c\u00e2n nh\u1eafc k\u1ef9 tr\u01b0\u1edbc khi setup VPS cho Laravel<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Tr\u01b0\u1edbc khi b\u1eaft tay v\u00e0o setup, b\u1ea1n c\u1ea7n \u0111\u00e1nh gi\u00e1 k\u1ef9 5 y\u1ebfu t\u1ed1 c\u1ed1t l\u00f5i: phi\u00ean b\u1ea3n PHP d\u1ef1 \u00e1n s\u1eed d\u1ee5ng, l\u01b0\u1ee3ng traffic d\u1ef1 ki\u1ebfn, h\u1ec7 sinh th\u00e1i \u0111i k\u00e8m, lo\u1ea1i web server v\u00e0 v\u1ecb tr\u00ed \u0111\u1eb7t m\u00e1y ch\u1ee7 (Datacenter).<\/p>\n<ol>\n<li><strong>Phi\u00ean b\u1ea3n t\u01b0\u01a1ng th\u00edch:<\/strong> Ki\u1ec3m tra k\u1ef9 m\u00e3 ngu\u1ed3n d\u1ef1 \u00e1n y\u00eau c\u1ea7u Laravel version bao nhi\u00eau v\u00e0 t\u01b0\u01a1ng \u1ee9ng v\u1edbi PHP b\u1ea3n m\u1ea5y. V\u00ed d\u1ee5: Laravel 10 y\u00eau c\u1ea7u PHP &gt;= 8.1. Vi\u1ec7c c\u00e0i \u0111\u00fang phi\u00ean b\u1ea3n ngay t\u1eeb \u0111\u1ea7u gi\u00fap tr\u00e1nh xung \u0111\u1ed9t Dependency.<\/li>\n<li><strong>L\u01b0\u1ee3ng Traffic d\u1ef1 ki\u1ebfn:<\/strong> M\u1ed9t website n\u1ed9i b\u1ed9 &lt; 1.000 truy c\u1eadp\/ng\u00e0y s\u1ebd \u0111\u00f2i h\u1ecfi t\u00e0i nguy\u00ean kh\u00e1c bi\u1ec7t ho\u00e0n to\u00e0n v\u1edbi h\u1ec7 th\u1ed1ng b\u00e1o ch\u00ed, th\u01b0\u01a1ng m\u1ea1i \u0111i\u1ec7n t\u1eed c\u00f3 50.000 truy c\u1eadp\/ng\u00e0y. C\u1ea7n d\u1ef1 tr\u00f9 k\u1ef9 \u0111\u1ec3 ch\u1ecdn CPU v\u00e0 RAM h\u1ee3p l\u00fd.<\/li>\n<li><strong>H\u1ec7 sinh th\u00e1i \u0111i k\u00e8m:<\/strong> Website c\u1ee7a b\u1ea1n c\u00f3 x\u1eed l\u00fd h\u00e0ng \u0111\u1ee3i (Queue), d\u00f9ng Redis cache, Websocket hay c\u00f3 t\u00e1c v\u1ee5 ch\u1ea1y ng\u1ea7m (Schedule\/Cronjob) kh\u00f4ng? N\u1ebfu c\u00f3, h\u1ec7 th\u1ed1ng VPS c\u1ea7n \u0111\u01b0\u1ee3c c\u1ea5u h\u00ecnh c\u00e0i \u0111\u1eb7t th\u00eam <strong>Supervisor<\/strong> \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng qu\u1ea3n l\u00fd, duy tr\u00ec c\u00e1c ti\u1ebfn tr\u00ecnh n\u00e0y lu\u00f4n ch\u1ea1y n\u1ec1n.<\/li>\n<li><strong>S\u1ef1 l\u1ef1a ch\u1ecdn Web Server:<\/strong> B\u1ea1n c\u1ea7n c\u00e2n nh\u1eafc gi\u1eefa Nginx v\u00e0 Apache. Nginx mang l\u1ea1i hi\u1ec7u n\u0103ng cao, ch\u1ecbu t\u1ea3i t\u1ed1t v\u00e0 v\u00f4 c\u00f9ng ph\u1ed5 bi\u1ebfn cho Laravel. Trong khi \u0111\u00f3 Apache l\u1ea1i th\u00e2n thi\u1ec7n h\u01a1n v\u1edbi ng\u01b0\u1eddi m\u1edbi nh\u1edd vi\u1ec7c c\u1ea5u h\u00ecnh d\u1ec5 d\u00e0ng qua file <code>.htaccess<\/code>.<\/li>\n<li><strong>V\u1ecb tr\u00ed Datacenter &amp; Ng\u00e2n s\u00e1ch:<\/strong> N\u1ebfu \u0111\u1ed1i t\u01b0\u1ee3ng kh\u00e1ch h\u00e0ng c\u1ee7a b\u1ea1n ch\u1ee7 y\u1ebfu \u1edf Vi\u1ec7t Nam, h\u00e3y ch\u1ecdn m\u00e1y ch\u1ee7 \u0111\u1eb7t t\u1ea1i Datacenter Vi\u1ec7t Nam ho\u1eb7c Singapore \u0111\u1ec3 t\u1ed1c \u0111\u1ed9 ph\u1ea3n h\u1ed3i (ping) th\u1ea5p nh\u1ea5t, mang l\u1ea1i tr\u1ea3i nghi\u1ec7m truy c\u1eadp m\u01b0\u1ee3t m\u00e0.<\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"Giai-phap-thue-VPS-gia-re-toi-uu-cho-ung-dung-Laravel\"><\/span>Gi\u1ea3i ph\u00e1p thu\u00ea VPS gi\u00e1 r\u1ebb, t\u1ed1i \u01b0u cho \u1ee9ng d\u1ee5ng Laravel<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>N\u1ebfu b\u1ea1n \u0111ang t\u00ecm ki\u1ebfm m\u1ed9t n\u1ec1n t\u1ea3ng m\u00e1y ch\u1ee7 m\u1ea1nh m\u1ebd, chi ph\u00ed h\u1ee3p l\u00fd \u0111\u1ec3 ch\u1ea1y m\u01b0\u1ee3t m\u00e0 \u1ee9ng d\u1ee5ng Laravel, d\u1ecbch v\u1ee5 <strong><a href=\"https:\/\/interdata.vn\/thue-vps\/\" target=\"_blank\" rel=\"noopener noreferrer\">Thu\u00ea VPS gi\u00e1 r\u1ebb<\/a> t\u1ea1i InterData<\/strong> ch\u00ednh l\u00e0 gi\u1ea3i ph\u00e1p h\u00e0ng \u0111\u1ea7u gi\u1ea3i quy\u1ebft m\u1ecdi \u0111i\u1ec3m \u0111au c\u1ee7a c\u00e1c Developer.<\/p>\n<p><strong>T\u1ea1i sao n\u00ean ch\u1ecdn InterData \u0111\u1ec3 deploy d\u1ef1 \u00e1n Laravel?<\/strong><\/p>\n<ul>\n<li><strong>Hi\u1ec7u n\u0103ng v\u01b0\u1ee3t tr\u1ed9i:<\/strong> InterData s\u1eed d\u1ee5ng ph\u1ea7n c\u1ee9ng m\u1ea1nh m\u1ebd v\u1edbi chip AMD EPYC v\u00e0 Intel Xeon th\u1ebf h\u1ec7 m\u1edbi, k\u1ebft h\u1ee3p c\u00f9ng \u1ed5 c\u1ee9ng NVME U.2 Enterprise. \u0110i\u1ec1u n\u00e0y gi\u00fap t\u1ed1c \u0111\u1ed9 \u0111\u1ecdc\/ghi d\u1eef li\u1ec7u, x\u1eed l\u00fd database v\u00e0 truy xu\u1ea5t file cache c\u1ee7a Laravel tr\u1edf n\u00ean c\u1ef1c k\u1ef3 nhanh ch\u00f3ng.<\/li>\n<li><strong>\u0110\u00e1p \u1ee9ng chu\u1ea9n c\u1ea5u h\u00ecnh:<\/strong> C\u00e1c g\u00f3i VPS t\u1ea1i InterData d\u00f9 c\u00f3 m\u1ee9c gi\u00e1 c\u1ef1c r\u1ebb nh\u01b0ng v\u1eabn \u0111\u01b0\u1ee3c trang b\u1ecb m\u1ee9c RAM d\u01b0 d\u1ea3 (\u0111\u00e1p \u1ee9ng xu\u1ea5t s\u1eafc m\u1ee9c 2GB RAM khuy\u1ebfn ngh\u1ecb), \u0111\u00e1nh bay n\u1ed7i lo b\u1ecb &#8220;Killed&#8221; ti\u1ebfn tr\u00ecnh khi ch\u1ea1y <code>composer install<\/code> hay <code>npm run build<\/code>.<\/li>\n<li><strong>H\u1ed7 tr\u1ee3 c\u00f4ng c\u1ee5 m\u1ea1nh m\u1ebd:<\/strong> B\u1ea1n c\u00f3 to\u00e0n quy\u1ec1n qu\u1ea3n tr\u1ecb Root, t\u1ef1 do c\u00e0i \u0111\u1eb7t m\u1ecdi H\u1ec7 \u0111i\u1ec1u h\u00e0nh (Ubuntu\/AlmaLinux) v\u00e0 t\u01b0\u01a1ng th\u00edch ho\u00e0n h\u1ea3o v\u1edbi m\u1ecdi Control Panel hi\u1ec7n nay nh\u01b0 FlashPanel, LarVPS, aaPanel.<\/li>\n<li><strong>An to\u00e0n &amp; \u1ed4n \u0111\u1ecbnh:<\/strong> H\u1ea1 t\u1ea7ng m\u1ea1ng t\u1ed1c \u0111\u1ed9 cao k\u1ebft h\u1ee3p v\u1edbi t\u00ednh n\u0103ng Backup d\u1eef li\u1ec7u \u0111\u1ecbnh k\u1ef3 h\u00e0ng tu\u1ea7n gi\u00fap b\u1ea3o v\u1ec7 an to\u00e0n tuy\u1ec7t \u0111\u1ed1i cho source code d\u1ef1 \u00e1n c\u1ee7a b\u1ea1n.<\/li>\n<\/ul>\n<figure id=\"attachment_39690\" aria-describedby=\"caption-attachment-39690\" style=\"width: 1228px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-39690\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/03\/Cac-goi-dich-vu-VPS-gia-re-tai-InterData.png\" alt=\"C\u00e1c g\u00f3i d\u1ecbch v\u1ee5 VPS gi\u00e1 r\u1ebb t\u1ea1i InterData\" width=\"1228\" height=\"866\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/03\/Cac-goi-dich-vu-VPS-gia-re-tai-InterData.png 1228w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/03\/Cac-goi-dich-vu-VPS-gia-re-tai-InterData-300x212.png 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/03\/Cac-goi-dich-vu-VPS-gia-re-tai-InterData-1024x722.png 1024w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/03\/Cac-goi-dich-vu-VPS-gia-re-tai-InterData-768x542.png 768w\" sizes=\"auto, (max-width: 1228px) 100vw, 1228px\" \/><figcaption id=\"caption-attachment-39690\" class=\"wp-caption-text\">C\u00e1c g\u00f3i d\u1ecbch v\u1ee5 VPS gi\u00e1 r\u1ebb t\u1ea1i InterData<\/figcaption><\/figure>\n<h2><span class=\"ez-toc-section\" id=\"Cau-hoi-thuong-gap-ve-VPS-chay-Laravel\"><\/span>C\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 VPS ch\u1ea1y Laravel<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>D\u01b0\u1edbi \u0111\u00e2y l\u00e0 t\u1ed5ng h\u1ee3p nh\u1eefng th\u1eafc m\u1eafc th\u1ef1c t\u1ebf nh\u1ea5t c\u1ee7a c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean trong qu\u00e1 tr\u00ecnh c\u1ea5u h\u00ecnh v\u00e0 \u0111\u01b0a web Laravel l\u00ean m\u00e1y ch\u1ee7 \u1ea3o.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Q1-Tai-sao-chay-lenh-composer-install-tren-VPS-bi-treo-hoac-vang-loi-%E2%80%9CKilled%E2%80%9D\"><\/span>Q1: T\u1ea1i sao ch\u1ea1y l\u1ec7nh composer install tr\u00ean VPS b\u1ecb treo ho\u1eb7c v\u0103ng l\u1ed7i &#8220;Killed&#8221;?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Tr\u1ea3 l\u1eddi:<\/strong> L\u1ed7i n\u00e0y x\u1ea3y ra do VPS c\u1ee7a b\u1ea1n b\u1ecb h\u1ebft RAM \u0111\u1ed9t ng\u1ed9t (Out of Memory). C\u00e1ch kh\u1eafc ph\u1ee5c tri\u1ec7t \u0111\u1ec3 nh\u1ea5t l\u00e0 n\u00e2ng c\u1ea5p g\u00f3i VPS l\u00ean t\u1ed1i thi\u1ec3u 2GB RAM. Trong tr\u01b0\u1eddng h\u1ee3p ch\u01b0a th\u1ec3 n\u00e2ng c\u1ea5p ngay, b\u1ea1n c\u1ea7n t\u1ea1o th\u00eam dung l\u01b0\u1ee3ng Swap file (RAM \u1ea3o) tr\u00edch xu\u1ea5t t\u1eeb \u1ed5 c\u1ee9ng h\u1ec7 th\u1ed1ng.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Q2-Web-bao-loi-HTTP-500-ngay-sau-khi-vua-up-source-code-len-VPS\"><\/span>Q2: Web b\u00e1o l\u1ed7i HTTP 500 ngay sau khi v\u1eeba up source code l\u00ean VPS?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Tr\u1ea3 l\u1eddi:<\/strong> C\u00f3 \u0111\u1ebfn 90% nguy\u00ean nh\u00e2n xu\u1ea5t ph\u00e1t t\u1eeb 3 v\u1ea5n \u0111\u1ec1: B\u1ea1n qu\u00ean t\u1ea1o ho\u1eb7c c\u1ea5u h\u00ecnh sai file <code>.env<\/code>; Th\u01b0 m\u1ee5c <code>storage\/<\/code> v\u00e0 <code>bootstrap\/cache\/<\/code> ch\u01b0a \u0111\u01b0\u1ee3c c\u1ea5p quy\u1ec1n ghi (c\u1ea7n ch\u1ea1y l\u1ec7nh chmod 775); Ho\u1eb7c VPS c\u1ee7a b\u1ea1n \u0111ang c\u00e0i thi\u1ebfu c\u00e1c PHP extension c\u01a1 b\u1ea3n m\u00e0 code Laravel \u0111ang s\u1eed d\u1ee5ng.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Q3-Toi-nen-chon-Nginx-hay-Apache-de-chay-web-Laravel\"><\/span>Q3: T\u00f4i n\u00ean ch\u1ecdn Nginx hay Apache \u0111\u1ec3 ch\u1ea1y web Laravel?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Tr\u1ea3 l\u1eddi:<\/strong> Nginx lu\u00f4n \u0111\u01b0\u1ee3c c\u1ed9ng \u0111\u1ed3ng Laravel \u01b0u chu\u1ed9ng v\u00e0 khuy\u00ean d\u00f9ng h\u01a1n. L\u00fd do l\u00e0 Nginx s\u1edf h\u1eefu ki\u1ebfn tr\u00fac x\u1eed l\u00fd h\u01b0\u1edbng s\u1ef1 ki\u1ec7n (event-driven), mang l\u1ea1i hi\u1ec7u n\u0103ng c\u1ef1c cao, ti\u00eau th\u1ee5 \u00edt RAM v\u00e0 kh\u1ea3 n\u0103ng ch\u1ecbu t\u1ea3i l\u01b0\u1ee3ng k\u1ebft n\u1ed1i l\u1edbn (concurrent connections) t\u1ed1t h\u01a1n h\u1eb3n so v\u1edbi Apache.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Q4-Cai-dat-Cronjob-Schedule-cho-Laravel-tren-VPS-nhu-the-nao\"><\/span>Q4: C\u00e0i \u0111\u1eb7t Cronjob (Schedule) cho Laravel tr\u00ean VPS nh\u01b0 th\u1ebf n\u00e0o?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Tr\u1ea3 l\u1eddi:<\/strong> R\u1ea5t \u0111\u01a1n gi\u1ea3n. B\u1ea1n m\u1edf Terminal, g\u00f5 l\u1ec7nh <code>crontab -e<\/code> \u0111\u1ec3 v\u00e0o file qu\u1ea3n l\u00fd cronjob c\u1ee7a h\u1ec7 \u0111i\u1ec1u h\u00e0nh, sau \u0111\u00f3 th\u00eam d\u00f2ng l\u1ec7nh sau v\u00e0o cu\u1ed1i file:<\/p>\n<pre><code class=\"language-plaintext\">* * * * * cd \/duong-dan-toi-thu-muc-du-an &amp;&amp; php artisan schedule:run &gt;&gt; \/dev\/null 2&gt;&amp;1<\/code><\/pre>\n<p>L\u1ec7nh n\u00e0y s\u1ebd thi\u1ebft l\u1eadp VPS t\u1ef1 \u0111\u1ed9ng k\u00edch ho\u1ea1t t\u00ednh n\u0103ng ch\u1ea1y c\u00e1c t\u00e1c v\u1ee5 ng\u1ea7m (Task Scheduling) c\u1ee7a Laravel m\u1ed7i ph\u00fat m\u1ed9t l\u1ea7n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0110\u1ec3 ch\u1ea1y Laravel tr\u00ean VPS m\u01b0\u1ee3t m\u00e0, b\u1ea1n c\u1ea7n m\u1ed9t m\u00e1y ch\u1ee7 \u1ea3o t\u1ed1i thi\u1ec3u 1GB RAM (khuy\u1ebfn ngh\u1ecb 2GB) c\u00e0i \u0111\u1eb7t h\u1ec7 \u0111i\u1ec1u h\u00e0nh Ubuntu, k\u1ebft h\u1ee3p c\u00f9ng web server (Nginx\/Apache), PHP v\u00e0 c\u01a1 s\u1edf d\u1eef li\u1ec7u (MySQL\/PostgreSQL). Qu\u00e1 tr\u00ecnh deploy c\u00f3 th\u1ec3 th\u1ef1c hi\u1ec7n th\u1ee7 c\u00f4ng b\u1eb1ng l\u1ec7nh terminal ho\u1eb7c t\u1ef1 \u0111\u1ed9ng h\u00f3a<\/p>\n","protected":false},"author":2,"featured_media":39689,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[49],"tags":[],"class_list":["post-39684","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vps"],"_links":{"self":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/39684","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/comments?post=39684"}],"version-history":[{"count":2,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/39684\/revisions"}],"predecessor-version":[{"id":39691,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/39684\/revisions\/39691"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/media\/39689"}],"wp:attachment":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/media?parent=39684"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/categories?post=39684"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/tags?post=39684"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}