🌈Ubuntu 20.04 da Linux, Nginx, MySQL, PHP (LEMP stek) qanday o'rnatiladi
// Qo'llanma //
Kirish
LEMP dasturiy ta'minot to'plami PHPda yozilgan dinamik veb-sahifalar va veb-ilovalarga xizmat ko'rsatish uchun ishlatilishi mumkin bo'lgan dasturiy ta'minot guruhidir. Bu Nginx (" E ngine-X" kabi talaffuz qilinadi) veb-serverli L inux operatsion tizimini tavsiflovchi qisqartma . Backend ma'lumotlari M ySQL ma'lumotlar bazasida saqlanadi va dinamik ishlov berish P HP tomonidan amalga oshiriladi.
Ushbu qo'llanma Ubuntu 20.04 serveriga LEMP stekini qanday o'rnatishni ko'rsatadi. Ubuntu operatsion tizimi birinchi talabni bajaradi. Qolgan komponentlarni qanday qilib ishga tushirishni tasvirlab beramiz.
1-qadam - Nginx veb-serverini o'rnatish
Saytimizga tashrif buyuruvchilarga veb-sahifalarni ko'rsatish uchun biz Nginx, yuqori samarali veb-serverdan foydalanmoqchimiz. apt
Ushbu dasturni olish uchun paket menejeridan foydalanamiz .
Bu seans uchun birinchi marta foydalanayotganimiz sababli apt
, serveringiz paketi indeksini yangilashdan boshlang. Shundan so'ng siz apt install
Nginx-ni o'rnatish uchun foydalanishingiz mumkin:
$ sudo apt update
$ sudo apt install nginx
So'ralganda, Y
Nginx-ni o'rnatmoqchi ekanligingizni tasdiqlash uchun kiriting. O'rnatish tugallangach, Nginx veb-serveri faol bo'ladi va Ubuntu 20.04 serveringizda ishlaydi.
Agar sizda ufw
xavfsizlik devori yoqilgan bo'lsa, bizning serverni sozlash bo'yicha dastlabki qo'llanmamizda tavsiya etilganidek, Nginx-ga ulanishga ruxsat berishingiz kerak bo'ladi. Nginx o'rnatishdan so'ng bir nechta turli UFW ilova profillarini ro'yxatdan o'tkazadi. Qaysi UFW profillari mavjudligini tekshirish uchun quyidagilarni bajaring:
$ sudo ufw app list
OutputAvailable applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH
Sizga kerakli trafikka ruxsat beradigan eng cheklovchi profilni yoqish tavsiya etiladi. Ushbu qo'llanmada serveringiz uchun SSL-ni sozlamaganligingiz uchun portda oddiy HTTP trafigiga ruxsat berish kifoya 80
.
Buni yozish orqali yoqing:
$ sudo ufw allow 'Nginx HTTP'
O'zgarishlarni quyidagi amallarni bajarish orqali tekshirishingiz mumkin:
$ sudo ufw status
Ushbu buyruqning chiqishi HTTP trafigiga ruxsat berilganligini ko'rsatadi:
OutputStatus: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)
Yangi xavfsizlik devori qoidasi qoʻshilishi bilan siz serveringizning domen nomi yoki veb-brauzeringizdagi umumiy IP manziliga kirish orqali serverning ishlayotganligini tekshirishingiz mumkin.
Agar sizning serveringizda ko'rsatilgan domen nomingiz bo'lmasa va serveringizning umumiy IP manzilini bilmasangiz, uni quyidagi buyruqni ishga tushirish orqali topishingiz mumkin:
$ ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Bu bir nechta IP manzillarni chop etadi. Ularning har birini veb-brauzeringizda navbatma-navbat sinab ko'rishingiz mumkin.
Shu bilan bir qatorda, Internetdagi boshqa joylardan ko'rinib turganidek, qaysi IP-manzilga kirish mumkinligini tekshirishingiz mumkin:
$ curl -4 icanhazip.com
Veb-brauzeringizda olgan manzilni kiriting va u sizni Nginx-ning standart ochilish sahifasiga olib boradi:
http://server_domain_or_IP

