Докер

Настройте LAMP сървър с Docker

Настройте LAMP сървър с Docker
В тази статия ще ви покажа как да използвате Docker Compose за създаване на LAMP сървър за PHP уеб разработка. И така, нека започнем.

Изисквания:

За да следвате тази статия, трябва да имате инсталиран Docker на вашия компютър. LinuxHint има много статии, които можете да следвате, за да инсталирате Docker в желаната от вас дистрибуция на Linux, ако вече не сте го инсталирали. Така че, не забравяйте да проверите LinuxHint.com, в случай че имате проблеми с инсталирането на Docker.

Инсталиране на Docker Compose:

Можете да изтеглите двоичен файл на Docker Compose много лесно със следната команда:

$ 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

ЗАБЕЛЕЖКА: къдрица може да не се инсталира на вашата Linux дистрибуция. Ако случаят е такъв, можете да инсталирате curl със следната команда:

Ubuntu / Debian / Linux Mint:

$ sudo apt install curl -y

CentOS / RHEL / Fedora:

$ sudo dnf инсталира curl -y

Веднъж docker-compose двоичен файл е изтеглен, изпълнете следната команда:

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

Сега проверете дали docker-compose команда работи по следния начин:

$ docker-compose версия

Той трябва да отпечата информацията за версията, както е показано на екранната снимка по-долу.

Настройване на Docker Compose за проекта:

Сега създайте директория на проекта ~ / докер / лампа (да речем) и a html / директория в директорията на проекта за съхраняване на файловете на уебсайта (т.е.д. php, html, css, js и т.н.) както следва:

$ mkdir -p ~ / docker / lamp / html

Сега отидете в директорията на проекта ~ / докер / лампа както следва:

$ cd ~ / докер / лампа

Създавам php.Докер файл в директорията на проекта ~ / докер / лампа. Това е Dockerfile, който позволява mysqli и PDO php разширения в php: 7.4.3-апаш изображение от Docker Hub и изгражда персонализирано изображение на Docker от него.

Съдържанието на php.Докер файл е дадено по-долу.

ОТ php: 7.4.3-апаш

РАБОТА

docker-php-ext-install mysqli pdo pdo_mysql

Сега създайте a docker-compose.ямъл файл в директорията на проекта ~ / докер / лампа и въведете следните редове в docker-compose.ямъл файл.

версия: „3.7 "
услуги:
уеб сървър:
изграждане:
dockerfile: php.Докер файл
контекст: .
рестартиране: винаги
обеми:
- "./ html /: / var / www / html / "
портове:
- "8080: 80"
mysql-сървър:
изображение: mysql: 8.0.19
рестартиране: винаги
околен свят:
MYSQL_ROOT_PASSWORD: тайна
обеми:
- mysql-данни: / var / lib / mysql
phpmyadmin:
изображение: phpmyadmin / phpmyadmin: 5.0.1
рестартиране: винаги
околен свят:
PMA_HOST: mysql-сървър
PMA_USER: корен
PMA_PASSWORD: тайна
портове:
- "5000: 80"
обеми:
mysql-данни:

The docker-compose.ямъл файлът трябва да изглежда както следва.

Тук съм създал 3 услуги уеб сървър, mysql-сървър и phpmyadmin.

уеб сървър услугата ще изпълни специално създаден образ на Docker, както е дефиниран в php.Докер файл.

mysql-сървър услугата ще стартира mysql: 8.0.19 изображение (от DockerHub) в контейнер на Docker.

phpmyadmin услугата ще стартира phpmyadmin / phpmyadmin: 5.0.1 изображение (от DockerHub) в друг контейнер на Docker.

В mysql-сървър услуга, MYSQL_ROOT_PASSWORD среда се използва за задаване на корен парола на MySQL.

В phpmyadmin услуга, PMA_HOST, PMA_USER, PMA_PASSWORD променливите на средата се използват за задаване на име на хост MySQL, потребителско име и парола, съответно, които phpMyAdmin ще използва за свързване със сървъра на базата данни MySQL, работещ като mysql-сървър обслужване.

В mysql-сървър услуга, цялото съдържание на / var / lib / mysql директория ще бъде запазена за постоянно в mysql-данни сила на звука.'

