Qhia txog LAMP Stack
LAMP Stack yog ib pawg software qhib qhov chaws uas feem ntau muab nruab ua ke kom lub server thiaj tuaj yeem tuav tau cov website thiab web application uas sau ua PHP. Lub npe no yog los ntawm cov tsiaj ntawv luv ntawm Linux, web server Apache, database MySQL thiab server-side processing language PHP.
Yog koj yog tus pib tshiab thiab xav teeb lub server kom sai, koj siv tau qhov kev pabcuam nruab ib zaug ntawm tus muab kev pabcuam VPS. Tab sis, kev nruab koj tus kheej yuav pab kom koj nkag siab meej txog kev teeb tsa system thiab tswj tau yooj yim dua thaum siv.
Hauv phau ntawv qhia no, koj yuav teeb tsa LAMP Stack rau ntawm Ubuntu 22.04 server. Cov lus txib rau nruab Apache, MySQL thiab PHP tseem yog siv cov software repository nom tswv ntawm Ubuntu; version tshwj xeeb yuav hloov raws li Ubuntu version thiab lub sijhawm khiav cov lus txib (raws li Ubuntu daim ntawv qhia Apache thiab Ubuntu daim ntawv qhia MySQL).
Yam yuav tsum muaj
Kom ua tiav phau ntawv qhia no, koj yuav tsum muaj ib lub Ubuntu 22.04 server nrog ib tug user account uas tsis yog root tab sis muaj cai sudo, thiab muaj firewall theem pib. Koj tuaj yeem saib phau ntawv qhia teeb tsa Ubuntu Server thawj zaug.
Nkag SSH nrog tus account uas muaj cai sudo thiab hloov kho daim ntawv teev packages ua ntej pib:
sudo apt update
sudo apt upgrade
Kauj ruam 1 — Nruab Apache thiab hloov kho firewall
Apache yog ib qho web server uas nrov tshaj plaws hauv Linux, muaj ntaub ntawv qhia ntau thiab tau txais kev txhawb nqa dav. Ubuntu muab pob apache2 hauv repository software nom tswv (raws li ubuntu.com).
Nruab Apache siv APT:
sudo apt install apache2
Thaum raug nug kom lees paub, ntaus Y ces nias ENTER. Tom qab ntawd, xyuas qhov xwm txheej ntawm qhov kev pabcuam:
sudo systemctl status apache2
Yog koj siv UFW, sau cov application configurations uas twb muaj lawm:
sudo ufw app list
Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
Lub ntsiab lus ntawm UFW configurations
- Apache: tsuas qhib port
80rau HTTP. - Apache Full: qhib port
80thiab443rau HTTP thiab HTTPS. - Apache Secure: tsuas qhib port
443rau HTTPS.
Yog tseem tsis tau teeb tsa TLS certificate, koj tsuas pub HTTP kom dhau tau rau kev kuaj thawj zaug:
sudo ufw allow in "Apache"
sudo ufw status
Thaum website muaj TLS certificate lawm thiab yuav tsum muab HTTPS, siv configuration Apache Full lossis qhib HTTPS port raws li network design. Tsis tsim nyog qhib lwm yam kev pabcuam ntxiv yog tseem tsis tau xav tau.
Qhib lub public IP address ntawm server hauv browser:
http://your_server_ip
Yog koj pom Apache nplooj ntawv mặc định, ces web server twb raug nruab lawm thiab tuaj yeem nkag tau hla firewall.

