πUbuntu 20.04 da Linux, Apache, MySQL, PHP (LAMP) stekini qanday o'rnatish kerak
// Qo'llanma //
Kirish
"LAMP" stek - bu serverga PHP-da yozilgan dinamik veb-saytlar va veb-ilovalarni joylashtirish imkonini berish uchun odatda birgalikda o'rnatiladigan ochiq kodli dasturiy ta'minot guruhi. Bu atama A pache veb-serverli L inux operatsion tizimini ifodalovchi qisqartma hisoblanadi . Sayt ma'lumotlari M ySQL ma'lumotlar bazasida saqlanadi va dinamik tarkib P HP tomonidan qayta ishlanadi .
Ushbu qo'llanmada siz Ubuntu 20.04 serverida LAMP to'plamini o'rnatasiz.
1-qadam - Apache-ni o'rnatish va xavfsizlik devorini yangilash
Apache veb-serveri dunyodagi eng mashhur veb-serverlardan biridir. U yaxshi hujjatlashtirilgan, faol foydalanuvchilar hamjamiyatiga ega va Internet tarixining ko'p qismida keng qo'llanilgan, bu esa uni veb-saytni joylashtirish uchun ajoyib tanlov qiladi.
Paket menejeri keshini yangilash bilan boshlang. Agar siz sudo
ushbu seansda birinchi marta foydalanayotgan bo'lsangiz, tizim paketlarini boshqarish uchun to'g'ri imtiyozlarga ega ekanligingizni tasdiqlash uchun sizdan foydalanuvchi parolini kiritish so'raladi apt
.
$ sudo apt update
Keyin Apache-ni quyidagi bilan o'rnating:
$ sudo apt install apache2
Shuningdek, sizdan Apache-ning o'rnatilishini tasdiqlash so'raladi Y
, so'ngra tugmasini bosing ENTER
.
OΚ»rnatish tugallangandan soΚ»ng HTTP trafigiga ruxsat berish uchun xavfsizlik devori sozlamalarini oΚ»zgartirishingiz kerak boΚ»ladi. UFWda turli xil dastur profillari mavjud bo'lib, siz buni amalga oshirish uchun foydalanishingiz mumkin. Hozirda mavjud bo'lgan barcha UFW ilovasi profillarini ro'yxatga olish uchun siz quyidagilarni bajarishingiz mumkin:
$ sudo ufw app list
Siz shunday chiqishni ko'rasiz:
OutputAvailable applications: Apache Apache Full Apache Secure OpenSSH
Bu profillarning har biri nimani anglatadi:
Apache : Bu profil faqat portni ochadi
80
(oddiy, shifrlanmagan veb-trafik).Apache Full : Bu profil 80-portni (oddiy, shifrlanmagan veb-trafik) va 443-portni (TLS/SSL shifrlangan trafik) ochadi.
Apache Secure : Bu profil faqat portni ochadi
443
(TLS/SSL shifrlangan trafik).
Hozircha faqat port orqali ulanishga ruxsat bergan ma'qul 80
, chunki bu yangi Apache o'rnatilishi va sizda hali ham serveringizda HTTPS trafigiga ruxsat berish uchun sozlangan TLS/SSL sertifikati yo'q.
Faqat portdagi trafikka ruxsat berish 80
uchun Apache
profildan foydalaning:
sudo ufw allow in "Apache"
O'zgartirishni quyidagi bilan tasdiqlashingiz mumkin:
$ sudo ufw status
OutputStatus: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)
Portdagi trafik 80
endi xavfsizlik devori orqali ruxsat etiladi.
Veb-brauzeringizdagi serveringizning umumiy IP-manziliga tashrif buyurib, hamma narsa rejalashtirilganidek ketayotganini tekshirish uchun darhol joyni tekshirishingiz mumkin (agar sizda bu ma'lumot bo'lmasa, umumiy IP manzilingiz nima ekanligini bilish uchun keyingi sarlavha ostidagi eslatmaga qarang. allaqachon):
http://your_server_ip
Siz standart Ubuntu 20.04 Apache veb-sahifasini ko'rasiz, u ma'lumot va sinov maqsadlarida mavjud. Bu shunday ko'rinishi kerak:

