{"id":31169,"date":"2025-06-30T10:11:35","date_gmt":"2025-06-30T03:11:35","guid":{"rendered":"https:\/\/interdata.vn\/blog\/?p=31169"},"modified":"2025-06-30T10:12:42","modified_gmt":"2025-06-30T03:12:42","slug":"cai-dat-wordpress-vps-ubuntu-lamp-stack","status":"publish","type":"post","link":"https:\/\/interdata.vn\/blog\/cai-dat-wordpress-vps-ubuntu-lamp-stack\/","title":{"rendered":"H\u01b0\u1edbng d\u1eabn c\u00e0i \u0111\u1eb7t WordPress tr\u00ean VPS Ubuntu b\u1eb1ng LAMP Stack"},"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\/cai-dat-wordpress-vps-ubuntu-lamp-stack\/#Chuan-bi-truoc-khi-cai-dat\" >Chu\u1ea9n b\u1ecb tr\u01b0\u1edbc khi c\u00e0i \u0111\u1eb7t<\/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\/cai-dat-wordpress-vps-ubuntu-lamp-stack\/#Cai-dat-LAMP-Stack-tren-Ubuntu\" >C\u00e0i \u0111\u1eb7t LAMP Stack tr\u00ean Ubuntu<\/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\/cai-dat-wordpress-vps-ubuntu-lamp-stack\/#Cai-Apache\" >C\u00e0i Apache<\/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\/cai-dat-wordpress-vps-ubuntu-lamp-stack\/#Cai-MySQL\" >C\u00e0i MySQL<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/interdata.vn\/blog\/cai-dat-wordpress-vps-ubuntu-lamp-stack\/#Cai-PHP-va-cac-module-can-thiet\" >C\u00e0i PHP v\u00e0 c\u00e1c module c\u1ea7n thi\u1ebft<\/a><\/li><\/ul><\/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\/cai-dat-wordpress-vps-ubuntu-lamp-stack\/#Cau-hinh-Apache-cho-WordPress\" >C\u1ea5u h\u00ecnh Apache cho WordPress<\/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\/cai-dat-wordpress-vps-ubuntu-lamp-stack\/#Tai-va-upload-WordPress-len-VPS\" >T\u1ea3i v\u00e0 upload WordPress l\u00ean VPS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/interdata.vn\/blog\/cai-dat-wordpress-vps-ubuntu-lamp-stack\/#Tao-co-so-du-lieu-cho-WordPress\" >T\u1ea1o c\u01a1 s\u1edf d\u1eef li\u1ec7u cho WordPress<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/interdata.vn\/blog\/cai-dat-wordpress-vps-ubuntu-lamp-stack\/#Cau-hinh-WordPress-lan-dau\" >C\u1ea5u h\u00ecnh WordPress l\u1ea7n \u0111\u1ea7u<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/interdata.vn\/blog\/cai-dat-wordpress-vps-ubuntu-lamp-stack\/#Kiem-tra-va-xu-ly-loi-thuong-gap\" >Ki\u1ec3m tra v\u00e0 x\u1eed l\u00fd l\u1ed7i th\u01b0\u1eddng g\u1eb7p<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/interdata.vn\/blog\/cai-dat-wordpress-vps-ubuntu-lamp-stack\/#Toi-uu-va-bao-mat-sau-khi-cai-dat\" >T\u1ed1i \u01b0u v\u00e0 b\u1ea3o m\u1eadt sau khi c\u00e0i \u0111\u1eb7t<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/interdata.vn\/blog\/cai-dat-wordpress-vps-ubuntu-lamp-stack\/#Ket-luan\" >K\u1ebft lu\u1eadn<\/a><\/li><\/ul><\/nav><\/div>\n<p>Vi\u1ec7c chuy\u1ec3n t\u1eeb shared hosting sang VPS l\u00e0 m\u1ed9t b\u01b0\u1edbc ti\u1ebfn quan tr\u1ecdng, mang l\u1ea1i cho b\u1ea1n to\u00e0n quy\u1ec1n ki\u1ec3m so\u00e1t, hi\u1ec7u su\u1ea5t v\u01b0\u1ee3t tr\u1ed9i v\u00e0 kh\u1ea3 n\u0103ng t\u00f9y bi\u1ebfn kh\u00f4ng gi\u1edbi h\u1ea1n. B\u00e0i vi\u1ebft n\u00e0y t\u1eeb <a href=\"https:\/\/interdata.vn\/\">InterData<\/a> s\u1ebd h\u01b0\u1edbng d\u1eabn b\u1ea1n chi ti\u1ebft t\u1eebng b\u01b0\u1edbc c\u00e0i \u0111\u1eb7t WordPress tr\u00ean m\u1ed9t m\u00e1y ch\u1ee7 \u1ea3o ch\u1ea1y Ubuntu v\u1edbi LAMP Stack, t\u1eeb vi\u1ec7c chu\u1ea9n b\u1ecb server, c\u1ea5u h\u00ecnh Apache, t\u1ea1o database MySQL cho \u0111\u1ebfn x\u1eed l\u00fd l\u1ed7i v\u00e0 c\u00e1c b\u01b0\u1edbc b\u1ea3o m\u1eadt c\u01a1 b\u1ea3n.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/06\/Cai-dat-WordPress-tren-VPS-Ubuntu-bang-LAMP-Stack-01.jpg\" alt=\"C\u00e0i \u0111\u1eb7t WordPress tr\u00ean VPS Ubuntu b\u1eb1ng LAMP Stack\" width=\"600\" height=\"400\" class=\"aligncenter size-full wp-image-31170\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/06\/Cai-dat-WordPress-tren-VPS-Ubuntu-bang-LAMP-Stack-01.jpg 600w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/06\/Cai-dat-WordPress-tren-VPS-Ubuntu-bang-LAMP-Stack-01-300x200.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Chuan-bi-truoc-khi-cai-dat\"><\/span>Chu\u1ea9n b\u1ecb tr\u01b0\u1edbc khi c\u00e0i \u0111\u1eb7t<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Tr\u01b0\u1edbc khi b\u1eaft \u0111\u1ea7u qu\u00e1 tr\u00ecnh c\u00e0i \u0111\u1eb7t, b\u1ea1n c\u1ea7n \u0111\u1ea3m b\u1ea3o c\u00e1c y\u1ebfu t\u1ed1 n\u1ec1n t\u1ea3ng \u0111\u00e3 s\u1eb5n s\u00e0ng. M\u1ed9t s\u1ef1 chu\u1ea9n b\u1ecb k\u1ef9 l\u01b0\u1ee1ng s\u1ebd gi\u00fap to\u00e0n b\u1ed9 qu\u00e1 tr\u00ecnh di\u1ec5n ra su\u00f4n s\u1ebb v\u00e0 tr\u00e1nh \u0111\u01b0\u1ee3c c\u00e1c l\u1ed7i kh\u00f4ng \u0111\u00e1ng c\u00f3. \u0110i\u1ec1u n\u00e0y \u0111\u1eb7c bi\u1ec7t quan tr\u1ecdng khi l\u00e0m vi\u1ec7c tr\u1ef1c ti\u1ebfp v\u1edbi m\u00f4i tr\u01b0\u1eddng server.<\/p>\n<p>\u0110\u1ea7u ti\u00ean, b\u1ea1n c\u1ea7n c\u00f3 quy\u1ec1n truy c\u1eadp v\u00e0o VPS Ubuntu c\u1ee7a m\u00ecnh th\u00f4ng qua SSH (Secure Shell). H\u00e3y s\u1eed d\u1ee5ng m\u1ed9t t\u00e0i kho\u1ea3n ng\u01b0\u1eddi d\u00f9ng c\u00f3 quy\u1ec1n <code>sudo<\/code>, kh\u00f4ng n\u00ean d\u00f9ng t\u00e0i kho\u1ea3n <code>root<\/code> \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 h\u00e0ng ng\u00e0y v\u00ec l\u00fd do b\u1ea3o m\u1eadt. Vi\u1ec7c n\u00e0y t\u1ea1o ra m\u1ed9t l\u1edbp b\u1ea3o v\u1ec7, y\u00eau c\u1ea7u x\u00e1c th\u1ef1c cho c\u00e1c l\u1ec7nh quan tr\u1ecdng.<\/p>\n<p>Cu\u1ed1i c\u00f9ng, h\u00e3y c\u1eadp nh\u1eadt h\u1ec7 th\u1ed1ng c\u1ee7a b\u1ea1n. Vi\u1ec7c ch\u1ea1y c\u00e1c l\u1ec7nh c\u1eadp nh\u1eadt \u0111\u1ea3m b\u1ea3o r\u1eb1ng t\u1ea5t c\u1ea3 c\u00e1c g\u00f3i ph\u1ea7n m\u1ec1m tr\u00ean server c\u1ee7a b\u1ea1n \u0111\u1ec1u l\u00e0 phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t, \u0111i k\u00e8m v\u1edbi c\u00e1c b\u1ea3n v\u00e1 b\u1ea3o m\u1eadt quan tr\u1ecdng.<\/p>\n<p>S\u1eed d\u1ee5ng c\u00e1c l\u1ec7nh sau \u0111\u1ec3 c\u1eadp nh\u1eadt h\u1ec7 th\u1ed1ng:<\/p>\n<pre><code class=\"language-plaintext\">sudo apt update\r\nsudo apt upgrade<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Cai-dat-LAMP-Stack-tren-Ubuntu\"><\/span>C\u00e0i \u0111\u1eb7t LAMP Stack tr\u00ean Ubuntu<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>LAMP l\u00e0 m\u1ed9t b\u1ed9 ph\u1ea7n m\u1ec1m m\u00e3 ngu\u1ed3n m\u1edf ph\u1ed5 bi\u1ebfn d\u00f9ng \u0111\u1ec3 x\u00e2y d\u1ef1ng c\u00e1c trang web \u0111\u1ed9ng. T\u00ean g\u1ecdi LAMP l\u00e0 vi\u1ebft t\u1eaft c\u1ee7a <strong>L<\/strong>inux, <strong>A<\/strong>pache, <strong>M<\/strong>ySQL v\u00e0 <strong>P<\/strong>HP. \u0110\u00e2y l\u00e0 n\u1ec1n t\u1ea3ng v\u1eefng ch\u1eafc v\u00e0 \u0111\u01b0\u1ee3c ki\u1ec3m ch\u1ee9ng qua th\u1eddi gian \u0111\u1ec3 v\u1eadn h\u00e0nh h\u00e0ng tri\u1ec7u website WordPress tr\u00ean to\u00e0n c\u1ea7u. Ch\u00fang ta s\u1ebd c\u00e0i \u0111\u1eb7t t\u1eebng th\u00e0nh ph\u1ea7n m\u1ed9t.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/06\/LAMP-Stack.jpg\" alt=\"LAMP Stack\" width=\"600\" height=\"325\" class=\"aligncenter size-full wp-image-31172\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/06\/LAMP-Stack.jpg 600w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/06\/LAMP-Stack-300x163.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Cai-Apache\"><\/span>C\u00e0i Apache<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Apache l\u00e0 m\u1ed9t web server m\u1ea1nh m\u1ebd v\u00e0 ph\u1ed5 bi\u1ebfn nh\u1ea5t th\u1ebf gi\u1edbi. Apache ch\u1ecbu tr\u00e1ch nhi\u1ec7m x\u1eed l\u00fd c\u00e1c y\u00eau c\u1ea7u t\u1eeb tr\u00ecnh duy\u1ec7t c\u1ee7a ng\u01b0\u1eddi d\u00f9ng v\u00e0 g\u1eedi v\u1ec1 c\u00e1c n\u1ed9i dung c\u1ee7a website WordPress. B\u1ea1n c\u00f3 th\u1ec3 c\u00e0i \u0111\u1eb7t Apache b\u1eb1ng m\u1ed9t l\u1ec7nh \u0111\u01a1n gi\u1ea3n.<\/p>\n<pre><code class=\"language-plaintext\">sudo apt install apache2<\/code><\/pre>\n<p>Sau khi c\u00e0i \u0111\u1eb7t, b\u1ea1n c\u1ea7n c\u1ea5u h\u00ecnh t\u01b0\u1eddng l\u1eeda UFW (Uncomplicated Firewall) \u0111\u1ec3 cho ph\u00e9p l\u01b0u l\u01b0\u1ee3ng truy c\u1eadp web. Apache \u0111\u0103ng k\u00fd m\u1ed9t v\u00e0i c\u1ea5u h\u00ecnh \u1ee9ng d\u1ee5ng v\u1edbi UFW. B\u1ea1n n\u00ean cho ph\u00e9p c\u1ea5u h\u00ecnh linh ho\u1ea1t nh\u1ea5t l\u00e0 &#8216;Apache Full&#8217;, v\u1ed1n m\u1edf c\u1ea3 c\u1ed5ng 80 (HTTP) v\u00e0 443 (HTTPS).<\/p>\n<pre><code class=\"language-plaintext\">sudo ufw allow 'Apache Full'<\/code><\/pre>\n<p>B\u1ea1n c\u00f3 th\u1ec3 ki\u1ec3m tra tr\u1ea1ng th\u00e1i c\u1ee7a web server \u0111\u1ec3 ch\u1eafc ch\u1eafn Apache \u0111ang ho\u1ea1t \u0111\u1ed9ng:<\/p>\n<pre><code class=\"language-plaintext\">sudo systemctl status apache2<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Cai-MySQL\"><\/span>C\u00e0i MySQL<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Ti\u1ebfp theo, b\u1ea1n s\u1ebd c\u00e0i \u0111\u1eb7t MySQL, h\u1ec7 qu\u1ea3n tr\u1ecb c\u01a1 s\u1edf d\u1eef li\u1ec7u s\u1ebd l\u01b0u tr\u1eef t\u1ea5t c\u1ea3 b\u00e0i vi\u1ebft, trang, th\u00f4ng tin ng\u01b0\u1eddi d\u00f9ng v\u00e0 c\u00e1c thi\u1ebft l\u1eadp c\u1ee7a trang WordPress. Vi\u1ec7c c\u00e0i \u0111\u1eb7t c\u0169ng \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n qua m\u1ed9t l\u1ec7nh duy nh\u1ea5t.<\/p>\n<pre><code class=\"language-plaintext\">sudo apt install mysql-server<\/code><\/pre>\n<p>Khi c\u00e0i \u0111\u1eb7t ho\u00e0n t\u1ea5t, b\u1ea1n n\u00ean ch\u1ea1y m\u1ed9t script b\u1ea3o m\u1eadt \u0111i k\u00e8m \u0111\u1ec3 g\u1ee1 b\u1ecf m\u1ed9t s\u1ed1 c\u00e0i \u0111\u1eb7t m\u1eb7c \u0111\u1ecbnh kh\u00f4ng an to\u00e0n v\u00e0 kh\u00f3a quy\u1ec1n truy c\u1eadp v\u00e0o h\u1ec7 th\u1ed1ng c\u01a1 s\u1edf d\u1eef li\u1ec7u. Script n\u00e0y s\u1ebd h\u1ecfi b\u1ea1n m\u1ed9t lo\u1ea1t c\u00e2u h\u1ecfi \u0111\u1ec3 t\u0103ng c\u01b0\u1eddng b\u1ea3o m\u1eadt cho MySQL.<\/p>\n<pre><code class=\"language-plaintext\">sudo mysql_secure_installation<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Cai-PHP-va-cac-module-can-thiet\"><\/span>C\u00e0i PHP v\u00e0 c\u00e1c module c\u1ea7n thi\u1ebft<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>WordPress \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng b\u1eb1ng ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh PHP. Do \u0111\u00f3, b\u1ea1n c\u1ea7n c\u00e0i \u0111\u1eb7t PHP tr\u00ean server \u0111\u1ec3 x\u1eed l\u00fd v\u00e0 t\u1ea1o ra n\u1ed9i dung cho trang web. Ngo\u00e0i ra, b\u1ea1n c\u0169ng c\u1ea7n c\u00e0i th\u00eam c\u00e1c module PHP m\u1edf r\u1ed9ng \u0111\u1ec3 WordPress c\u00f3 th\u1ec3 k\u1ebft n\u1ed1i v\u1edbi database v\u00e0 s\u1eed d\u1ee5ng c\u00e1c ch\u1ee9c n\u0103ng c\u1ea7n thi\u1ebft.<\/p>\n<pre><code class=\"language-plaintext\">sudo apt install php libapache2-mod-php php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip<\/code><\/pre>\n<p>L\u1ec7nh tr\u00ean c\u00e0i \u0111\u1eb7t PHP c\u00f9ng v\u1edbi c\u00e1c ph\u1ea7n m\u1edf r\u1ed9ng quan tr\u1ecdng nh\u1ea5t. Sau khi c\u00e0i \u0111\u1eb7t, b\u1ea1n c\u00f3 th\u1ec3 ki\u1ec3m tra phi\u00ean b\u1ea3n PHP \u0111\u00e3 \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t th\u00e0nh c\u00f4ng hay ch\u01b0a b\u1eb1ng l\u1ec7nh:<\/p>\n<pre><code class=\"language-plaintext\">php -v<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Cau-hinh-Apache-cho-WordPress\"><\/span>C\u1ea5u h\u00ecnh Apache cho WordPress<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Sau khi \u0111\u00e3 c\u00f3 c\u00e1c th\u00e0nh ph\u1ea7n c\u1ee7a LAMP, b\u1ea1n c\u1ea7n &#8220;ch\u1ec9&#8221; cho Apache bi\u1ebft n\u01a1i ch\u1ee9a m\u00e3 ngu\u1ed3n WordPress v\u00e0 c\u00e1ch x\u1eed l\u00fd c\u00e1c y\u00eau c\u1ea7u cho t\u00ean mi\u1ec1n c\u1ee7a b\u1ea1n. Vi\u1ec7c n\u00e0y \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n th\u00f4ng qua vi\u1ec7c t\u1ea1o m\u1ed9t file c\u1ea5u h\u00ecnh VirtualHost ri\u00eang cho website.<\/p>\n<p>T\u1ea1o m\u1ed9t file c\u1ea5u h\u00ecnh m\u1edbi cho t\u00ean mi\u1ec1n c\u1ee7a b\u1ea1n (v\u00ed d\u1ee5: <code>yourdomain.com.conf<\/code>):<\/p>\n<pre><code class=\"language-plaintext\">sudo nano \/etc\/apache2\/sites-available\/yourdomain.com.conf<\/code><\/pre>\n<p>D\u00e1n n\u1ed9i dung sau v\u00e0o file, thay <code>yourdomain.com<\/code> b\u1eb1ng t\u00ean mi\u1ec1n th\u1ef1c c\u1ee7a b\u1ea1n:<\/p>\n<pre><code class=\"language-plaintext\">&lt;VirtualHost *:80&gt;\r\n    ServerName yourdomain.com\r\n    ServerAlias www.yourdomain.com\r\n    ServerAdmin webmaster@localhost\r\n    DocumentRoot \/var\/www\/yourdomain.com\r\n    \r\n    &lt;Directory \/var\/www\/yourdomain.com&gt;\r\n        Options Indexes FollowSymLinks\r\n        AllowOverride All\r\n        Require all granted\r\n    &lt;\/Directory&gt;\r\n\r\n    ErrorLog ${APACHE_LOG_DIR}\/error.log\r\n    CustomLog ${APACHE_LOG_DIR}\/access.log combined\r\n&lt;\/VirtualHost&gt;\r\n```AllowOverride All` l\u00e0 m\u1ed9t ch\u1ec9 th\u1ecb quan tr\u1ecdng, cho ph\u00e9p WordPress s\u1eed d\u1ee5ng file `.htaccess` \u0111\u1ec3 t\u1ea1o c\u00e1c \u0111\u01b0\u1eddng d\u1eabn \u0111\u1eb9p (pretty permalinks).\r\n\r\nSau \u0111\u00f3, b\u1ea1n c\u1ea7n k\u00edch ho\u1ea1t trang web m\u1edbi n\u00e0y v\u00e0 b\u1eadt module `rewrite` c\u1ee7a Apache:\r\n```bash\r\nsudo a2ensite yourdomain.com.conf\r\nsudo a2enmod rewrite\r\nsudo systemctl restart apache2<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Tai-va-upload-WordPress-len-VPS\"><\/span>T\u1ea3i v\u00e0 upload WordPress l\u00ean VPS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>B\u00e2y gi\u1edd, b\u1ea1n s\u1ebd t\u1ea3i phi\u00ean b\u1ea3n WordPress m\u1edbi nh\u1ea5t t\u1eeb trang ch\u1ee7 ch\u00ednh th\u1ee9c. B\u1ea1n n\u00ean t\u1ea3i tr\u1ef1c ti\u1ebfp v\u1ec1 server trong th\u01b0 m\u1ee5c <code>\/tmp<\/code>, m\u1ed9t th\u01b0 m\u1ee5c t\u1ea1m th\u1eddi, \u0111\u1ec3 gi\u1eef cho h\u1ec7 th\u1ed1ng g\u1ecdn g\u00e0ng.<\/p>\n<pre><code class=\"language-plaintext\">cd \/tmp\r\nwget https:\/\/wordpress.org\/latest.tar.gz<\/code><\/pre>\n<p>Gi\u1ea3i n\u00e9n file v\u1eeba t\u1ea3i v\u1ec1. Thao t\u00e1c n\u00e0y s\u1ebd t\u1ea1o ra m\u1ed9t th\u01b0 m\u1ee5c c\u00f3 t\u00ean l\u00e0 <code>wordpress<\/code>.<\/p>\n<pre><code class=\"language-plaintext\">tar -xzvf latest.tar.gz<\/code><\/pre>\n<p>Ti\u1ebfp theo, b\u1ea1n s\u1ebd t\u1ea1o th\u01b0 m\u1ee5c g\u1ed1c cho website nh\u01b0 \u0111\u00e3 khai b\u00e1o trong file VirtualHost v\u00e0 di chuy\u1ec3n m\u00e3 ngu\u1ed3n WordPress v\u00e0o \u0111\u00f3.<\/p>\n<pre><code class=\"language-plaintext\">sudo mkdir \/var\/www\/yourdomain.com\r\nsudo mv \/tmp\/wordpress\/* \/var\/www\/yourdomain.com\/<\/code><\/pre>\n<p>B\u01b0\u1edbc cu\u1ed1i c\u00f9ng nh\u01b0ng c\u1ef1c k\u1ef3 quan tr\u1ecdng l\u00e0 c\u1ea5p quy\u1ec1n s\u1edf h\u1eefu th\u01b0 m\u1ee5c n\u00e0y cho ng\u01b0\u1eddi d\u00f9ng web c\u1ee7a Apache (<code>www-data<\/code>). \u0110i\u1ec1u n\u00e0y cho ph\u00e9p WordPress t\u1ef1 \u0111\u1ed9ng c\u1eadp nh\u1eadt, c\u00e0i \u0111\u1eb7t plugin v\u00e0 upload media.<\/p>\n<pre><code class=\"language-plaintext\">sudo chown -R www-data:www-data \/var\/www\/yourdomain.com<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Tao-co-so-du-lieu-cho-WordPress\"><\/span>T\u1ea1o c\u01a1 s\u1edf d\u1eef li\u1ec7u cho WordPress<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>M\u1ed7i trang WordPress c\u1ea7n m\u1ed9t c\u01a1 s\u1edf d\u1eef li\u1ec7u ri\u00eang \u0111\u1ec3 ho\u1ea1t \u0111\u1ed9ng. B\u1ea1n s\u1ebd \u0111\u0103ng nh\u1eadp v\u00e0o giao di\u1ec7n d\u00f2ng l\u1ec7nh c\u1ee7a MySQL \u0111\u1ec3 t\u1ea1o m\u1ed9t database v\u00e0 m\u1ed9t ng\u01b0\u1eddi d\u00f9ng ri\u00eang cho trang web c\u1ee7a m\u00ecnh. Vi\u1ec7c t\u1ea1o ng\u01b0\u1eddi d\u00f9ng ri\u00eang cho m\u1ed7i database l\u00e0 m\u1ed9t th\u1ef1c h\u00e0nh b\u1ea3o m\u1eadt t\u1ed1t.<\/p>\n<p>\u0110\u0103ng nh\u1eadp v\u00e0o MySQL:<\/p>\n<pre><code class=\"language-plaintext\">sudo mysql<\/code><\/pre>\n<p>Th\u1ef1c hi\u1ec7n c\u00e1c l\u1ec7nh SQL sau. H\u00e3y thay th\u1ebf <code>your_database<\/code>, <code>your_user<\/code>, v\u00e0 <code>your_password<\/code> b\u1eb1ng c\u00e1c gi\u00e1 tr\u1ecb c\u1ee7a ri\u00eang b\u1ea1n v\u00e0 ghi nh\u1edb ch\u00fang.<\/p>\n<pre><code class=\"language-plaintext\">CREATE DATABASE your_database DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;\r\nCREATE USER 'your_user'@'localhost' IDENTIFIED BY 'your_password';\r\nGRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'localhost';\r\nFLUSH PRIVILEGES;\r\nEXIT;<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Cau-hinh-WordPress-lan-dau\"><\/span>C\u1ea5u h\u00ecnh WordPress l\u1ea7n \u0111\u1ea7u<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>T\u1ea5t c\u1ea3 c\u00e1c b\u01b0\u1edbc chu\u1ea9n b\u1ecb tr\u00ean server \u0111\u00e3 ho\u00e0n t\u1ea5t. B\u00e2y gi\u1edd, b\u1ea1n s\u1ebd truy c\u1eadp t\u00ean mi\u1ec1n c\u1ee7a m\u00ecnh tr\u00ean tr\u00ecnh duy\u1ec7t web \u0111\u1ec3 b\u1eaft \u0111\u1ea7u qu\u00e1 tr\u00ecnh c\u00e0i \u0111\u1eb7t 5 ph\u00fat n\u1ed5i ti\u1ebfng c\u1ee7a WordPress.<\/p>\n<p>Khi truy c\u1eadp, WordPress s\u1ebd ch\u00e0o m\u1eebng b\u1ea1n v\u00e0 y\u00eau c\u1ea7u th\u00f4ng tin k\u1ebft n\u1ed1i c\u01a1 s\u1edf d\u1eef li\u1ec7u. H\u00e3y \u0111i\u1ec1n c\u00e1c th\u00f4ng tin b\u1ea1n \u0111\u00e3 t\u1ea1o \u1edf b\u01b0\u1edbc tr\u01b0\u1edbc (t\u00ean database, t\u00ean ng\u01b0\u1eddi d\u00f9ng, m\u1eadt kh\u1ea9u). C\u00e1c th\u00f4ng s\u1ed1 c\u00f2n l\u1ea1i th\u01b0\u1eddng c\u00f3 th\u1ec3 gi\u1eef nguy\u00ean gi\u00e1 tr\u1ecb m\u1eb7c \u0111\u1ecbnh (<code>localhost<\/code> v\u00e0 <code>wp_<\/code>).<\/p>\n<p>Sau khi k\u1ebft n\u1ed1i database th\u00e0nh c\u00f4ng, WordPress s\u1ebd y\u00eau c\u1ea7u b\u1ea1n \u0111i\u1ec1n th\u00f4ng tin cho trang web:<\/p>\n<ul>\n<li><strong>Site Title:<\/strong> T\u00ean trang web c\u1ee7a b\u1ea1n.<\/li>\n<li><strong>Username:<\/strong> T\u00ean t\u00e0i kho\u1ea3n qu\u1ea3n tr\u1ecb vi\u00ean (tr\u00e1nh d\u00f9ng &#8220;admin&#8221;).<\/li>\n<li><strong>Password:<\/strong> M\u1ed9t m\u1eadt kh\u1ea9u m\u1ea1nh cho t\u00e0i kho\u1ea3n qu\u1ea3n tr\u1ecb.<\/li>\n<li><strong>Your Email:<\/strong> Email \u0111\u1ec3 nh\u1eadn c\u00e1c th\u00f4ng b\u00e1o qu\u1ea3n tr\u1ecb.<\/li>\n<\/ul>\n<p>Nh\u1ea5n &#8220;Install WordPress&#8221;, v\u00e0 qu\u00e1 tr\u00ecnh c\u00e0i \u0111\u1eb7t s\u1ebd ho\u00e0n t\u1ea5t.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Kiem-tra-va-xu-ly-loi-thuong-gap\"><\/span>Ki\u1ec3m tra v\u00e0 x\u1eed l\u00fd l\u1ed7i th\u01b0\u1eddng g\u1eb7p<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Trong qu\u00e1 tr\u00ecnh c\u00e0i \u0111\u1eb7t, b\u1ea1n c\u00f3 th\u1ec3 g\u1eb7p m\u1ed9t s\u1ed1 l\u1ed7i ph\u1ed5 bi\u1ebfn. Vi\u1ec7c hi\u1ec3u nguy\u00ean nh\u00e2n s\u1ebd gi\u00fap b\u1ea1n x\u1eed l\u00fd ch\u00fang nhanh ch\u00f3ng. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 m\u1ed9t s\u1ed1 v\u1ea5n \u0111\u1ec1 th\u01b0\u1eddng g\u1eb7p v\u00e0 c\u00e1ch kh\u1eafc ph\u1ee5c ch\u00fang.<\/p>\n<ul>\n<li><strong>Error Establishing a Database Connection:<\/strong> L\u1ed7i n\u00e0y c\u00f3 ngh\u0129a l\u00e0 WordPress kh\u00f4ng th\u1ec3 k\u1ebft n\u1ed1i t\u1edbi c\u01a1 s\u1edf d\u1eef li\u1ec7u. Nguy\u00ean nh\u00e2n c\u00f3 th\u1ec3 do sai th\u00f4ng tin trong file <code>wp-config.php<\/code>, ho\u1eb7c d\u1ecbch v\u1ee5 MySQL ch\u01b0a ho\u1ea1t \u0111\u1ed9ng. H\u00e3y ki\u1ec3m tra l\u1ea1i th\u00f4ng tin v\u00e0 tr\u1ea1ng th\u00e1i d\u1ecbch v\u1ee5 MySQL (<code>sudo systemctl status mysql<\/code>).<\/li>\n<li><strong>L\u1ed7i kh\u00f4ng th\u1ec3 upload \u1ea3nh ho\u1eb7c c\u00e0i plugin:<\/strong> \u0110\u00e2y l\u00e0 d\u1ea5u hi\u1ec7u c\u1ee7a vi\u1ec7c ph\u00e2n quy\u1ec1n th\u01b0 m\u1ee5c kh\u00f4ng ch\u00ednh x\u00e1c. H\u00e3y \u0111\u1ea3m b\u1ea3o b\u1ea1n \u0111\u00e3 ch\u1ea1y l\u1ec7nh <code>chown<\/code> \u0111\u1ec3 c\u1ea5p quy\u1ec1n cho <code>www-data<\/code> nh\u01b0 \u0111\u00e3 h\u01b0\u1edbng d\u1eabn.<\/li>\n<li><strong>C\u00e1c trang con b\u1ecb l\u1ed7i 404 Not Found:<\/strong> V\u1ea5n \u0111\u1ec1 n\u00e0y x\u1ea3y ra khi module <code>mod_rewrite<\/code> c\u1ee7a Apache ch\u01b0a \u0111\u01b0\u1ee3c k\u00edch ho\u1ea1t ho\u1eb7c c\u1ea5u h\u00ecnh <code>AllowOverride<\/code> trong VirtualHost kh\u00f4ng ph\u1ea3i l\u00e0 <code>All<\/code>. H\u00e3y ki\u1ec3m tra l\u1ea1i c\u00e1c b\u01b0\u1edbc c\u1ea5u h\u00ecnh Apache.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Toi-uu-va-bao-mat-sau-khi-cai-dat\"><\/span>T\u1ed1i \u01b0u v\u00e0 b\u1ea3o m\u1eadt sau khi c\u00e0i \u0111\u1eb7t<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>C\u00e0i \u0111\u1eb7t th\u00e0nh c\u00f4ng ch\u1ec9 l\u00e0 b\u01b0\u1edbc kh\u1edfi \u0111\u1ea7u. \u0110\u1ec3 website ho\u1ea1t \u0111\u1ed9ng hi\u1ec7u qu\u1ea3 v\u00e0 an to\u00e0n, b\u1ea1n c\u1ea7n th\u1ef1c hi\u1ec7n th\u00eam m\u1ed9t v\u00e0i b\u01b0\u1edbc t\u1ed1i \u01b0u v\u00e0 b\u1ea3o m\u1eadt. \u0110\u00e2y l\u00e0 nh\u1eefng h\u00e0nh \u0111\u1ed9ng c\u01a1 b\u1ea3n nh\u01b0ng mang l\u1ea1i gi\u00e1 tr\u1ecb l\u1edbn.<\/p>\n<p>\u0110\u1ea7u ti\u00ean v\u00e0 quan tr\u1ecdng nh\u1ea5t l\u00e0 c\u00e0i \u0111\u1eb7t ch\u1ee9ng ch\u1ec9 SSL \u0111\u1ec3 m\u00e3 h\u00f3a k\u1ebft n\u1ed1i gi\u1eefa ng\u01b0\u1eddi d\u00f9ng v\u00e0 server. B\u1ea1n c\u00f3 th\u1ec3 nh\u1eadn ch\u1ee9ng ch\u1ec9 SSL mi\u1ec5n ph\u00ed t\u1eeb Let&#8217;s Encrypt b\u1eb1ng c\u00f4ng c\u1ee5 Certbot.<\/p>\n<pre><code class=\"language-plaintext\">sudo apt install certbot python3-certbot-apache\r\nsudo certbot --apache<\/code><\/pre>\n<p>Certbot s\u1ebd t\u1ef1 \u0111\u1ed9ng l\u1ea5y ch\u1ee9ng ch\u1ec9 v\u00e0 c\u1ea5u h\u00ecnh Apache \u0111\u1ec3 s\u1eed d\u1ee5ng HTTPS cho b\u1ea1n.<\/p>\n<p>Ngo\u00e0i ra, h\u00e3y xem x\u00e9t vi\u1ec7c c\u00e0i \u0111\u1eb7t m\u1ed9t plugin caching (nh\u01b0 W3 Total Cache ho\u1eb7c WP Super Cache) \u0111\u1ec3 t\u0103ng t\u1ed1c \u0111\u1ed9 t\u1ea3i trang. \u0110\u1ed3ng th\u1eddi, thi\u1ebft l\u1eadp m\u1ed9t gi\u1ea3i ph\u00e1p backup t\u1ef1 \u0111\u1ed9ng cho c\u1ea3 m\u00e3 ngu\u1ed3n v\u00e0 c\u01a1 s\u1edf d\u1eef li\u1ec7u l\u00e0 \u0111i\u1ec1u b\u1eaft bu\u1ed9c \u0111\u1ec3 ph\u00f2ng ng\u1eeba r\u1ee7i ro m\u1ea5t d\u1eef li\u1ec7u.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Ket-luan\"><\/span>K\u1ebft lu\u1eadn<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>B\u1ea1n \u0111\u00e3 ho\u00e0n th\u00e0nh qu\u00e1 tr\u00ecnh c\u00e0i \u0111\u1eb7t m\u1ed9t trang web WordPress tr\u00ean VPS Ubuntu c\u1ee7a ri\u00eang m\u00ecnh b\u1eb1ng LAMP Stack. Qu\u00e1 tr\u00ecnh n\u00e0y mang l\u1ea1i cho b\u1ea1n s\u1ef1 hi\u1ec3u bi\u1ebft s\u00e2u s\u1eafc v\u1ec1 c\u00e1ch c\u00e1c th\u00e0nh ph\u1ea7n c\u1ee7a m\u1ed9t web server ho\u1ea1t \u0111\u1ed9ng c\u00f9ng nhau v\u00e0 \u0111\u1eb7t n\u1ec1n m\u00f3ng \u0111\u1ec3 b\u1ea1n c\u00f3 th\u1ec3 qu\u1ea3n l\u00fd, m\u1edf r\u1ed9ng website m\u1ed9t c\u00e1ch ch\u1ee7 \u0111\u1ed9ng.<\/p>\n<p>C\u00e1c b\u01b0\u1edbc ti\u1ebfp theo b\u1ea1n n\u00ean c\u00e2n nh\u1eafc bao g\u1ed3m vi\u1ec7c thi\u1ebft l\u1eadp h\u1ec7 th\u1ed1ng sao l\u01b0u \u0111\u1ecbnh k\u1ef3, t\u00ecm hi\u1ec3u c\u00e1c bi\u1ec7n ph\u00e1p b\u1ea3o m\u1eadt n\u00e2ng cao cho server, v\u00e0 b\u1eaft \u0111\u1ea7u t\u00f9y bi\u1ebfn trang web c\u1ee7a m\u00ecnh v\u1edbi c\u00e1c theme v\u00e0 plugin m\u1ea1nh m\u1ebd.<\/p>\n<p>N\u1ebfu b\u1ea1n \u0111ang t\u00ecm ki\u1ebfm m\u1ed9t n\u1ec1n t\u1ea3ng VPS m\u1ea1nh m\u1ebd, \u1ed5n \u0111\u1ecbnh v\u1edbi \u1ed5 c\u1ee9ng SSD NVMe t\u1ed1c \u0111\u1ed9 cao \u0111\u1ec3 tri\u1ec3n khai d\u1ef1 \u00e1n c\u1ee7a m\u00ecnh, h\u00e3y tham kh\u1ea3o d\u1ecbch v\u1ee5 c\u1ee7a ch\u00fang t\u00f4i.<\/p>\n<p>Tham kh\u1ea3o d\u1ecbch v\u1ee5 <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/interdata.vn\/thue-vps\/\">VPS gi\u00e1 r\u1ebb uy t\u00edn &#8211; SSD NVMe t\u1ed1c \u0111\u1ed9 cao &#8211; H\u1ed7 tr\u1ee3 \u0111a d\u1ea1ng h\u1ec7 \u0111i\u1ec1u h\u00e0nh<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vi\u1ec7c chuy\u1ec3n t\u1eeb shared hosting sang VPS l\u00e0 m\u1ed9t b\u01b0\u1edbc ti\u1ebfn quan tr\u1ecdng, mang l\u1ea1i cho b\u1ea1n to\u00e0n quy\u1ec1n ki\u1ec3m so\u00e1t, hi\u1ec7u su\u1ea5t v\u01b0\u1ee3t tr\u1ed9i v\u00e0 kh\u1ea3 n\u0103ng t\u00f9y bi\u1ebfn kh\u00f4ng gi\u1edbi h\u1ea1n. B\u00e0i vi\u1ebft n\u00e0y t\u1eeb InterData s\u1ebd h\u01b0\u1edbng d\u1eabn b\u1ea1n chi ti\u1ebft t\u1eebng b\u01b0\u1edbc c\u00e0i \u0111\u1eb7t WordPress tr\u00ean m\u1ed9t m\u00e1y ch\u1ee7 \u1ea3o ch\u1ea1y<\/p>\n","protected":false},"author":2,"featured_media":31171,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[49],"tags":[],"class_list":["post-31169","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\/31169","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=31169"}],"version-history":[{"count":1,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/31169\/revisions"}],"predecessor-version":[{"id":31173,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/31169\/revisions\/31173"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/media\/31171"}],"wp:attachment":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/media?parent=31169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/categories?post=31169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/tags?post=31169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}