В уеб сървър услуга, пристанището на контейнера 80 (вдясно) се съпоставя с хост порта на Docker 8080 (наляво).'

В phpmyadmin услуга, пристанището на контейнера 5000 (вдясно) се съпоставя с хост порта на Docker 80 (наляво).

Също така създайте a индекс.php файл в html / директория за тестване на LAMP сървъра.

Съдържанието на индекс.php досие в моя случай,

$ хост = "mysql-сървър";
$ потребител = "корен";
$ pass = "secret";
$ db = "app1";
опитвам
$ conn = нов PDO ("mysql: host = $ host; dbname = $ db", $ user, $ pass);
$ conn-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);
 
ехо "Свързан успешно";
catch (PDOException $ e)
echo "Връзката не бе успешна:" . $ e-> getMessage ();

?>

И накрая, директорията на проекта ~ / докер / лампа трябва да изглежда както следва:

Стартиране на LAMP сървъра:

Сега, за да започнете уеб сървър, mysql-сървър и phpmyadmin услуги, изпълнете следната команда:

$ docker-compose up -d

Всички услуги трябва да започват във фонов режим.

За да видите как се картографират портовете, изпълнете следната команда:

$ docker-compose ps

Както можете да видите, за уеб сървър услуга, хост портът на Docker 8080 се съпоставя с TCP порта на контейнера 80.

За phpmyadmin услуга, хост портът на Docker 5000 се съпоставя с TCP порта на контейнера 80.

Намиране на IP адреса на Docker Host:

Ако искате да получите достъп до LAMP сървъра от други компютри във вашата мрежа, трябва да знаете IP адреса на вашия хост на Docker.

За да намерите IP адреса на вашия хост на Docker, изпълнете следната команда:

$ ip

В моя случай IP адресът на моя хост Docker 192.168.20.160. За вас ще е различно. Така че, не забравяйте да го замените от сега нататък.

Тестване на LAMP сървъра:

Сега можете да получите достъп до phpMyAdmin 5 и уеб сървъра от уеб браузър.

За достъп до phpMyAdmin 5 отворете уеб браузър и посетете http: // localhost: 5000 от вашия хост на Docker или посетете http: // 192.168.20.160: 5000 от всеки друг компютър в мрежата.

phpMyAdmin 5 трябва да се зареди във вашия уеб браузър.

Сега създайте app1 MySQL база данни от phpMyAdmin.

Сега посетете http: // localhost: 8080 от вашия хост на Docker или http: // 192.168.20.160: 8080 от всеки друг компютър във вашата мрежа за достъп до уеб сървъра.

Трябва да видите Свързан успешно съобщение. Това означава, че PHP работи и сървърът на база данни MySQL е достъпен от уеб сървър контейнер. Така че, технически, LAMP сървърът е напълно функционален.

Спиране на LAMP сървъра:

За да спрете уеб сървър, mysql-сървър и phpmyadmin услуги, изпълнете следната команда:

$ docker-compose down

The уеб сървър, mysql-сървър и phpmyadmin услугите трябва да бъдат спрени.

Почистване на MySQL сървърни данни:

Ако искате да премахнете всички данни и настройки на базата данни MySQL, трябва да премахнете mysql-данни сила на звука.

Можете да намерите действителното име на тома със следната команда:

$ docker том ls

Можете да премахнете силата на звука lamp_mysql-данни със следната команда:

$ docker том rm lamp_mysql-data

И така, вие създавате LAMP сървър с Docker. Благодаря, че прочетохте тази статия.

Както можете да видите, обемът за премахване е lamp_mysql-данни.

Урок Сянка на Tomb Raider за Linux
Shadow of the Tomb Raider е дванадесетото допълнение към поредицата Tomb Raider - франчайз за екшън-приключенска игра, създаден от Eidos Montreal. Игр...
Как да увеличите FPS в Linux?
FPS означава Кадри в секунда. Задачата на FPS е да измерва честотата на кадрите при възпроизвеждане на видео или игрални изпълнения. С прости думи бро...
Топ Oculus App Lab Games
Ако сте собственик на слушалки на Oculus, тогава трябва да знаете за странично зареждане. Sideloading е процесът на инсталиране на несъхранявано съдър...