ຕິດຕັ້ງ LAMP (Linux, Apache, MariaDB ຫຼື MySQL ແລະ PHP) Stack ໃນ Debian 9


ໃນຕົ້ນອາທິດນີ້ (ວັນທີ 17 ມິຖຸນາ 2017), ໂຄງການ Debian ໄດ້ປະກາດຄວາມພ້ອມຂອງລຸ້ນ ໃໝ່ (Debian 9) ທີ່ມີຊື່ວ່າ Stretch.

ດ້ວຍການປ່ອຍລຸ້ນນີ້, Debian 8 Jessie ທີ່ມີຊື່ສຽງແລະໄດ້ຮັບການ ນຳ ໃຊ້ຢ່າງກວ້າງຂວາງໄດ້ຮັບສະຖານະພາບເກົ່າທີ່ ໝັ້ນ ຄົງ, ເຊິ່ງໄດ້ ກຳ ນົດເອົາຫໍໄຕທີ່ ໝັ້ນ ຄົງກ່ອນ ໜ້າ ນີ້. ຍ້ອນວ່າມັນເກີດຂື້ນເລື້ອຍໆກັບການປ່ອຍລຸ້ນ ໃໝ່ ທີ່ ໝັ້ນ ຄົງ, Stretch ປະກອບມີຫຼາຍຮ້ອຍແພັກເກັດ ໃໝ່, ແລະອັບເດດໃຫ້ຫລາຍພັນຄົນ.

ນັບຕັ້ງແຕ່ Debian ມີອັດຕາສ່ວນໃຫຍ່ຂອງເຄື່ອງແມ່ຂ່າຍເວັບທົ່ວໂລກ, ໃນບົດຄວາມນີ້ພວກເຮົາຈະອະທິບາຍວິທີການຕິດຕັ້ງ LAMP stack ໃນ Debian 9 Stretch.

ສິ່ງນີ້ຈະຊ່ວຍໃຫ້ຜູ້ເບິ່ງແຍງລະບົບຕັ້ງເຄື່ອງແມ່ຂ່າຍເວບໄຊທ໌ ໃໝ່ ທີ່ຢູ່ເທິງສຸດຂອງ Stretch ໂດຍໃຊ້ການປັບປຸງທີ່ຜ່ານມາໃນຫໍສະ ໝຸດ ທາງການຂອງການແຈກຈ່າຍ. ສົມມຸດວ່າທ່ານໄດ້ຍົກລະດັບຈາກ Jessie ແລ້ວ.

ການຕິດຕັ້ງ LAMP ໃນ Debian 9 Stretch

The“ M” ໃນ LAMP ຫຍໍ້ມາຈາກ MariaDB ຫຼື MySQL, ເຊີຟເວີຖານຂໍ້ມູນ ສຳ ລັບ ລຳ ດັບ. ອີງຕາມການເລືອກຂອງທ່ານ, ທ່ານສາມາດຕິດຕັ້ງຖານຂໍ້ມູນເຊີຟເວີແລະສ່ວນປະກອບອື່ນໆ (server web server ແລະ PHP) ດັ່ງຕໍ່ໄປນີ້.

# aptitude update && aptitude install apache2 mariadb-server mariadb-client mariadb-common php php-mysqli
# aptitude update && aptitude install apache2 mysql-server mysql-client mysql-common php php-mysqli

ໃນຖານະເປັນຄວາມຕ້ອງການສ່ວນຕົວ, ຂ້ອຍຈະໃຊ້ MariaDB ໃນສ່ວນທີ່ເຫຼືອຂອງບົດຄວາມນີ້.

ເມື່ອການຕິດຕັ້ງ ສຳ ເລັດແລ້ວ, ໃຫ້ພວກເຮົາຮັບປະກັນວ່າການບໍລິການທັງ ໝົດ ກຳ ລັງ ດຳ ເນີນການຢູ່. ຖ້າເປັນດັ່ງນັ້ນ, ຄຳ ສັ່ງຕໍ່ໄປນີ້.

