Lučki radnik

Postavite LAMP poslužitelj s Dockerom

Postavite LAMP poslužitelj s Dockerom
U ovom članku pokazat ću vam kako koristiti Docker Compose za stvaranje LAMP poslužitelja za PHP web razvoj. Pa, krenimo.

Zahtjevi:

Da biste pratili ovaj članak, na računalu morate imati instaliran Docker. LinuxHint ima puno članaka koje možete pratiti kako biste instalirali Docker na željenu Linux distribuciju ako ga već niste instalirali. Dakle, svakako provjerite LinuxHint.com u slučaju da imate problema s instaliranjem Dockera.

Instaliranje Dockera Compose:

Binarnu datoteku Docker Compose možete preuzeti vrlo jednostavno pomoću sljedeće naredbe:

$ sudo curl -L "https: // github.com / docker / compose / releases / download / 1.24.1 /
docker-compose - $ (uname -s) - $ (uname -m) "-o / usr / local / bin / docker-compose

BILJEŠKA: kovrča možda neće biti instaliran na vašoj Linux distribuciji. Ako je to slučaj, možete instalirati curl pomoću sljedeće naredbe:

Kovnica Ubuntu / Debian / Linux:

$ sudo apt install curl -y

CentOS / RHEL / Fedora:

$ sudo dnf instaliraj curl -y

Jednom docker-compose binarna datoteka se preuzima, pokrenite sljedeću naredbu:

$ sudo chmod + x / usr / local / bin / docker-compose

Sada provjeri da li docker-compose naredba radi na sljedeći način:

$ docker-compose verzija

Trebao bi ispisati podatke o verziji kao što je prikazano na snimci zaslona u nastavku.

Postavljanje Docker Compose za projekt:

Sada izradite direktorij projekta ~ / docker / lampa (recimo) i a html / direktorij unutar direktorija projekta za čuvanje datoteka web mjesta (tj.e. php, html, css, js itd.) kako slijedi:

$ mkdir -p ~ / docker / lamp / html

Sada se pomaknite do direktorija projekta ~ / docker / lampa kako slijedi:

$ cd ~ / docker / lampica

Stvoriti php.Dockerfile u direktoriju projekta ~ / docker / lampa. Ovo je Dockerfile koji omogućuje mysqli i PDO php proširenja u php: 7.4.3-apache slika iz Docker Hub-a i od nje gradi prilagođenu Docker-ovu sliku.

Sadržaj php.Dockerfile je dan u nastavku.

OD php: 7.4.3-apache

TRČANJE

docker-php-ext-install mysqli pdo pdo_mysql

Sada stvorite a docker-compose.yaml datoteku u direktoriju projekta ~ / docker / lampa i unesite sljedeće retke u docker-compose.yaml datoteka.

inačica: "3.7 "
usluge:
web-poslužitelj:
izgraditi:
dockerfile: php.Dockerfile
kontekst: .
ponovno pokretanje: uvijek
svezaka:
- "./ html /: / var / www / html / "
luke:
- "8080: 80"
mysql-poslužitelj:
slika: mysql: 8.0.19
ponovno pokretanje: uvijek
okoliš:
MYSQL_ROOT_PASSWORD: tajno
svezaka:
- mysql-podaci: / var / lib / mysql
phpmyadmin:
slika: phpmyadmin / phpmyadmin: 5.0.1
ponovno pokretanje: uvijek
okoliš:
PMA_HOST: mysql-poslužitelj
PMA_USER: korijen
PMA_PASSWORD: tajno
luke:
- "5000: 80"
svezaka:
mysql-podaci:

The docker-compose.yaml datoteka bi trebala izgledati kako slijedi.

Ovdje sam stvorio 3 usluge web-poslužitelj, mysql-poslužitelj i phpmyadmin.

web-poslužitelj usluga će pokrenuti prilagođenu Docker sliku kako je definirano u php.Dockerfile.

mysql-poslužitelj usluga će pokrenuti mysql: 8.0.19 slika (iz DockerHub) u Docker spremniku.

phpmyadmin usluga će pokrenuti phpmyadmin / phpmyadmin: 5.0.1 slika (iz DockerHub-a) u drugom spremniku Dockera.

U mysql-poslužitelj usluga, MYSQL_ROOT_PASSWORD varijabla okoline koristi se za postavljanje korijen lozinka za MySQL.

U phpmyadmin usluga, PMA_HOST, PMA_USER, PMA_PASSWORD varijable okoline koriste se za postavljanje MySQL imena hosta, korisničkog imena i lozinke koje će phpMyAdmin koristiti za povezivanje s MySQL poslužiteljem baze podataka koji radi kao mysql-poslužitelj servis.

