Namestite sklad LAMP (Linux, Apache, MariaDB ali MySQL in PHP) na Debian 9


V začetku tega tedna (17. junija 2017) je projekt Debian objavil razpoložljivost nove stabilne različice (Debian 9) s kodnim imenom Stretch.

S to izdajo je znani in široko uporabljani Debian 8 Jessie pridobil stabilen status, ki označuje prejšnje stabilno skladišče. Kot se vedno zgodi z izdajo nove stabilne različice, Stretch vključuje na stotine novih paketov in posodobitve na tisoče drugih.

Ker Debian poganja velik odstotek spletnih strežnikov po vsem svetu, bomo v tem članku razložili, kako namestiti sklad LAMP v Debian 9 Stretch.

To bo sistemskim skrbnikom omogočilo, da na vrhu Stretcha postavijo povsem nove spletne strežnike z uporabo najnovejših posodobitev uradnih skladišč distribucije. Predvideva se, da ste nadgradili Jessie.

Namestitev LAMP v Debian 9 Stretch

\ "M" v LAMP pomeni MariaDB ali MySQL, strežnik baz podatkov za sklad. Glede na vašo izbiro lahko strežnik baze podatkov in druge komponente (spletni strežnik Apache in PHP) namestite na naslednji način.

# 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

Kot osebno nastavitev bom v nadaljevanju tega članka uporabil MariaDB.

Ko je namestitev končana, poskrbimo, da se vse storitve izvajajo. Če je odgovor da, naslednji ukazi.

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

naj se vrne aktivno za oba. V nasprotnem primeru zaženite obe storitvi ročno:

# systemctl start {apache2,mariadb}

Na koncu, preden nadaljujemo, uporabimo mysql_secure_installation za nastavitev gesla za korenski račun baze podatkov. Če ne veste, kako to storiti, se lahko obrnete na korak #4 v Kako namestiti MariaDB 10 na Debian in Ubuntu.

Testiranje LAMP-a na Debian 9 Stretch

Za začetek bomo ustvarili in izpolnili vzorčno bazo podatkov. Nato bomo uporabili osnovni skript PHP za pridobivanje nabora zapisov iz baze podatkov v formatu JSON.

Na koncu bomo za preverjanje različice Apacheja, ki jo uporabljamo, uporabili Firefoxova orodja za razvijalce. Čeprav bi te iste informacije lahko našli z.

# apache2 -v

razlog, zakaj uporabljamo skript, je zagotoviti, da vse komponente sklada delujejo pravilno, ko so združene.

Vnesite poziv MariaDB z naslednjim ukazom.

# mysql -u root -p

in vnos gesla, ki je bilo izbrano v prejšnjem poglavju.

Zdaj bomo ustvarili bazo podatkov z imenom LibraryDB na naslednji način:

MariaDB [(none)]> CREATE DATABASE LibraryDB;

in dodajte dve tabeli z imenom AuthorsTBL in 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)
);

Iz varnostnih razlogov bomo ustvarili poseben račun za dostop do naše baze podatkov:

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

Zadnji korak je zapolnitev tabel z avtorji in knjigami:

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

Naslednji skript PHP se najprej poveže z bazo podatkov in pridobi zapise, ki ustrezajo poizvedbi. Če pride do napake, se prikaže opisno sporočilo, ki nam bo dalo namig, kaj je narobe.

Shranite naslednji skript kot booksandauthors.php pod/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);
?>

Spremenite lastništvo v www-data in dodajte ustrezna dovoljenja:

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

Na koncu odprite spletni brskalnik in ga usmerite na URL, kjer je skript.

http://192.168.0.35/booksandauthors.php

To je to! V tem članku smo razložili, kako namestiti in preizkusiti sklad LAMP na Debianu 9. Če imate vprašanja ali komentarje o tem članku, nam to sporočite z uporabo spodnjega obrazca.