Fi atupa sori ẹrọ (Lainos, Apache, MariaDB tabi MySQL ati PHP) Stack lori Debian 9


Ni kutukutu ọsẹ yii (Okudu 17, 2017), iṣẹ akanṣe Debian kede wiwa ti ẹya idurosinsin tuntun (Debian 9) ti a pe ni Stretch.

Pẹlu idasilẹ yii, olokiki Debian 8 Jessie ti a mọ daradara ati lilo jakejado gba ipo iduroṣinṣin atijọ, eyiti o ṣe apẹrẹ ibi ipamọ idurosinsin iṣaaju. Bi o ti n ṣẹlẹ nigbagbogbo pẹlu ifasilẹ ẹya iduroṣinṣin tuntun, Stretch pẹlu awọn ọgọọgọrun awọn idii tuntun, ati awọn imudojuiwọn si ẹgbẹẹgbẹrun awọn miiran.

Niwọn igba ti agbara Debian ipin pupọ ti awọn olupin wẹẹbu ni gbogbo agbaye, ninu nkan yii a yoo ṣalaye bi a ṣe le fi akopọ LAMP sori Debian 9 Stretch.

Eyi yoo gba awọn alakoso eto laaye lati ṣeto awọn olupin wẹẹbu tuntun lori oke Stretch nipa lilo awọn imudojuiwọn to ṣẹṣẹ si awọn ibi ipamọ osise ti pinpin. O ti gba pe o ti ṣe igbesoke lati Jessie.

Fifi atupa ni Debian 9 Stretch

The\"M" in LAMP dúró fun MariaDB tabi MySQL, olupin data data fun akopọ naa. Da lori ohun ti o fẹ, o le fi sori ẹrọ olupin data ati awọn paati miiran (olupin ayelujara wẹẹbu Apache ati PHP) bi atẹle.

# 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

Gẹgẹbi ayanfẹ ti ara ẹni, Emi yoo lo MariaDB ni iyoku nkan yii.

Lọgan ti fifi sori ẹrọ ba ti pari, jẹ ki a rii daju pe gbogbo awọn iṣẹ n ṣiṣẹ. Ti o ba bẹ bẹ, awọn ofin wọnyi.

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

yẹ ki o pada wa lọwọ fun awọn mejeeji. Bibẹẹkọ, bẹrẹ awọn iṣẹ mejeeji pẹlu ọwọ:

# systemctl start {apache2,mariadb}

Lakotan, ṣaaju ki o to tẹsiwaju jẹ ki a lo mysql_secure_installation lati ṣeto ọrọ igbaniwọle fun akọọlẹ root database. Ti o ko ba mọ bi o ṣe le ṣe, o le tọka si igbesẹ # 4 ni Bawo ni lati Fi sii MariaDB 10 lori Debian ati Ubuntu.

Idanwo LAMP lori Debian 9 Stretch

Lati bẹrẹ, a yoo ṣẹda ati ṣe agbejade ibi ipamọ data apẹẹrẹ kan. Nigbamii ti, a yoo lo iwe afọwọkọ PHP ipilẹ lati gba akojọpọ awọn igbasilẹ lati ibi ipamọ data ni ọna kika JSON.

Lakotan, a yoo lo awọn irinṣẹ Olùgbéejáde Firefox lati jẹrisi ẹya ti Apache ti nlo. Botilẹjẹpe a le wa alaye kanna pẹlu.

# apache2 -v

idi ti a fi n lo iwe afọwọkọ ni lati rii daju pe gbogbo awọn paati ti akopọ naa n ṣiṣẹ ni deede nigbati o ba ṣajọ pọ.

Jẹ ki a tẹ iyara MariaDB pẹlu aṣẹ atẹle.

# mysql -u root -p

ati titẹ ọrọ igbaniwọle ti o yan ni apakan ti tẹlẹ.

Bayi a yoo ṣẹda ipilẹ data ti a npè ni LibraryDB bi atẹle:

MariaDB [(none)]> CREATE DATABASE LibraryDB;

ki o ṣafikun awọn tabili meji ti a npè ni AuthorsTBL ati 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)
);

Fun awọn idi aabo, a yoo ṣẹda akọọlẹ pataki kan lati wọle si ibi ipamọ data wa:

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

Igbesẹ ti o kẹhin ni bayi ni gbigbin awọn tabili pẹlu Awọn onkọwe ati Awọn iwe:

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');

Iwe afọwọkọ PHP ti n tẹle yoo kọkọ sopọ si ibi ipamọ data ki o gba awọn igbasilẹ ti o baamu ibeere naa. Ti aṣiṣe kan ba waye, ifiranṣẹ alaye yoo han ki o le fun wa ni itọkasi lori ohun ti o jẹ aṣiṣe.

Fipamọ iwe afọwọkọ wọnyi bi booksandauthors.php labẹ/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);
?>

Yi ohun-ini pada si www-data ki o ṣafikun awọn igbanilaaye ti o yẹ:

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

Lakotan, ṣii ẹrọ lilọ kiri lori ayelujara kan ki o tọka si URL nibiti iwe afọwọkọ naa gbe.

http://192.168.0.35/booksandauthors.php

O n niyen! Ninu nkan yii a ti ṣalaye bi o ṣe le fi sori ẹrọ ati idanwo akopọ LAMP lori Debian 9. Ti o ba ni awọn ibeere tabi awọn asọye nipa nkan yii, ma ṣe ṣiyemeji lati jẹ ki a mọ nipa lilo fọọmu ti o wa ni isalẹ.