Agar siz ushbu sahifani ko'rsangiz, bu sizning Nginx-ni muvaffaqiyatli o'rnatganingizni va veb-serveringiz uchun HTTP-trafikni yoqqaningizni anglatadi.
2-qadam - MySQL-ni o'rnatish
Endi veb-serveringiz ishlayotgan bo'lsa, saytingiz uchun ma'lumotlarni saqlash va boshqarish imkoniyatiga ega bo'lish uchun ma'lumotlar bazasi tizimini o'rnatishingiz kerak. MySQL - bu PHP muhitida ishlatiladigan mashhur ma'lumotlar bazasini boshqarish tizimi.
Shunga qaramay, apt
ushbu dasturni sotib olish va o'rnatish uchun foydalaning:
$ sudo apt install mysql-server
So'ralganda, yozish orqali o'rnatishni tasdiqlang Y
va keyin ENTER
.
O'rnatish tugagach, MySQL bilan oldindan o'rnatilgan xavfsizlik skriptini ishga tushirish tavsiya etiladi. Ushbu skript ba'zi xavfli standart sozlamalarni olib tashlaydi va ma'lumotlar bazasi tizimiga kirishni bloklaydi. Interaktiv skriptni ishga tushirish orqali boshlang:
$ sudo mysql_secure_installation
ni sozlashni xohlaysizmi, deb so'raydi VALIDATE PASSWORD PLUGIN
.
Yoqmasdan Y
davom etish uchun “Ha” yoki boshqa biror narsa deb javob bering.
VALIDATE PASSWORD PLUGIN can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD plugin? Press y|Y for Yes, any other key for No:
Agar “ha” deb javob bersangiz, sizdan parolni tekshirish darajasini tanlashingiz soʻraladi. Shuni yodda tutingki, agar siz 2
eng kuchli darajaga kirsangiz, raqamlar, katta va kichik harflar va maxsus belgilardan iborat bo'lmagan yoki umumiy lug'at so'zlariga asoslangan har qanday parolni o'rnatishga urinishda xatoliklarga duch kelasiz.
There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
ni o'rnatishni tanlaganingizdan qat'i nazar, VALIDATE PASSWORD PLUGIN
serveringiz sizdan MySQL ildiz foydalanuvchisi uchun parolni tanlash va tasdiqlashingizni so'raydi. Buni tizim ildizi bilan aralashtirib yubormaslik kerak . Ma'lumotlar bazasining ildiz foydalanuvchisi ma'lumotlar bazasi tizimiga nisbatan to'liq imtiyozlarga ega bo'lgan ma'muriy foydalanuvchi. MySQL ildiz foydalanuvchisi uchun standart autentifikatsiya usuli paroldan foydalanishga ruxsat bersa ham, parol o'rnatilgan bo'lsa ham, bu yerda qo'shimcha xavfsizlik chorasi sifatida kuchli parolni belgilashingiz kerak. Bu haqda birozdan keyin gaplashamiz.
Agar siz parolni tekshirishni yoqsangiz, siz kiritgan asosiy parol uchun parol kuchi ko'rsatiladi va serveringiz ushbu parol bilan davom etishni xohlaysizmi, deb so'raydi. Agar joriy parolingizdan mamnun bo'lsangiz, so'rovda Y
"ha" deb kiriting:
Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
Qolgan savollar uchun har bir taklifda tugmachani bosing Y
va ENTER
bosing. Bu ba'zi anonim foydalanuvchilar va test ma'lumotlar bazasini o'chirib tashlaydi, masofaviy ildizga kirishni o'chiradi va MySQL siz kiritgan o'zgarishlarni darhol hurmat qilishi uchun ushbu yangi qoidalarni yuklaydi.
Tugatganingizdan so'ng, MySQL konsoliga kirish imkoningiz bor-yo'qligini tekshirib ko'ring:
$ sudo mysql
Bu MySQL serveriga ma'muriy ma'lumotlar bazasi foydalanuvchi ildizisudo
sifatida ulanadi, bu buyruqni ishga tushirishda foydalanish natijasida paydo bo'ladi. Siz shunday chiqishni ko'rishingiz kerak:
MySQL konsolidan chiqish uchun quyidagilarni kiriting:
mysql> exit
E'tibor bering, skriptni ishga tushirishda parolni belgilagan bo'lsangiz ham , root foydalanuvchisi sifatida ulanish uchun parol kiritishingiz shart emas edi . mysql_secure_installation
Buning sababi, ma'muriy MySQL foydalanuvchisi uchun standart autentifikatsiya usuli unix_socket
o'rniga password
. Avvaliga bu xavfsizlik muammosidek tuyulishi mumkin bo'lsa-da, bu ma'lumotlar bazasi serverini yanada xavfsizroq qiladi, chunki MySQL-ning ildiz foydalanuvchisi sifatida tizimga kirishga ruxsat berilgan yagona foydalanuvchilar sudo imtiyozlariga ega bo'lgan tizim foydalanuvchilari konsoldan yoki dastur bilan ishlaydigan dastur orqali ulanadi. bir xil imtiyozlar. Amaliy ma'noda, bu sizning PHP ilovangizdan ulanish uchun ma'muriy ma'lumotlar bazasi ildiz foydalanuvchisidan foydalana olmaysiz. Ildiz uchun parol o'rnatishMySQL hisob qaydnomasi, agar standart autentifikatsiya usuli dan unix_socket
ga o'zgartirilgan bo'lsa, himoya vositasi sifatida ishlaydi password
.
Xavfsizlikni oshirish uchun har bir ma'lumotlar bazasi uchun kamroq keng imtiyozlarga ega maxsus foydalanuvchi hisoblariga ega bo'lish yaxshiroqdir, ayniqsa siz serveringizda bir nechta ma'lumotlar bazalariga ega bo'lishni rejalashtirmoqchi bo'lsangiz.
MySQL serveringiz endi o'rnatildi va himoyalandi. Keyinchalik, LEMP stekidagi yakuniy komponent bo'lgan PHP ni o'rnatamiz.
3-qadam - PHP o'rnatish
Sizda kontentingizga xizmat ko'rsatish uchun Nginx o'rnatilgan va ma'lumotlarni saqlash va boshqarish uchun MySQL o'rnatilgan. Endi siz veb-server uchun kodni qayta ishlash va dinamik tarkibni yaratish uchun PHP-ni o'rnatishingiz mumkin.
Apache har bir soʻrovda PHP tarjimonini joylashtirgan boʻlsa-da, Nginx PHP bilan ishlov berish va PHP tarjimonining oʻzi va veb-server oʻrtasida koʻprik vazifasini bajarish uchun tashqi dasturni talab qiladi. Bu ko'pchilik PHP-ga asoslangan veb-saytlarda umumiy ishlashni yaxshilash imkonini beradi, ammo bu qo'shimcha konfiguratsiyani talab qiladi. “PHP fastCGI jarayon menejeri” ni oʻrnatishingiz php-fpm
va Nginx’ga PHP soʻrovlarini qayta ishlash uchun ushbu dasturiy taʼminotga yuborishini aytishingiz kerak. Bundan tashqari, sizga php-mysql
PHP-ning MySQL-ga asoslangan ma'lumotlar bazalari bilan bog'lanishiga imkon beruvchi PHP moduli kerak bo'ladi. Asosiy PHP paketlari avtomatik ravishda bog'liqlik sifatida o'rnatiladi.
Paketlarni o'rnatish uchun quyidagilarni php-fpm
bajaring :php-mysql
$ sudo apt install php-fpm php-mysql
So'ralganda, kiriting Y
va ENTER
o'rnatishni tasdiqlang.
Endi siz PHP komponentlarini o'rnatdingiz. Keyin Nginx-ni ulardan foydalanish uchun sozlaysiz.
4-qadam — PHP protsessoridan foydalanish uchun Nginx-ni sozlash
Nginx veb-serveridan foydalanganda biz konfiguratsiya tafsilotlarini qamrab olish va bitta serverda bir nechta domenlarni joylashtirish uchun server bloklarini (Apache'dagi virtual xostlarga o'xshash) yaratishimiz mumkin. Ushbu qo'llanmada biz domen nomi sifatida your_domain dan foydalanamiz. DigitalOcean bilan domen nomini o'rnatish haqida ko'proq ma'lumot olish uchun DigitalOcean DNS ga kirishimizga qarang .
Ubuntu 20.04 da Nginx sukut bo'yicha yoqilgan bitta server blokiga ega va katalogdan hujjatlarga xizmat ko'rsatish uchun sozlangan /var/www/html
. Bu bitta sayt uchun yaxshi ishlayotgan bo'lsa-da, agar siz bir nechta saytlarni joylashtirsangiz, uni boshqarish qiyin bo'lishi mumkin. ni oʻzgartirish oʻrniga, agar mijoz soʻrovi boshqa saytlarga toʻgʻri kelmasa, xizmat koʻrsatish uchun birlamchi katalog sifatida oʻrnida qoldirib , your_domain veb-sayti uchun /var/www/html
katalog tuzilmasini yaratamiz ./var/www/var/www/html
your_domain uchun ildiz veb-katalogini quyidagicha yarating:
$ sudo mkdir /var/www/your_domain
Keyin, joriy tizim foydalanuvchisiga havola qiladigan $USER muhit oʻzgaruvchisi bilan katalog egaligini tayinlang:
$ sudo chown -R $USER:$USER /var/www/your_domain
sites-available
Keyin, afzal ko'rgan buyruq qatori muharriridan foydalanib, Nginx katalogida yangi konfiguratsiya faylini oching . Bu erda biz foydalanamiz nano
:
$ sudo nano /etc/nginx/sites-available/your_domain
Bu yangi bo'sh faylni yaratadi. Quyidagi yalang suyak konfiguratsiyasiga joylashtiring:
server { listen 80; server_name your_domain www.your_domain; root /var/www/your_domain; index index.html index.htm index.php; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; } location ~ /\.ht { deny all; } }
Ushbu ko'rsatmalar va joylashuv bloklarining har biri nima qiladi:
listen
— Nginx qaysi portni tinglashini belgilaydi. Bunday holda, u80
HTTP uchun standart port bo'lgan portni tinglaydi.root
— Ushbu veb-sayt tomonidan taqdim etilgan fayllar saqlanadigan hujjat ildizini belgilaydi.index
— Nginx ushbu veb-sayt uchun indeks fayllariga qaysi tartibda ustunlik berishini belgilaydi. PHP ilovalarida texnik xizmat ko'rsatish sahifasini tezda o'rnatishga imkon berish uchun fayllardanindex.html
ko'ra ustunlikka ega bo'lgan fayllarni ro'yxatga olish odatiy holdir .index.php
Siz ushbu sozlamalarni ilova ehtiyojlaringizga yaxshiroq moslashtirish uchun sozlashingiz mumkin.server_name
— Ushbu server bloki qaysi domen nomlari va/yoki IP manzillari uchun javob berishi kerakligini belgilaydi. Ushbu ko'rsatmani serveringizning domen nomi yoki umumiy IP manziliga yo'naltiring.location /
— Birinchi joylashuv blokitry_files
direktivani o'z ichiga oladi, u URI so'roviga mos keladigan fayllar yoki kataloglar mavjudligini tekshiradi. Agar Nginx tegishli manbani topa olmasa, u 404 xatosini qaytaradi.location ~ \.php$
— Bu joylashuv bloki Nginx-nifastcgi-php.conf
konfiguratsiya fayliga vaphp7.4-fpm.sock
qaysi rozetka bilan bog'langanligini e'lon qiluvchi faylga yo'naltirish orqali haqiqiy PHP ishlovini boshqaradiphp-fpm
.location ~ /\.ht
— Oxirgi joylashuv bloki.htaccess
Nginx qayta ishlamaydigan fayllar bilan bog'liq.deny all
Direktivni qo'shish orqali , agar biron bir.htaccess
fayl hujjat ildiziga yo'l topsa, ular tashrif buyuruvchilarga taqdim etilmaydi.
Tahrirlash tugagach, faylni saqlang va yoping. dan foydalanayotgan bo'lsangiz nano
, buni tasdiqlash uchun terib CTRL+X
, keyin y
va keyin qilishingiz mumkin ENTER
.
sites-enabled
Nginx katalogidan konfiguratsiya fayliga ulanish orqali konfiguratsiyangizni faollashtiring :
$ sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
Keyin, standart konfiguratsiya faylini /sites-enabled/
katalogdan ajratib oling:
$ sudo unlink /etc/nginx/sites-enabled/default
$ sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
Bu Nginx-ga keyingi safar qayta yuklanganda konfiguratsiyadan foydalanishni aytadi. Siz konfiguratsiyani sintaktik xatolar uchun tekshirishingiz mumkin:
$ sudo nginx -t
Agar biron-bir xatolik haqida xabar berilsa, davom etishdan oldin uning mazmunini ko'rib chiqish uchun konfiguratsiya faylingizga qayting.
Tayyor bo'lgach, o'zgarishlarni qo'llash uchun Nginx-ni qayta yuklang:
$ sudo systemctl reload nginx
Yangi veb-saytingiz hozir faol, lekin veb-ildiz hali ham bo'sh. Yangi server blokingiz kutilganidek ishlashini tekshirishimiz uchun oʻsha joyda fayl yarating :/var/www/
your_domain
index.html
$ nano /var/www/your_domain/index.html
Ushbu faylga quyidagi tarkibni qo'shing:
<html> <head> <title>your_domain website</title> </head> <body> <h1>Hello World!</h1> <p>This is the landing page of <strong>your_domain</strong>.</p> </body> </html>
Endi brauzeringizga o'ting va server_name
server blokining konfiguratsiya faylidagi direktivada ko'rsatilganidek, serveringizning domen nomi yoki IP manziliga kiring:
http://server_domain_or_IP
Siz shunday sahifani ko'rasiz:

