Přístavní dělník

Nastavte server LAMP pomocí Dockeru

Nastavte server LAMP pomocí Dockeru
V tomto článku vám ukážu, jak použít Docker Compose k vytvoření serveru LAMP pro vývoj webu v PHP. Pojďme tedy začít.

Požadavky:

Abyste mohli postupovat podle tohoto článku, musíte mít ve svém počítači nainstalovaný Docker. LinuxHint obsahuje mnoho článků, které můžete použít k instalaci Dockeru na požadovanou distribuci Linuxu, pokud ji ještě nemáte nainstalovanou. Nezapomeňte tedy zkontrolovat LinuxHint.com v případě, že máte potíže s instalací Dockeru.

Instalace Docker Compose:

Binární soubor Docker Compose si můžete stáhnout velmi snadno pomocí následujícího příkazu:

$ 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

POZNÁMKA: kučera nemusí být nainstalován na vaší distribuci Linuxu. V takovém případě můžete curl nainstalovat pomocí následujícího příkazu:

Ubuntu / Debian / Linux Mint:

$ sudo apt install curl -y

CentOS / RHEL / Fedora:

$ sudo dnf install curl -y

Jednou docker-compose binární soubor je stažen, spusťte následující příkaz:

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

Nyní zkontrolujte, zda docker-compose příkaz funguje následovně:

$ docker-compose verze

Mělo by vytisknout informace o verzi, jak je znázorněno na následujícím obrázku.

Nastavení Docker Compose pro projekt:

Nyní vytvořte adresář projektu ~ / docker / lampa (řekněme) a html / adresář v adresáři projektu pro uchování souborů webových stránek (tj.E. php, html, css, js atd.) jak následuje:

$ mkdir -p ~ / docker / lampa / html

Nyní přejděte do adresáře projektu ~ / docker / lampa jak následuje:

$ cd ~ / docker / lampa

Vytvořit php.Dockerfile v adresáři projektu ~ / docker / lampa. Toto je Dockerfile, který umožňuje php rozšíření mysqli a PDO ve Windows php: 7.4.3-apache obrázek z Docker Hubu a vytvoří z něj vlastní obrázek Dockeru.

Obsah php.Dockerfile je uveden níže.

Z php: 7.4.3-apache

BĚH

docker-php-ext-install mysqli pdo pdo_mysql

Nyní vytvořte docker-compose.yaml soubor v adresáři projektu ~ / docker / lampa a zadejte následující řádky do docker-compose.yaml soubor.

verze: „3.7 "
služby:
webový server:
stavět:
dockerfile: php.Dockerfile
kontext: .
restart: vždy
objemy:
- "./ html /: / var / www / html / "
porty:
- „8080: 80“
mysql-server:
obrázek: mysql: 8.0.19
restart: vždy
životní prostředí:
MYSQL_ROOT_PASSWORD: tajné
objemy:
- mysql-data: / var / lib / mysql
phpmyadmin:
obrázek: phpmyadmin / phpmyadmin: 5.0.1
restart: vždy
životní prostředí:
PMA_HOST: mysql-server
PMA_USER: root
PMA_PASSWORD: tajné
porty:
- „5000: 80“
objemy:
mysql-data:

The docker-compose.yaml soubor by měl vypadat následovně.

Zde jsem vytvořil 3 služby webový server, mysql-server a phpmyadmin.

webový server služba spustí vlastní Docker obrázek, jak je definován v php.Dockerfile.

mysql-server služba spustí mysql: 8.0.19 obrázek (z DockerHub) v kontejneru Docker.

phpmyadmin služba spustí phpmyadmin / phpmyadmin: 5.0.1 obrázek (z DockerHub) v jiném kontejneru Docker.

v mysql-server služba, MYSQL_ROOT_PASSWORD proměnná prostředí se používá k nastavení vykořenit heslo MySQL.

v phpmyadmin služba, PMA_HOST, PMA_USER, PMA_PASSWORD proměnné prostředí se používají k nastavení názvu hostitele MySQL, uživatelského jména a hesla, které phpMyAdmin použije k připojení k databázovému serveru MySQL spuštěnému jako mysql-server servis.

v mysql-server služba, veškerý obsah / var / lib / mysql adresář bude trvale uložen do složky mysql-data objem.''

V webový server služba, přístav kontejneru 80 (vpravo) je namapován na hostitelský port Dockeru 8080 (vlevo, odjet).''