U mysql-poslužitelj usluga, sav sadržaj / var / lib / mysql direktorij će se trajno spremiti u mysql-podaci volumen.'

U web-poslužitelj usluga, luka kontejnera 80 (zdesna) preslikava se na priključak Dockera 8080 (lijevo).'

U phpmyadmin usluga, luka kontejnera 5000 (zdesna) preslikava se na priključak Dockera 80 (lijevo).

Također stvorite a indeks.php datoteku u html / direktorij za testiranje LAMP poslužitelja.

Sadržaj indeks.php spis u mom slučaju,

$ host = "mysql-poslužitelj";
$ user = "root";
$ pass = "tajno";
$ db = "app1";
probaj
$ conn = novi PDO ("mysql: host = $ host; dbname = $ db", $ user, $ pass);
$ conn-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);
 
odjek "Uspješno povezan";
catch (PDOException $ e)
echo "Veza nije uspjela:" . $ e-> getMessage ();

?>

Konačno, direktorij projekta ~ / docker / lampa treba izgledati kako slijedi:

Pokretanje LAMP poslužitelja:

Sada, za početak web-poslužitelj, mysql-poslužitelj i phpmyadmin usluge, pokrenite sljedeću naredbu:

$ docker-compose up -d

Sve usluge trebaju započeti u pozadini.

Da biste vidjeli kako se mapiraju luke, pokrenite sljedeću naredbu:

$ docker-komponiraj ps

Kao što vidite, za web-poslužitelj usluga, priključak Dockera 8080 preslikava se na TCP port spremnika 80.

Za phpmyadmin usluga, priključak Dockera 5000 preslikava se na TCP port spremnika 80.

Pronalaženje IP adrese domaćina Dockera:

Ako želite pristupiti LAMP poslužitelju s drugih računala u mreži, morate znati IP adresu vašeg Dockera hosta.

Da biste pronašli IP adresu vašeg Dockera, pokrenite sljedeću naredbu:

$ ip

U mom slučaju, IP adresa mog domaćina Dockera 192.168.20.160. Za vas će biti drugačije. Pazite da ga od sada zamijenite svojim.

Testiranje LAMP poslužitelja:

Sada možete pristupiti phpMyAdmin 5 i web poslužitelju iz web preglednika.

Da biste pristupili phpMyAdmin 5, otvorite web preglednik i posjetite http: // localhost: 5000 s vašeg domaćina Dockera ili posjetite http: // 192.168.20.160: 5000 s bilo kojeg drugog računala u mreži.

phpMyAdmin 5 trebao bi se učitati u vašem web pregledniku.

Sada stvorite app1 MySQL baza podataka iz phpMyAdmina.

Sada posjetite http: // localhost: 8080 s vašeg domaćina Dockera ili http: // 192.168.20.160: 8080 s bilo kojeg drugog računala u vašoj mreži za pristup web poslužitelju.

Trebali biste vidjeti Uspješno povezano poruka. Znači, PHP radi, a MySQL poslužitelju baze podataka dostupan je s web-poslužitelj kontejner. Dakle, tehnički je LAMP poslužitelj u potpunosti funkcionalan.

Zaustavljanje LAMP poslužitelja:

Za zaustavljanje web-poslužitelj, mysql-poslužitelj i phpmyadmin usluge, pokrenite sljedeću naredbu:

$ docker-sastavi dolje

The web-poslužitelj, mysql-poslužitelj i phpmyadmin usluge treba zaustaviti.

Čišćenje podataka MySQL poslužitelja:

Ako želite ukloniti sve podatke i postavke MySQL baze podataka, morate ukloniti mysql-podaci volumen.

Stvarno ime volumena možete pronaći pomoću sljedeće naredbe:

$ docker volumen ls

Možete ukloniti glasnoću lamp_mysql-podaci sa sljedećom naredbom:

$ docker volumen rm lamp_mysql-data

Dakle, tako ste postavili LAMP poslužitelj s Dockerom. Hvala što ste pročitali ovaj članak.

Kao što vidite, glasnoća za uklanjanje je lamp_mysql-podaci.

5 najboljih arkadnih igara za Linux
U današnje vrijeme računala su ozbiljni strojevi koji se koriste za igre na sreću. Ako ne uspijete dobiti novi visoki rezultat, znat ćete na što misli...
Bitka za Wesnoth 1.13.6 Razvoj objavljen
Bitka za Wesnoth 1.13.6 objavljeno prošlog mjeseca, šesto je razvojno izdanje u izdanju 1.13.x series i donosi niz poboljšanja, ponajviše korisničkog ...
Kako instalirati League Of Legends na Ubuntu 14.04
Ako ste ljubitelj League of Legends, ovo je prilika za vas da testirate League of Legends. Imajte na umu da je LOL podržan na PlayOnLinux ako ste kori...