Agar siz ushbu sahifani ko'rsangiz, bu sizning Nginx server blokingiz kutilganidek ishlayotganini anglatadi.
Siz uni almashtirish uchun faylni sozlamaguningizcha ushbu faylni ilovangiz uchun vaqtinchalik ochilish sahifasi sifatida qoldirishingiz mumkin index.php
. Buni qilganingizdan so'ng, index.html
faylni hujjat ildizidan olib tashlashni yoki nomini o'zgartirishni unutmang, chunki u index.php
sukut bo'yicha fayldan ustun bo'ladi.
LEMP stekingiz endi toʻliq sozlangan. .php
Keyingi bosqichda biz Nginx yangi sozlangan veb-saytingizdagi fayllar bilan ishlashga qodirligini tekshirish uchun PHP skriptini yaratamiz .
5-qadam - Nginx bilan PHPni sinab ko'rish
Sizning LEMP stekingiz endi to'liq sozlangan bo'lishi kerak. .php
Nginx fayllarni PHP protsessoringizga to'g'ri topshirishi mumkinligini tekshirish uchun uni sinab ko'rishingiz mumkin .
Buni hujjat ildizida test PHP faylini yaratish orqali qilishingiz mumkin. info.php
Matn muharririda hujjat ildizida deb nomlangan yangi faylni oching :
$ nano /var/www/your_domain/info.php
Quyidagi qatorlarni yangi faylga kiriting yoki joylashtiring. Bu sizning serveringiz haqidagi ma'lumotlarni qaytaradigan haqiqiy PHP kodi:
<?php phpinfo();
Tugatganingizdan so'ng, faylni saqlang va yoping va tasdiqlash uchun CTRL
+ X
va keyin y
va ENTER
tasdiqlang.
Endi siz Nginx konfiguratsiya faylida oʻrnatgan domen nomi yoki umumiy IP manziliga tashrif buyurib, veb-brauzeringizdagi ushbu sahifaga kirishingiz mumkin, keyin /info.php
:
http://server_domain_or_IP/info.php
Siz serveringiz haqida batafsil ma'lumotni o'z ichiga olgan veb-sahifani ko'rasiz:

