Page cover

🌊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 sudoushbu 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 80uchun Apacheprofildan 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 80endi 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 iproute2IP 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 curlyordam 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, aptushbu dasturni sotib olish va o'rnatish uchun foydalaning:

$ sudo apt install mysql-server

So'ralganda, yozish orqali o'rnatishni tasdiqlang Yva 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.

Eslatma: Ushbu xususiyatni yoqish - bu qaror qabul qilishdir. Agar yoqilgan bo'lsa, belgilangan mezonlarga mos kelmaydigan parollar MySQL tomonidan xatolik bilan rad etiladi. Tasdiqlashni o'chirib qo'yish xavfsiz, lekin ma'lumotlar bazasi hisob ma'lumotlari uchun har doim kuchli, noyob parollardan foydalanishingiz kerak.

Yoqmasdan Ydavom 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 2eng 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 PLUGINserveringiz 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 Yva ENTERbosing. 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_installationBuning sababi, ma'muriy MySQL foydalanuvchisi uchun standart autentifikatsiya usuli unix_socketo'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_socketga 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.

Eslatma: Ushbu yozish vaqtida mahalliy MySQL PHP kutubxonasi MySQL 8 uchun standart autentifikatsiya usulini mysqlnd qo'llab-quvvatlamaydi caching_sha2_authentication . Shu sababli, MySQL 8 da PHP ilovalari uchun ma'lumotlar bazasi foydalanuvchilarini yaratishda siz ularning mavjudligiga ishonch hosil qilishingiz kerak. mysql_native_passwordo'rniga foydalanish uchun tuzilgan . Buni qanday qilishni 6-bosqichda ko'rsatamiz .

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 phpsizga php-mysqlPHP ning MySQL-ga asoslangan ma'lumotlar bazalari bilan bog'lanishiga imkon beruvchi PHP moduli kerak bo'ladi. libapache2-mod-phpBundan 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/htmlkatalogdagi 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/htmlkatalog tuzilmasini yaratamiz ./var/www/var/www/html

Domeningiz uchun quyidagi tarzda katalog yarating :

$ sudo mkdir /var/www/your_domain

$USERKeyinchalik, joriy tizim foydalanuvchisiga havola qiladigan muhit o'zgaruvchisi bilan katalog egaligini tayinlang :

$ sudo chown -R $USER:$USER /var/www/your_domain

sites-availableKeyin, 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 nanotugmalarini bosib qilishingiz mumkin .CTRL+XYENTER

Ushbu VirtualHostkonfiguratsiya bilan biz Apache-ga veb-ildiz katalogi sifatida your_domainfoydalanishni 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_domainServerNameServerAlias#

Endi siz a2ensiteyangi 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_domainindex.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.htmlfaylni hujjat ildizidan olib tashlashni yoki nomini o'zgartirishni unutmang, chunki u index.phpsukut bo'yicha fayldan ustun bo'ladi.

DirectoryIndexApache haqida eslatma

Apache'dagi standart DirectoryIndexsozlamalar bilan nomlangan fayl index.htmlhar doim fayldan ustun turadi index.php. index.htmlBu 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.htmlfayl 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.confko'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.phpShaxsiy 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_userismli yangi foydalanuvchi yaratadi . mysql_native_passwordBiz 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_databaseEndi 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.phpUshbu 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?