LAMP ติดตั้ง Apache, MariaDB และ PHP บน Ubuntu 20.04

เกี่ยวกับการติดตั้ง LAMP บน Ubuntu 20.04

ในบทความต่อไปนี้เราจะมาดูวิธีการติดตั้ง LAMP บน Ubuntu 20.04 LTS เป็นชุดเครื่องมือซอฟต์แวร์ที่มาพร้อมกัน LAMP ย่อมาจาก Linux, Apache, MariaDB / MySQL และ PHPซึ่งทั้งหมดนี้เป็นโอเพ่นซอร์สและใช้งานได้ฟรี เป็นสแต็กซอฟต์แวร์ที่พบบ่อยที่สุดที่ขับเคลื่อนเว็บไซต์และแอปพลิเคชันเว็บ

Linux เป็นระบบปฏิบัติการ Apache เป็นเว็บเซิร์ฟเวอร์ MariaDB / MySQL เป็นเซิร์ฟเวอร์ฐานข้อมูลและ PHP เป็นภาษาสคริปต์ฝั่งเซิร์ฟเวอร์ที่รับผิดชอบในการสร้างเว็บเพจแบบไดนามิก ในการปฏิบัติตามบรรทัดต่อไปนี้จำเป็นต้องมีระบบปฏิบัติการ Ubuntu 20.04 ทำงานบนเครื่องท้องถิ่นหรือบนเซิร์ฟเวอร์ระยะไกล.

ติดตั้ง LAMP บน Ubuntu 20.04

ก่อนที่จะติดตั้ง LAMP stack เป็นความคิดที่ดี อัพเดตที่เก็บและแพ็คเกจซอฟต์แวร์ที่มี. เราจะทำสิ่งนี้โดยดำเนินการในเทอร์มินัล (Ctrl + Alt + T):

sudo apt update; sudo apt upgrade

ติดตั้งเว็บเซิร์ฟเวอร์ Apache

พิมพ์คำสั่งต่อไปนี้ในเทอร์มินัล (Ctrl + Alt + T) ถึง ติดตั้งเว็บเซิร์ฟเวอร์ Apache:

การติดตั้ง Apache ใน LAMP

sudo apt install -y apache2 apache2-utils

เมื่อติดตั้งแล้ว Apache ควรเริ่มโดยอัตโนมัติ. เราสามารถตรวจสอบได้โดยเขียน:

สถานะ apache2

systemctl status apache2

นอกจากนี้เรายังสามารถ ตรวจสอบเวอร์ชัน Apache:

เวอร์ชัน Apache ติดตั้งใน LAMP

apache2 -v

ตอนนี้ พิมพ์ที่อยู่ IP สาธารณะของเซิร์ฟเวอร์ Ubuntu 20.04 ในแถบที่อยู่ของเบราว์เซอร์. คุณควรเห็นหน้าเว็บเริ่มต้นซึ่งหมายความว่าเว็บเซิร์ฟเวอร์ Apache ทำงานได้อย่างถูกต้อง หากคุณกำลังติดตั้ง LAMP บนเครื่อง Ubuntu 20.04 ในเครื่องให้พิมพ์ 127.0.0.1 หรือ localhost ในแถบที่อยู่ เบราว์เซอร์.

apache2 ทำงานในเบราว์เซอร์

หากการเชื่อมต่อถูกปฏิเสธหรือไม่เสร็จสมบูรณ์เราอาจมีไฟร์วอลล์ป้องกันการร้องขอที่เข้ามาในพอร์ต TCP 80 หากคุณใช้ไฟร์วอลล์ iptablesคุณต้องรันคำสั่งต่อไปนี้เพื่อเปิดพอร์ต TCP 80:

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

หากคุณกำลังใช้ไฟร์วอลล์ UFWดำเนินการคำสั่งเพื่อเปิดพอร์ต TCP 80:

sudo ufw allow http

ตอนนี้เราต้องการ ตั้งค่า www-data (ผู้ใช้ Apache) ในฐานะเจ้าของเว็บรูท. เราจะบรรลุสิ่งนี้โดยการเขียน:

sudo chown www-data:www-data /var/www/html/ -R

ติดตั้งเซิร์ฟเวอร์ฐานข้อมูล MariaDB

MariaDB เป็นการแทนที่โดยตรงสำหรับ MySQL เขียนคำสั่งต่อไปนี้เพื่อ ติดตั้ง MariaDB บน Ubuntu 20.04:

การติดตั้งเซิร์ฟเวอร์ maridb ใน LAMP

sudo apt install mariadb-server mariadb-client

หลังจากติดตั้งแล้วเซิร์ฟเวอร์ MariaDB ควรทำงานโดยอัตโนมัติ เราจะทำได้ ตรวจสอบสถานะของคุณ ด้วยคำสั่ง:

สถานะ mariadb

systemctl status mariadb

ถ้ามันไม่ทำงาน เราจะเริ่มต้นด้วยการเขียน:

sudo systemctl start mariadb

ไปยัง อนุญาตให้ MariaDB เริ่มต้นโดยอัตโนมัติในเวลาบูตเราต้องดำเนินการ:

sudo systemctl enable mariadb

ตรวจสอบไฟล์ เวอร์ชันเซิร์ฟเวอร์ MariaDB:

เวอร์ชัน mariadb ติดตั้งใน LAMP

mariadb --version

ตอนนี้ รันสคริปต์ความปลอดภัยหลังการติดตั้ง:

sudo mysql_secure_installation

เมื่อคุณขอให้เราป้อนรหัสผ่านรูท MariaDB ชีพจร แนะนำ เนื่องจากยังไม่ได้ตั้งรหัสผ่านรูท. จากนั้นป้อนรหัสผ่านรูทของคุณสำหรับเซิร์ฟเวอร์ MariaDB

