Asenna LAMP (Linux, Apache, MariaDB tai MySQL ja PHP) Stack Debian 9: een


Tämän viikon alussa (17. kesäkuuta 2017) Debian-projekti ilmoitti uuden vakaan version (Debian 9), koodinimeltään Stretch, saatavuudesta.

Tämän julkaisun myötä tunnettu ja laajalti käytetty Debian 8 Jessie sai vanhan vakaan tilan, mikä osoittaa edellisen vakaan arkiston. Kuten aina tapahtuu uuden vakaan version julkaisun yhteydessä, Stretch sisältää satoja uusia paketteja ja päivityksiä tuhansille muille.

Koska Debian käyttää suurta osaa verkkopalvelimista kaikkialla maailmassa, selitämme tässä artikkelissa, kuinka LAMP-pino asennetaan Debian 9 Stretchiin.

Tämä antaa järjestelmänvalvojille mahdollisuuden asettaa upouudet verkkopalvelimet Stretchin päälle käyttämällä jakelun virallisten arkistojen viimeaikaisia päivityksiä. Oletetaan, että olet päivittänyt Jessiestä.

LAMP: n asentaminen Debian 9 Stretch -ohjelmaan

LAMP: n ”M” tarkoittaa MariaDB: tä tai MySQL: ää, pinon tietokantapalvelinta. Valintasi mukaan voit asentaa tietokantapalvelimen ja muut komponentit (Apache-verkkopalvelin ja PHP) seuraavasti.

# 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

Henkilökohtaisena mieltymyksenä käytän MariaDB: tä muussa artikkelissa.

Kun asennus on valmis, varmista, että kaikki palvelut ovat käynnissä. Jos näin on, seuraavat komennot.

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

pitäisi palata aktiiviseksi molemmille. Muussa tapauksessa käynnistä molemmat palvelut manuaalisesti:

# systemctl start {apache2,mariadb}

Lopuksi, ennen jatkamista, määritetään tietokannan juuritilin salasana mysql_secure_installation avulla. Jos et tiedä miten se tehdään, voit katsoa vaiheesta 4 kohdassa Kuinka MariaDB 10 asennetaan Debianiin ja Ubuntuun.

LAMP: n testaaminen Debian 9 Stretchillä

Aluksi aiomme luoda ja täyttää näytetietokannan. Seuraavaksi käytämme PHP-komentosarjaa hakemaan tietuejoukon tietokannasta JSON-muodossa.

Lopuksi käytämme Firefoxin kehitystyökaluja varmistaaksemme käytetyn Apache-version. Vaikka saisimme selville nämä samat tiedot.

# apache2 -v

syynä siihen, miksi käytämme komentosarjaa, on varmistaa, että kaikki pinon komponentit toimivat oikein niputettuna.

Syötetään MariaDB-kehote seuraavalla komennolla.

# mysql -u root -p

ja syötetään edellisessä osassa valittu salasana.

Nyt luomme tietokannan nimeltä LibraryDB seuraavasti:

MariaDB [(none)]> CREATE DATABASE LibraryDB;

ja lisää kaksi taulukkoa nimeltä AuthorsTBL ja 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)
);

Turvallisuussyistä luomme erityisen tilin, jolla pääset tietokantaamme:

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

Viimeinen vaihe on nyt taulukoiden täyttäminen kirjailijoilla ja kirjoilla:

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

Seuraava PHP-komentosarja muodostaa ensin yhteyden tietokantaan ja noutaa kyselyä vastaavat tietueet. Jos tapahtuu virhe, näyttöön tulee kuvaileva viesti, joka antaa meille vihjeen virheestä.

Tallenna seuraava komentotiedosto booksandauthors.php kansioon/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);
?>

Vaihda omistajuudeksi www-data ja lisää tarvittavat käyttöoikeudet:

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

Avaa lopuksi verkkoselain ja osoita se URL-osoitteeseen, jossa komentosarja sijaitsee.

http://192.168.0.35/booksandauthors.php

Se siitä! Tässä artikkelissa olemme selittäneet, kuinka LAMP-pino asennetaan ja testataan Debian 9: lle. Jos sinulla on kysyttävää tai kommentteja tästä artikkelista, älä epäröi ilmoittaa siitä meille alla olevan lomakkeen avulla.