Ushbu sahifa orqali PHP serveringiz haqidagi tegishli ma'lumotlarni tekshirgandan so'ng, siz yaratgan faylni o'chirib tashlaganingiz ma'qul, chunki unda PHP muhiti va Ubuntu serveringiz haqida nozik ma'lumotlar mavjud. Siz rm
ushbu faylni o'chirish uchun foydalanishingiz mumkin:
$ sudo rm /var/www/your_domain/info.php
Agar kerak bo'lsa, bu faylni har doim qayta tiklashingiz mumkin.
6-qadam - PHP dan ma'lumotlar bazasi ulanishini sinab ko'rish (ixtiyoriy)
Agar siz PHP MySQL-ga ulanishi va ma'lumotlar bazasi so'rovlarini bajara olishini sinab ko'rmoqchi bo'lsangiz, PHP skriptidan so'nggi ma'lumotlar va uning mazmuni uchun so'rovlar bilan test jadvalini yaratishingiz mumkin. Buni amalga oshirishdan oldin test ma'lumotlar bazasini va unga kirish uchun to'g'ri sozlangan yangi MySQL foydalanuvchisini yaratishimiz kerak.
Ushbu yozish vaqtida mahalliy MySQL PHP kutubxonasi MySQL 8 uchun standart autentifikatsiya usulini mysqlnd
qo'llab-quvvatlamaydi . MySQL ma'lumotlar bazasiga ulanish imkoniyatiga ega bo'lish uchun autentifikatsiya usuli bilan yangi foydalanuvchi yaratishimiz kerak. PHP.caching_sha2_authenticationmysql_native_password
Biz example_database nomli ma'lumotlar bazasini va example_user nomli foydalanuvchini yaratamiz , lekin siz bu nomlarni turli qiymatlar bilan almashtirishingiz mumkin.
Birinchidan, ildiz hisob qaydnomasi yordamida MySQL konsoliga ulaning :
$ sudo mysql
Yangi ma'lumotlar bazasini yaratish uchun MySQL konsolingizdan quyidagi buyruqni bajaring:
mysql> CREATE DATABASE example_database;
Endi siz yangi foydalanuvchi yaratishingiz va ularga o'zingiz yaratgan maxsus ma'lumotlar bazasida to'liq imtiyozlar berishingiz mumkin.
Quyidagi buyruq standart autentifikatsiya usuli sifatida example_user
ismli yangi foydalanuvchi yaratadi . mysql_native_password
Biz ushbu foydalanuvchi parolini sifatida belgilayapmiz password
, lekin siz bu qiymatni oʻzingiz tanlagan xavfsiz parol bilan almashtirishingiz kerak.
mysql> CREATE USER 'example_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
example_database
Endi biz ushbu foydalanuvchiga ma'lumotlar bazasiga ruxsat berishimiz kerak :
mysql> GRANT ALL ON example_database.* TO 'example_user'@'%';
Bu example_user foydalanuvchisiga example_ma'lumotlar bazasi ma'lumotlar bazasiga nisbatan to'liq imtiyozlar beradi , shu bilan birga bu foydalanuvchi serveringizda boshqa ma'lumotlar bazalarini yaratish yoki o'zgartirishga yo'l qo'ymaydi.
Endi MySQL qobig'idan chiqing:
mysql> exit
Yangi foydalanuvchi tegishli ruxsatlarga ega yoki yoʻqligini MySQL konsoliga qayta kirish orqali tekshirishingiz mumkin, bu safar maxsus foydalanuvchi hisob maʼlumotlari yordamida:
$ mysql -u example_user -p
Ushbu buyruqdagi bayroqqa e'tibor bering , u sizdan example_user-p
foydalanuvchisini yaratishda ishlatiladigan parolni so'raydi . MySQL konsoliga kirganingizdan so'ng, example_ma'lumotlar bazasi ma'lumotlar bazasiga kirish huquqiga ega ekanligingizni tasdiqlang:
mysql> SHOW DATABASES;
Bu sizga quyidagi chiqishni beradi:
Output+--------------------+ | Database | +--------------------+ | example_database | | information_schema | +--------------------+ 2 rows in set (0.000 sec)lsql
Keyinchalik, biz todo_list nomli test jadvalini yaratamiz . MySQL konsolidan quyidagi bayonotni ishga tushiring:
mysql> CREATE TABLE example_database.todo_list (
mysql> item_id INT AUTO_INCREMENT,
mysql> content VARCHAR(255),
mysql> PRIMARY KEY(item_id)
mysql> );
Sinov jadvaliga bir necha qator tarkibni kiriting. Turli qiymatlardan foydalangan holda keyingi buyruqni bir necha marta takrorlashni xohlashingiz mumkin:
mysql> INSERT INTO example_database.todo_list (content) VALUES ("My first important item");
Ma'lumotlar jadvalingizga muvaffaqiyatli saqlanganligini tasdiqlash uchun quyidagilarni bajaring:
mysql> SELECT * FROM example_database.todo_list;
Siz quyidagi chiqishni ko'rasiz:
Output+---------+--------------------------+ | item_id | content |sq +---------+--------------------------+ | 1 | My first important item | | 2 | My second important item | | 3 | My third important item | | 4 | and this one more thing | +---------+--------------------------+ 4 rows in set (0.000 sec)
Sinov jadvalida to'g'ri ma'lumotlar mavjudligini tasdiqlaganingizdan so'ng, MySQL konsolidan chiqishingiz mumkin:
mysql> exit
Endi siz MySQL-ga ulanadigan PHP skriptini yaratishingiz va tarkibingizga so'rov yuborishingiz mumkin. O'zingiz yoqtirgan muharrir yordamida maxsus veb-ildiz katalogingizda yangi PHP fayl yarating. Buning uchun biz foydalanamiz nano
:
$ nano /var/www/your_domain/todo_list.php
Quyidagi PHP skripti MySQL ma'lumotlar bazasiga ulanadi va natijalar ro'yxatda ko'rsatiladigan todo_list jadvalining mazmuni uchun so'rovlar. Agar ma'lumotlar bazasiga ulanishda muammo bo'lsa, u istisno qiladi. todo_list.php
Ushbu tarkibni skriptingizga nusxalang :
<?php $user = "example_user"; $password = "password"; $database = "example_database"; $table = "todo_list"; try { $db = new PDO("mysql:host=localhost;dbname=$database", $user, $password); echo "<h2>TODO</h2><ol>"; foreach($db->query("SELECT content FROM $table") as $row) { echo "<li>" . $row['content'] . "</li>"; } echo "</ol>"; } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br/>"; die(); }
Tahrirlash tugagach, faylni saqlang va yoping.
Endi veb-brauzeringizdagi ushbu sahifaga veb-saytingiz uchun sozlangan domen nomi yoki umumiy IP-manzilga tashrif buyurib, undan keyin kirishingiz mumkin /todo_list.php
:
http://server_domain_or_IP/todo_list.php
Siz test jadvalingizga kiritgan tarkibni ko'rsatadigan shunday sahifani ko'rishingiz kerak:

Bu sizning PHP muhitingiz MySQL serveringizga ulanish va o'zaro ishlashga tayyorligini bildiradi.
Xulosa
Ushbu qo'llanmada biz Nginx-ni veb-server sifatida va MySQL-ni ma'lumotlar bazasi tizimi sifatida ishlatib, tashrif buyuruvchilaringizga PHP veb-saytlari va ilovalariga xizmat ko'rsatish uchun moslashuvchan poydevor yaratdik.
Last updated
Was this helpful?