Agar siz ushbu sahifani ko'rsangiz, veb-serveringiz to'g'ri o'rnatilgan va xavfsizlik devori orqali kirish mumkin.
Serveringizning umumiy IP manzilini qanday topish mumkin
Agar serveringizning umumiy IP manzili nima ekanligini bilmasangiz, uni topishning bir qancha usullari mavjud. Odatda, bu SSH orqali serveringizga ulanish uchun foydalanadigan manzildir.
Buni buyruq satridan qilishning bir necha xil usullari mavjud. Birinchidan, siz iproute2
IP manzilingizni olish uchun quyidagi vositalardan foydalanishingiz mumkin:
$ ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Bu sizga ikki yoki uch qatorni qaytarib beradi. Ularning barchasi to'g'ri manzillar, lekin sizning kompyuteringiz ulardan faqat bittasini ishlatishi mumkin, shuning uchun har birini sinab ko'ring.
Muqobil usul bu curl
yordam dasturidan tashqi tomon bilan bog'lanish uchun serveringizni qanday ko'rishini aytib berishdir . Bu ma'lum bir serverdan sizning IP manzilingizni so'rash orqali amalga oshiriladi:
$ curl http://icanhazip.com
IP manzilingizni olish uchun qanday usuldan qat'i nazar, standart Apache sahifasini ko'rish uchun uni veb-brauzeringizning manzil satriga kiriting.
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 root foydalanuvchisi uchun parolni tanlash va tasdiqlashingizni so'raydi. Buni tizim root bilan aralashtirib yubormaslik kerak . Ma'lumotlar bazasining root 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 , qo'shimcha xavfsizlik chorasi sifatida bu yerda 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'chiradi, masofaviy root loginlarini 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 rootsudo
sifatida ulanadi, bu buyruqni ishga tushirishda foydalanish natijasida paydo bo'ladi. Siz shunday chiqishni ko'rishingiz kerak:
OutputWelcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 22 Server version: 8.0.19-0ubuntu5 (Ubuntu) Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
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 root 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 root foydalanuvchisidan foydalana olmaysiz. root 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.
Sizning MySQL serveringiz endi o'rnatilgan va himoyalangan. Keyinchalik, LAMP stekidagi yakuniy komponent bo'lgan PHP ni o'rnatamiz.
3-qadam - PHP o'rnatish
Sizda kontentingizga xizmat ko'rsatish uchun Apache o'rnatilgan va ma'lumotlarni saqlash va boshqarish uchun MySQL o'rnatilgan. PHP oxirgi foydalanuvchiga dinamik tarkibni ko'rsatish uchun kodni qayta ishlovchi o'rnatishimizning komponentidir. Paketga qo'shimcha ravishda php
sizga php-mysql
PHP ning MySQL-ga asoslangan ma'lumotlar bazalari bilan bog'lanishiga imkon beruvchi PHP moduli kerak bo'ladi. libapache2-mod-php
Bundan tashqari , PHP fayllarini boshqarish uchun Apache-ni yoqishingiz kerak . Asosiy PHP paketlari avtomatik ravishda bog'liqlik sifatida o'rnatiladi.
Ushbu paketlarni o'rnatish uchun quyidagilarni bajaring:
$ sudo apt install php libapache2-mod-php php-mysql
O'rnatish tugallangach, PHP versiyasini tasdiqlash uchun quyidagi buyruqni ishga tushirishingiz mumkin:
$ php -v
OutputPHP 7.4.3 (cli) (built: Jul 5 2021 15:13:35) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
Ayni paytda sizning LAMP stekingiz toβliq ishlayapti, lekin PHP skripti bilan sozlashni sinab koβrishdan oldin veb-saytingiz fayl va papkalarini saqlash uchun toβgβri Apache virtual xostini oβrnatgan maβqul. Buni keyingi bosqichda qilamiz.
4-qadam β Veb-saytingiz uchun virtual xost yaratish
Apache veb-serveridan foydalanganda, konfiguratsiya tafsilotlarini inkapsulyatsiya qilish va bitta serverdan bir nechta domenlarni joylashtirish uchun virtual xostlar (Nginx-dagi server bloklariga o'xshash) yaratishingiz mumkin. Ushbu qo'llanmada biz your_domain nomli domenni o'rnatamiz , lekin siz uni o'zingizning domen nomingiz bilan almashtirishingiz kerak
Ubuntu 20.04-dagi Apache-da sukut bo'yicha yoqilgan bitta server bloki mavjud bo'lib, u /var/www/html
katalogdagi hujjatlarga xizmat ko'rsatish uchun sozlangan. Bu bitta sayt uchun yaxshi ishlayotgan bo'lsa-da, agar siz bir nechta saytlarni joylashtirsangiz, u noqulay 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 sayti uchun /var/www/html
katalog tuzilmasini yaratamiz ./var/www/var/www/html
Domeningiz uchun quyidagi tarzda katalog yarating :
$ sudo mkdir /var/www/your_domain
$USER
Keyinchalik, joriy tizim foydalanuvchisiga havola qiladigan 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, Apache katalogida yangi konfiguratsiya faylini oching . Bu erda biz foydalanamiz nano
:
$ sudo nano /etc/apache2/sites-available/your_domain.conf
Bu yangi bo'sh faylni yaratadi. Quyidagi yalang suyak konfiguratsiyasida joylashtiring:
<VirtualHost *:80> ServerName your_domain ServerAlias www.your_domain ServerAdmin webmaster@localhost DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Ishingiz tugagach, faylni saqlang va yoping. Agar siz dan foydalanayotgan bo'lsangiz , buni , keyin va nano
tugmalarini bosib qilishingiz mumkin .CTRL+XYENTER
Ushbu VirtualHost
konfiguratsiya bilan biz Apache-ga veb-ildiz katalogi sifatida your_domain
foydalanishni aytamiz. Agar siz Apache-ni domen nomisiz sinab ko'rmoqchi bo'lsangiz, variantlarni o'chirishingiz yoki sharhlashingiz va har bir parametr satrining boshiga belgi qo'shishingiz mumkin./var/www/
your_domain
ServerNameServerAlias#
Endi siz a2ensite
yangi virtual xostni yoqish uchun foydalanishingiz mumkin:
$ sudo a2ensite your_domain
Siz Apache bilan o'rnatilgan standart veb-saytni o'chirib qo'yishingiz mumkin. Agar siz maxsus domen nomidan foydalanmasangiz, bu talab qilinadi, chunki bu holda Apache-ning standart konfiguratsiyasi virtual xostingizni qayta yozadi. Apache standart veb-saytini o'chirish uchun quyidagilarni kiriting:
$ sudo a2dissite 000-default
Konfiguratsiya faylida sintaksis xatosi yo'qligiga ishonch hosil qilish uchun quyidagilarni bajaring:
$ sudo apache2ctl configtest
Nihoyat, ushbu o'zgarishlar kuchga kirishi uchun Apache-ni qayta yuklang:
$ sudo systemctl reload apache2
Yangi veb-saytingiz hozir faol, lekin veb-ildiz hali ham bo'sh. Virtual xost kutilganidek ishlashini tekshirishimiz uchun ushbu 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 serveringizning domen nomi yoki IP manziliga yana bir bor kiring:
http://server_domain_or_IP
Siz shunday sahifani ko'rasiz:

Agar siz ushbu sahifani ko'rsangiz, bu sizning Apache virtual xostingiz 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.
DirectoryIndex
Apache haqida eslatma
DirectoryIndex
Apache haqida eslatmaApache'dagi standart DirectoryIndex
sozlamalar bilan nomlangan fayl index.html
har doim fayldan ustun turadi index.php
. index.html
Bu tashrif buyuruvchilar uchun ma'lumot beruvchi xabarni o'z ichiga olgan vaqtinchalik fayl yaratish orqali PHP ilovalarida texnik xizmat ko'rsatish sahifalarini o'rnatish uchun foydalidir . Ushbu sahifa sahifadan ustun bo'lganligi sababli index.php
, u ilovaning ochilish sahifasiga aylanadi. Texnik xizmat ko'rsatish tugagach, index.html
fayl nomi o'zgartiriladi yoki hujjat ildizidan o'chiriladi va odatiy dastur sahifasini qaytaradi.
Agar siz ushbu xatti-harakatni o'zgartirmoqchi bo'lsangiz, faylni tahrirlashingiz va faylning direktivada /etc/apache2/mods-enabled/dir.conf
ko'rsatilgan tartibini o'zgartirishingiz kerak bo'ladi:index.phpDirectoryIndex
$ sudo nano /etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </IfModule>
Faylni saqlash va yopgandan so'ng, o'zgarishlar kuchga kirishi uchun Apache-ni qayta yuklashingiz kerak bo'ladi:
$ sudo systemctl reload apache2
Keyingi bosqichda PHP serveringizda toΚ»gΚ»ri oΚ»rnatilgan va sozlanganligini tekshirish uchun PHP skriptini yaratamiz.
5-qadam β Veb-serveringizda PHP ishlov berishni sinab ko'rish
Endi veb-saytingiz fayl va papkalarini joylashtirish uchun maxsus joylashuvingiz bor, biz Apache PHP fayllari uchun soβrovlarni boshqarish va qayta ishlashga qodirligini tasdiqlash uchun PHP test skriptini yaratamiz.
info.php
Shaxsiy veb-ildiz papkangiz ichida yangi fayl yarating :
$ nano /var/www/your_domain/info.php
Bu bo'sh faylni ochadi. Fayl ichiga to'g'ri keladigan PHP kodi bo'lgan quyidagi matnni qo'shing:
<?php phpinfo();
Ishingiz tugagach, faylni saqlang va yoping.
Ushbu skriptni sinab ko'rish uchun veb-brauzeringizga o'ting va serveringizning domen nomi yoki IP manziliga kiring, keyin skript nomi, bu holda info.php
:
http://server_domain_or_IP/info.php
Siz shunga o'xshash sahifani ko'rasiz:

Ushbu sahifa PHP nuqtai nazaridan serveringiz haqida ma'lumot beradi. Bu nosozliklarni tuzatish va sozlamalaringiz to'g'ri qo'llanilishini ta'minlash uchun foydalidir.
Agar siz ushbu sahifani brauzeringizda ko'rsangiz, PHP o'rnatishingiz kutilganidek ishlayapti.
Ushbu sahifa orqali PHP serveringiz haqidagi tegishli ma'lumotlarni tekshirgandan so'ng, siz yaratgan faylni o'chirib tashlaganingiz ma'qul, chunki unda PHP muhitingiz va Ubuntu serveringiz haqida nozik ma'lumotlar mavjud. Buning uchun foydalanishingiz mumkin rm
:
$ sudo rm /var/www/your_domain/info.php
Agar maΚΌlumotlarga keyinroq yana kirish kerak boΚ»lsa, har doim bu sahifani qayta yaratishingiz 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, root 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)
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 | +---------+--------------------------+ | 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://your_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 PHP veb-saytlari va ilovalarini tashrif buyuruvchilaringizga xizmat ko'rsatish uchun moslashuvchan asos yaratdik, Apache-dan veb-server sifatida va MySQL-dan ma'lumotlar bazasi tizimi sifatida foydalanish.
Keyingi qadam sifatida siz HTTPS orqali veb-serveringizga ulanishlar xavfsizligini ta'minlashingiz kerak. Buni amalga oshirish uchun saytingizni bepul TLS/SSL sertifikati bilan himoyalash uchun Let's Encrypt -dan foydalanishingiz mumkin.
Last updated
Was this helpful?