mysql_password การรักษาความปลอดภัย

แล้วก็ เราสามารถกด แนะนำ เพื่อตอบคำถามที่เหลือทั้งหมด. การดำเนินการนี้จะลบผู้ใช้ที่ไม่ระบุชื่อปิดใช้งานการล็อกอินรูทระยะไกลและลบฐานข้อมูลทดสอบ

คำถามเกี่ยวกับการกำหนดค่าความปลอดภัย mysql ใน MariaDB

ค่าเริ่มต้น, แพ็คเกจ MaraiDB ใน Ubuntu ใช้ unix_socket เพื่อตรวจสอบการเข้าสู่ระบบของผู้ใช้.

ติดตั้ง PHP7.4

ในขณะที่เขียน PHP7.4 เป็นเวอร์ชันเสถียรล่าสุดของ PHP สำหรับสิ่งนี้เราจะเขียนคำสั่งต่อไปนี้ ติดตั้ง PHP7.4 และโมดูล PHP ทั่วไป:

ติดตั้ง php 7.4 ใน LAMP

sudo apt install php7.4 libapache2-mod-php7.4 php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline

ตอนนี้เราจะต้อง เปิดใช้งานโมดูล Apache php7.4 และรีสตาร์ทเว็บเซิร์ฟเวอร์ Apache.

เปิดใช้งานโมดูล php7.4

sudo a2enmod php7.4

sudo systemctl restart apache2

เราทำได้ ตรวจสอบเวอร์ชัน PHP ด้วยคำสั่ง:

เวอร์ชัน php ที่ติดตั้งใน LAMP

php --version

ในการทดสอบสคริปต์ PHP กับเซิร์ฟเวอร์ Apache เราจำเป็นต้องสร้างไฟล์ info.php ในไดเรกทอรีราก:

sudo vim /var/www/html/info.php

ภายในไฟล์เราจะวางโค้ด PHP ต่อไปนี้:

<?php phpinfo(); ?>

เมื่อบันทึกไฟล์แล้วตอนนี้ในแถบที่อยู่ของเบราว์เซอร์เราจะต้องเขียน ที่อยู่ ip / info.php. แทนที่ที่อยู่ IP ด้วย IP ปัจจุบันของคุณ. หากคุณใช้เครื่องท้องถิ่นให้พิมพ์ 127.0.0.1 / info.php o localhos / info.php. สิ่งนี้ควรแสดงข้อมูล PHP

โลคอลโฮสต์ phpinfo.php

เรียกใช้ PHP-FPM ด้วย Apache

เราจะหาสองวิธีในการเรียกใช้โค้ด PHP กับเว็บเซิร์ฟเวอร์ Apache ด้วยโมดูล PHP Apache และ PHP-FPM

ในขั้นตอนข้างต้นโมดูล Apache PHP7.4 ใช้เพื่อจัดการโค้ด PHP โดยทั่วไปจะใช้ได้ดี แต่ ในบางกรณีเราต้องรันโค้ด PHP ด้วย PHP-FPM. ที่จะทำมัน เราจะต้องปิดการใช้งานโมดูล Apache PHP7.4:

ปิดการใช้งาน Apache php7.4 ใน LAMP

sudo a2dismod php7.4

ตอนนี้ขอ ติดตั้ง PHP-FPM:

การติดตั้ง php7.4-fpm ใน LAMP

sudo apt install php7.4-fpm

เรายังคง การเปิดใช้งานโมดูล proxy_fcgi และ setenvif:

เปิดใช้งาน proxy_fcgi setenvif

sudo a2enmod proxy_fcgi setenvif

ขั้นตอนต่อไปจะเป็น เปิดใช้งานไฟล์กำหนดค่า /etc/apache2/conf-avilable/php7.4-fpm.conf:

คำสั่งเปิดใช้งาน a2enconf php7.4

sudo a2enconf php7.4-fpm

จากนั้นเราจะต้อง รีสตาร์ท apache:

sudo systemctl restart apache2

ตอนนี้ถ้าคุณรีเฟรชหน้า info.php ในเบราว์เซอร์คุณจะพบว่า Server API เปลี่ยนจาก Apache 2.0 Handler เป็น FPM / FastCGIซึ่งหมายความว่าเว็บเซิร์ฟเวอร์ Apache จะส่งคำขอจาก PHP ไปยัง PHP-FPM

เปิดใช้งาน FPM-FastCGI

สุดท้ายและเพื่อความปลอดภัยของเซิร์ฟเวอร์เราต้อง ลบไฟล์ info.php.


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   วลาดิเมียร์ โคซิก dijo

    ขอบคุณมากสำหรับคำแนะนำมันช่วยฉันได้มากและทุกอย่างก็โอเค ...

  2.   พอล dijo

    คำแนะนำที่ชัดเจนและรัดกุม

    กราเซีย

  3.   โยเรดุต dijo

    ดีมากและในที่สุดฉันก็ปิดการใช้งานเซิร์ฟเวอร์ apache เพื่อตีความไฟล์. php เสียเวลา

    1.    Damien A. dijo

      สวัสดี. คุณจะไม่รีสตาร์ท apache เหรอ?

  4.   จิ๊ก dijo

    คำแนะนำที่ "สมบูรณ์แบบ"
    ขอบคุณมาก.

  5.   Isidro dijo

    ขั้นตอนนั้นถูกต้อง แต่ไม่มีการทดสอบกับผู้ใช้รูท mysql อีกเล็กน้อย ไฟล์ info.php ใช้งานไม่ได้สำหรับฉัน