V phpmyadmin služba, přístav kontejneru 5000 (vpravo) je namapován na hostitelský port Dockeru 80 (vlevo, odjet).

Vytvořte také index.php soubor v html / adresář pro testování serveru LAMP.

Obsah index.php soubor v mém případě,

$ host = "mysql-server";
$ user = "root";
$ pass = "tajemství";
$ db = "app1";
Snaž se
$ conn = new PDO ("mysql: host = $ host; dbname = $ db", $ user, $ pass);
$ conn-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);
 
echo "Úspěšně připojeno";
chytit (PDOException $ e)
echo "Připojení se nezdařilo:" . $ e-> getMessage ();

?>

Nakonec adresář projektu ~ / docker / lampa by měl vypadat takto:

Spuštění serveru LAMP:

Nyní pro spuštění webový server, mysql-server a phpmyadmin služby, spusťte následující příkaz:

$ docker-compose up -d

Všechny služby by měly začít na pozadí.

Chcete-li zjistit, jak jsou porty mapovány, spusťte následující příkaz:

$ docker-compose ps

Jak vidíte, pro webový server služba, hostitelský port Dockeru 8080 je mapován na port TCP kontejneru 80.

Pro phpmyadmin služba, hostitelský port Dockeru 5000 je mapován na port TCP kontejneru 80.

Zjištění IP adresy hostitele Docker:

Pokud chcete přistupovat k serveru LAMP z jiných počítačů ve vaší síti, musíte znát IP adresu vašeho hostitele Docker.

Chcete-li zjistit adresu IP hostitele Dockeru, spusťte následující příkaz:

$ ip

V mém případě IP adresa mého hostitele Dockeru 192.168.20.160. Bude to pro vás jiné. Od této chvíle jej tedy vyměňte za svůj.

Testování serveru LAMP:

Nyní můžete přistupovat k phpMyAdmin 5 ak webovému serveru z webového prohlížeče.

Chcete-li získat přístup k phpMyAdmin 5, otevřete webový prohlížeč a navštivte hostitele Dockeru http: // localhost: 5000 nebo navštivte http: // 192.168.20.160: 5000 z jakéhokoli jiného počítače v síti.

phpMyAdmin 5 by se měl načíst ve vašem webovém prohlížeči.

Nyní vytvořte aplikace1 MySQL databáze z phpMyAdmin.

Nyní navštivte http: // localhost: 8080 z hostitele Dockeru nebo http: // 192.168.20.160: 8080 z jakéhokoli jiného počítače v síti pro přístup k webovému serveru.

Měli byste vidět Úspěšně připojeno zpráva. To znamená, že PHP funguje a databázový server MySQL je přístupný z webový server kontejner. Technicky je tedy server LAMP plně funkční.

Zastavení serveru LAMP:

Chcete-li zastavit webový server, mysql-server a phpmyadmin služby, spusťte následující příkaz:

$ docker-compose down

The webový server, mysql-server a phpmyadmin služby by měly být zastaveny.

Vyčištění dat serveru MySQL:

Pokud chcete odstranit všechna data a nastavení databáze MySQL, musíte odstranit mysql-data objem.

Skutečný název svazku najdete pomocí následujícího příkazu:

$ docker volume ls

Svazek můžete odebrat lamp_mysql-data s následujícím příkazem:

$ docker volume rm lamp_mysql-data

Takto nastavíte server LAMP pomocí Dockeru. Děkujeme za přečtení tohoto článku.

Jak vidíte, objem, který chcete odebrat, je lamp_mysql-data.

Hry Jak zachytit a streamovat vaši herní relaci v systému Linux
Jak zachytit a streamovat vaši herní relaci v systému Linux
V minulosti bylo hraní her považováno pouze za koníček, ale postupem času došlo v herním průmyslu k obrovskému nárůstu z hlediska technologie a počtu ...
Hry Nejlepší hry pro ruční sledování
Nejlepší hry pro ruční sledování
Oculus Quest nedávno představil skvělou myšlenku ručního sledování bez ovladačů. S neustále se zvyšujícím počtem her a aktivit, které provádějí podpor...
Hry Jak zobrazit překrytí OSD v linuxových aplikacích a hrách na celou obrazovku
Jak zobrazit překrytí OSD v linuxových aplikacích a hrách na celou obrazovku
Hraní her na celou obrazovku nebo používání aplikací v režimu celé obrazovky bez rozptýlení vás mohou odříznout od příslušných systémových informací v...