Yuav nrhiav lub public IP address ntawm server li cas
Feem ntau, qhov no yog qhov address uas siv los txuas SSH. Koj tuaj yeem xyuas cov local network addresses siv:
ip addr
Kom pom lub public address uas ib qho kev pabcuam sab nraud txheeb xyuas, siv tau:
curl https://icanhazip.com
Yog server nyob tom qab NAT lossis siv cloud network, xyuas ntxiv lub Public IP address hauv tus muab kev pabcuam lub control panel. Tsis yog txhua lub address uas tshwm hauv ip addr yuav nkag tau ncaj qha hauv Internet.
Kauj ruam 2 — Nruab MySQL
MySQL yog lub luag haujlwm khaws cia thiab tswj cov ntaub ntawv rau lub vev xaib. Nruab MySQL server los ntawm lo lus txib:
sudo apt install mysql-server
Qhov kev pabcuam feem ntau yuav pib nws tus kheej tom qab nruab tiav. Xyuas xwm txheej los ntawm:
sudo systemctl status mysql
Yog qhov kev pabcuam tseem tsis tau khiav, pib dua los ntawm:
sudo systemctl restart mysql
Hauv Ubuntu, MySQL tus as khauj root hauv zos uas tsim los lawm feem ntau txheeb xyuas los ntawm system socket. Yog li, koj tuaj yeem nkag mus rau MySQL los ntawm:
sudo mysql
Tam sim no Ubuntu qhia kom tsim ib tus as khauj cais uas muaj cai tsim nyog, tsis txhob siv tus as khauj root rau daim ntawv thov (raws li Ubuntu cov ntaub ntawv teeb tsa MySQL). Tawm hauv MySQL interface:
exit;
Ntawm qee qhov Ubuntu lossis MySQL pob, koj kuj tuaj yeem khiav qhov kev tshuaj xyuas kev nyab xeeb uas muaj lus nug sib tham ntxiv:
sudo mysql_secure_installation
Cov lus nug thiab cov kev xaiv yuav txawv raws li version. Nyeem txhua lo lus ceeb toom kom zoo; feem ntau yuav tsum rho tawm cov as khauj tsis qhia npe, txwv kev nkag mus root hauv deb thiab rho tawm lub database sim yog tias lub system muab cov kev xaiv no. Tsis txhob siv cov lus teb ntawm version qub yam tsis xav txog.
Tsim ib lub database thiab MySQL tus as khauj cais
Qhov piv txwv hauv qab no tsim ib lub database thiab ib tus neeg siv cais rau daim ntawv thov. Hloov cov nqi piv txwv rau koj lub npe thiab tus password uas muaj zog:
sudo mysql
CREATE DATABASE app_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'ThayBangMatKhauManh';
GRANT ALL PRIVILEGES ON app_db.* TO 'app_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Ubuntu pom zoo siv txoj kev txheeb xyuas tus password niaj hnub uas MySQL version muab. Siv txoj kev qub tsuas yog thaum daim ntawv thov xav tau tiag tiag thiab koj tau kuaj qhov sib raug zoo lawm (raws li Ubuntu cov ntaub ntawv hais txog MySQL tus as khauj).
Tam sim no MySQL server twb tau nruab thiab teeb tsa theem pib lawm. Kauj ruam tom ntej yog nruab PHP.
Kauj ruam 3 — Nruab PHP
Apache siv los xa cov ntsiab lus, MySQL siv los khaws cov ntaub ntawv, hos PHP siv los ua cov cai dynamic. Kom Apache khiav tau PHP thiab PHP txuas tau rau MySQL, nruab cov pob uas tsim nyog:
sudo apt install php libapache2-mod-php php-mysql
Ubuntu muab cov pob php, PHP module rau Apache thiab php-mysql hauv cov ntaub ntawv raug cai (raws li Ubuntu cov ntaub ntawv nruab PHP).
Xyuas PHP version uas tau nruab tiag tiag los ntawm Ubuntu repository:
php -v
Tsis txhob sau qhov tshwm sim ruaj khov xws li PHP 8.1.2 rau hauv phau ntawv qhia, vim version nyob ntawm Ubuntu version, repository hloov tshiab thiab lub sijhawm nruab. Raws li hnub tim 23 Lub Yim Hli 2026, PHP 8.5 ceg tseem tau txais kev txhawb nqa nquag; PHP 8.4 tseem nyob hauv lub sijhawm txhawb nqa, hos PHP 8.2 tsuas tseem tau txais kev kho qhov tsis muaj zog ntawm kev nyab xeeb mus txog Lub Kaum Ob Hlis 31, 2026 (raws li PHP.net). Xaiv qhov version uas koj lub Ubuntu repository muab ua ntej thiab xyuas kom daim ntawv thov sib raug zoo.
Pib Apache dua kom paub tseeb tias module thiab kev teeb tsa tshiab tau raug thauj:
sudo systemctl restart apache2
Kauj ruam 4 — Tsim Virtual Host rau lub vev xaib
Apache tso cai tsim ntau lub Virtual Host los tuav ntau lub npe sau hauv tib lub server. Hauv qhov piv txwv no, hloov your_domain rau koj lub npe sau tiag tiag thiab xyuas kom DNS record twb taw rau server tus IP address lawm.
Koj kuj tuaj yeem saib phau ntawv qhia taw npe sau rau server.
Hloov chaw siv ncaj qha rau daim nplaub tshev uas tsim los lawm /var/www/html, tsim ib daim nplaub tshev cais rau lub vev xaib:
sudo mkdir -p /var/www/your_domain
sudo chown -R "$USER":"$USER" /var/www/your_domain
Tsim Virtual Host configuration file:
sudo nano /etc/apache2/sites-available/your_domain.conf
Ntxiv qhov kev teeb tsa theem pib hauv qab no:
<VirtualHost *:80>
ServerName your_domain
ServerAlias www.your_domain
ServerAdmin webmaster@localhost
DocumentRoot /var/www/your_domain
<Directory /var/www/your_domain>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/your_domain_error.log
CustomLog ${APACHE_LOG_DIR}/your_domain_access.log combined
</VirtualHost>
Khaws tseg daim ntaub ntawv ces tawm nano los ntawm CTRL+X, nias Y thiab ENTER. Qhib tsuas yog AllowOverride All yog koj yuav tsum siv daim ntaub ntawv .htaccess; yog tsis li, koj tuaj yeem tshem ntu Directory lossis siv ib qho kev teeb tsa uas txwv ntau dua.
Qhib Virtual Host, xyuas syntax thiab reload Apache:
sudo a2ensite your_domain.conf
sudo apache2ctl configtest
sudo systemctl reload apache2
Yog tsis xav tau Apache lub vev xaib tsim los lawm, koj tuaj yeem lov tes taw lub site ntawd:
sudo a2dissite 000-default.conf
sudo apache2ctl configtest
sudo systemctl reload apache2
Yog tseem tsis muaj lub npe sau, cia lub site tsim los lawm nyob twj ywm lossis tsim ib qho kev teeb tsa sim cais. Thaum siv lub npe sau tiag tiag, xyuas DNS thiab qhib cov chaw nres nkoj kom raug hauv firewall ua ntej nkag mus.
Kauj ruam 5 — Kuaj PHP nrog Apache
Tsim daim ntaub ntawv kuaj PHP hauv daim nplaub tshev ntawm lub vev xaib:
nano /var/www/your_domain/info.php
<?php
phpinfo();
Qhib http://your_domain/info.php hauv browser. Yog pom nplooj ntawv qhia txog PHP, txhais tau tias Apache twb ua tau daim ntaub ntawv PHP lawm.
Tom qab kuaj tiav, rho tawm daim ntaub ntawv no vim nws qhia ntau yam ntaub ntawv teeb tsa uas yuav pab tau cov neeg tawm tsam:
rm /var/www/your_domain/info.php
Kauj ruam 6 — Cov kauj ruam txuas ntxiv
- Khoos HTTPS siv daim ntawv pov thawj TLS uas siv tau ua ntej muab lub vev xaib coj los siv tiag.
- Qhib tsuas yog cov chaw nres nkoj uas tsim nyog hauv UFW thiab tsis pub MySQL nkag tau hauv Is Taws Nem yog tias daim ntawv thov tsis xav tau.
- Siv ib tus as-qhauj MySQL cais rau txhua daim ntawv thov, nrog cov cai tsawg kawg uas tsim nyog.
- Teeb tsa kev thaub qab ntawm lub hauv paus ntaub ntawv thiab tshuaj xyuas qhov muaj peev xwm rov qab tau tsis tu ncua.
- Hloov kho Ubuntu, Apache, MySQL thiab PHP raws li koj tus txheej txheem saib xyuas.
Koj tau ua tiav cov feem tseem ceeb ntawm LAMP Stack hauv Ubuntu lawm: Apache faib lub vev xaib, MySQL tswj cov ntaub ntawv thiab PHP ua cov ntsiab lus hloov pauv.