# systemctl is-active apache2
# systemctl is-active mariadb

ຄວນກັບຄືນການເຄື່ອນໄຫວ ສຳ ລັບທັງສອງ. ຖ້າບໍ່ດັ່ງນັ້ນ, ໃຫ້ເລີ່ມຕົ້ນທັງສອງບໍລິການດ້ວຍຕົນເອງ:

# systemctl start {apache2,mariadb}

ສຸດທ້າຍ, ກ່ອນທີ່ຈະ ດຳ ເນີນການໃຊ້ mysql_secure_installation ເພື່ອຕັ້ງລະຫັດຜ່ານ ສຳ ລັບບັນຊີຮາກຖານຂໍ້ມູນ. ຖ້າທ່ານບໍ່ຮູ້ວິທີເຮັດມັນ, ທ່ານສາມາດອ້າງອີງໃສ່ຂັ້ນຕອນທີ 4 ໃນວິທີການຕິດຕັ້ງ MariaDB 10 ໃນ Debian ແລະ Ubuntu.

ການທົດສອບ LAMP ກ່ຽວກັບ Debian 9 Stretch

ເພື່ອເລີ່ມຕົ້ນ, ພວກເຮົາ ກຳ ລັງຈະສ້າງແລະ ນຳ ໃຊ້ຖານຂໍ້ມູນຕົວຢ່າງ. ຕໍ່ໄປ, ພວກເຮົາຈະໃຊ້ສະຄິບ PHP ຂັ້ນພື້ນຖານເພື່ອດຶງເອົາຊຸດຂອງບັນທຶກຈາກຖານຂໍ້ມູນໃນຮູບແບບ JSON.

ສຸດທ້າຍ, ພວກເຮົາຈະໃຊ້ເຄື່ອງມືຂອງນັກພັດທະນາຂອງ Firefox ເພື່ອກວດສອບເວີຊັນ Apache ທີ່ ກຳ ລັງໃຊ້ຢູ່. ເຖິງແມ່ນວ່າພວກເຮົາສາມາດຊອກຫາຂໍ້ມູນດຽວກັນນີ້ກັບ.

# apache2 -v

ເຫດຜົນທີ່ພວກເຮົາໃຊ້ສະຄິບແມ່ນເພື່ອໃຫ້ແນ່ໃຈວ່າສ່ວນປະກອບທັງ ໝົດ ຂອງ stack ແມ່ນເຮັດວຽກຢ່າງຖືກຕ້ອງເມື່ອຖືກມັດເຂົ້າກັນ.

ກະລຸນາໃສ່ ຄຳ ສັ່ງ MariaDB ພ້ອມ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

# mysql -u root -p

ແລະໃສ່ລະຫັດຜ່ານທີ່ຖືກເລືອກໄວ້ໃນພາກກ່ອນ.

ຕອນນີ້ພວກເຮົາຈະສ້າງຖານຂໍ້ມູນທີ່ມີຊື່ວ່າ LibraryDB ດັ່ງຕໍ່ໄປນີ້:

MariaDB [(none)]> CREATE DATABASE LibraryDB;

ແລະເພີ່ມສອງຕາຕະລາງທີ່ມີຊື່ວ່າ AuthorsTBL ແລະ BooksTBL:

MariaDB [(none)]> USE LibraryDB;
CREATE TABLE AuthorsTBL (
AuthorID INT NOT NULL AUTO_INCREMENT,
FullName VARCHAR(100) NOT NULL,
PRIMARY KEY(AuthorID)
);

MariaDB [(none)]> CREATE TABLE BooksTBL (
BookID INT NOT NULL AUTO_INCREMENT,
AuthorID INT NOT NULL,
ISBN VARCHAR(100) NOT NULL,
Title VARCHAR(100) NOT NULL,
Year VARCHAR(4),
PRIMARY KEY(BookID),
FOREIGN KEY(AuthorID) REFERENCES AuthorsTBL(AuthorID)
);

ດ້ວຍເຫດຜົນດ້ານຄວາມປອດໄພ, ພວກເຮົາຈະສ້າງບັນຊີພິເສດເພື່ອເຂົ້າເຖິງຖານຂໍ້ມູນຂອງພວກເຮົາ:

MariaDB [(none)]> CREATE USER 'librarian'@'localhost' IDENTIFIED BY 'Today123';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON LibraryDB.* TO 'librarian'@'localhost';

ຂັ້ນຕອນສຸດທ້າຍຕອນນີ້ປະກອບດ້ວຍການສ້າງຕາຕະລາງທີ່ມີຜູ້ຂຽນແລະປຶ້ມ:

MariaDB [(none)]> INSERT INTO AuthorsTBL (FullName) VALUES ('Paulo Coelho'), ('Isabel Allende'), ('Jorge Luis Borges');
MariaDB [(none)]> INSERT INTO BooksTBL (AuthorID, ISBN, Title, Year) VALUES
(1, '9788576653721', 'El alquimista', '1988'),
(1, '9780061194740', 'El peregrino', '1987'),
(2, '9789500720380', 'La casa de los espiritus', '1982'),
(3, '9789875666481', 'El Aleph', '1945');

ສະຄິບ PHP ຕໍ່ໄປນີ້ ທຳ ອິດຈະເຊື່ອມຕໍ່ກັບຖານຂໍ້ມູນແລະດຶງເອົາບັນທຶກທີ່ກົງກັບ ຄຳ ຖາມ. ຖ້າມີຂໍ້ຜິດພາດເກີດຂື້ນ, ຂໍ້ຄວາມທີ່ອະທິບາຍຈະຖືກສະແດງເພື່ອໃຫ້ ຄຳ ແນະ ນຳ ກ່ຽວກັບສິ່ງທີ່ຜິດພາດ.

ບັນທຶກສະຄິບຕໍ່ໄປນີ້ໄວ້ເປັນ booksandauthors.php ພາຍໃຕ້/var/www/html:

<?php
	// Show PHP version
	echo "Current PHP version: " . phpversion() .  "\r\n";

	// Connect to database
	$connection = mysqli_connect("localhost","librarian","Today123","LibraryDB") or die("Error " . mysqli_error($connection));

	// SQL query
	$sql = "SELECT A.ISBN, A.Title,
        	A.Year, B.FullName
        	FROM BooksTBL A JOIN AuthorsTBL B
        	ON A.AuthorID = B.AuthorID;";
	$result = mysqli_query($connection, $sql) or die("Error " . mysqli_error($connection));

	// Populate an array with the query results
	$libraryarray = array();
	while($row = mysqli_fetch_assoc($result))
	{
    	$libraryarray[] = $row;
	}

	// Convert to JSON
	echo json_encode($libraryarray);
?>

ປ່ຽນເຈົ້າຂອງເປັນ www-data ແລະເພີ່ມສິດທີ່ ເໝາະ ສົມ:

# chown www-data:www-data /var/www/html/booksandauthors.php
# chmod 600 /var/www/html/booksandauthors.php

ສຸດທ້າຍ, ເປີດໂປແກຼມທ່ອງເວັບແລະຊີ້ໄປທີ່ URL ທີ່ສະຄິບຢູ່.

http://192.168.0.35/booksandauthors.php

ນັ້ນແມ່ນມັນ! ໃນບົດຂຽນນີ້ພວກເຮົາໄດ້ອະທິບາຍວິທີການຕິດຕັ້ງແລະທົດສອບ LAMP stack ໃນ Debian 9. ຖ້າທ່ານມີ ຄຳ ຖາມຫຼື ຄຳ ເຫັນກ່ຽວກັບບົດຄວາມນີ້, ຢ່າລັງເລທີ່ຈະແຈ້ງໃຫ້ພວກເຮົາຮູ້ໂດຍການ ນຳ ໃຊ້ແບບຟອມລຸ່ມນີ້.