GNU/Linux >> Znalost Linux >  >> Ubuntu

Dockerizace Wordpressu pomocí Nginx a PHP-FPM na Ubuntu 16.04

Docker-Compose je nástroj příkazového řádku pro definování a správu vícekontejnerových dokovacích kontejnerů, jako by šlo o jedinou službu. Compose je napsán v pythonu a lze jej nainstalovat pomocí příkazu Python pip. Pomocí compose můžeme spustit více kontejnerů dockerů pouze pomocí jediného příkazu. Umožňuje vám vytvořit kontejner jako službu, která je skvělá pro vaše vývojové, testovací a pracovní prostředí.

V tomto tutoriálu vás krok za krokem provedu používáním docker-compose. Nasadíme 'Wordpress s Nginx, MySQL a PHP-FPM. Každá služba má svůj vlastní kontejner a budeme používat obrázky z registru docker hub. Ukážu vám, jak vytvořit kontejnery z obrázků dockeru a spravovat všechny kontejnery pomocí docker-compose.

Předpoklad

  • Ubuntu 16.04
  • Kořenová oprávnění

Krok 1 – Instalace Dockeru

Začneme od začátku instalací dockeru a docker compose ručně pomocí příkazu apt.

Než začneme, aktualizujte úložiště Ubuntu a nainstalujte nejnovější aktualizace:

aktualizace sudo apt-get
aktualizace sudo apt-get

Ve výchozím nastavení je docker k dispozici v úložišti Ubuntu, takže můžeme pokračovat v jeho instalaci:

sudo apt-get install -y docker.io

Po dokončení instalace spusťte docker a přidejte jej, aby se automaticky spustil při spouštění:

systemctl start docker
systemctl enable docker

Nyní otestujte instalaci dockeru pomocí příkazu níže:

Docker spustit hello-world

Uvidíte hello-world z dockeru.

Krok 2 – Instalace Docker-Compose

Docker-compose je skript napsaný v pythonu, je dostupný v pythonovém úložišti PyPI a lze jej nainstalovat pomocí python pip. Nejprve tedy musíme nainstalovat python a python pip do našeho systému.

Nainstalujte python a python-pip:

sudo apt-get install -y python python-pip

Dále nainstalujte docker-compose pomocí příkazu pip:

pip install docker-compose

počkejte na dokončení procesu instalace. Poté zkontrolujte instalaci pomocí příkazu docker-compose:

docker-compose -v

Získáte verzi docker-compose.

Krok 3 – Nastavení Wordpressu

Nyní jsou v systému nainstalovány docker a docker-compose. V tomto kroku vám ukážeme, jak vytvořit a nastavit prostředí docker-compose pro náš projekt WordPress.

Nasadíme PHP aplikaci „Wordpress“ s Nginx jako webovým serverem a MariaDB pro databázi MySQL jako docker kontejnery spravované docker-compose. Každá aplikace (Wordpress, Nginx a MySQL) poběží ve svém vlastním kontejneru, seznam můžete vidět níže:

- Nginx :Používáme oficiální obrázek dockeru, nejnovější verzi 'nginx:nejnovější'.

Wordpress :Wordpress poskytuje některé obrázky dockeru na docker-hubu a my budeme používat WordPress 4.7 s PHP-FPM 7.0.

- MySQL :Použijeme oficiální kontejner MariaDB, nejnovější verzi.

Potřebujeme tedy 3 obrazy dockeru z registru docker hub.

Nebudeme spouštět docker jako root, použijeme normálního uživatele Linuxu. Takže jednoduše vytvořte nového uživatele pomocí příkazu níže (můžete zde použít jiné uživatelské jméno, jen se ujistěte, že uživatel ještě neexistuje. Pokud zvolíte jiné jméno, ujistěte se, že je změníte ve všech příkazech, které následují v tomto tutoriálu):

useradd -m -s /bin/bash hakase
passwd hakase

Nyní přidejte uživatele do 'dockeru ', aby uživatel mohl použít příkaz docker a restartovat službu docker:

usermod -a -G docker hakase
systemctl restart docker

Přihlaste se k uživateli 'hakase' a vytvořte nový adresář pro projekt WordPress:

su - hakase
mkdir -p wordpress-compose
cd wordpress-compose/

Dále vytvořte nový soubor s názvem 'docker-compose.yml “ a vytvořte nový adresář pro projekt. Stačí zadat níže uvedené příkazy:

touch docker-compose.yml
mkdir -p nginx/
mkdir -p db-data/
mkdir -p logs/nginx/
mkdir -p wordpress/

Seznam souborů a adresářů projektu:

- docker-compose.yml :Toto je konfigurační soubor docker-compose, musíte jej vytvořit při spouštění nového projektu docker-compose.

nginx/ :Tento adresář se používá pro naši další konfiguraci nginx, jako je virtuální hostitel atd.

- db-data/ :Svazek/adresář pro data mysql. Sql z dat '/var/lib/mysql' je připojen k adresáři db-data.

- protokoly/ :Adresář pro protokol aplikací, nginx, mariadb a php-fpm.

- wordpress/: V tomto adresáři budou dostupné všechny soubory wordpress.

V adresáři 'nginx' vytvořte nový konfigurační soubor pro našeho virtuálního hostitele wordpress.

Vytvořte nový soubor wordpress.conf:

vim nginx/wordpress.conf

Vložte konfiguraci níže:

server {
    listen 80;
    název_serveru wp-hakase.co;

    root /var/www/html;
    index index.php;

    access_log /var/log/nginx/hakase-access.log;
    error_log /var/log/nginx/hakase-error.log;

    umístění / {
        try_files $uri $uri/ /index.php?$args;
    }

    umístění ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass wordpress:9000;
        fastcgi_index index.php;
        zahrnout fastcgi_param    zahrnout fastcgi_param   SCRO PT_FI> Fastcgi_param s SC R PT FI> Fastcgi_param s $fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

Uložte soubor a ukončete vim.

Krok 4 – Konfigurace Docker-Compose

V tomto kroku začneme upravovat soubor docker-compose.yml. Když chcete spustit projekt docker-compose, ujistěte se, že jste nejprve vytvořili soubor docker-compose.yml, jak to děláme níže.

Upravte docker-compose.yml pomocí vim:

vim docker-compose.yml

Definujte své služby, na prvním řádku definujeme Nginx. Používáme oficiální image dockeru Nginx, nejnovější verzi a konfigurujeme mapování portů pro port 80 na kontejneru na port 80 na hostiteli. Dále nakonfigurujte svazky dockeru, svazek pro konfiguraci našeho virtuálního hostitele Nginx, svazek pro soubory protokolu Nginx a svazek webového kořenového adresáře '/var/www/html'. Kontejner Nginx je propojen s kontejnerem WordPress.

Vložte konfiguraci níže:

nginx:
    image:nginx:latest
    porty:
        - '80:80'
    svazky:
        - ./nginx:/etc/nginx/ conf.d
        - ./logs/nginx:/var/log/nginx
        - ./wordpress:/var/www/html
    odkazy:
        – wordpress
    restart:vždy

Dále definujte server MySQL. Používáme obraz MariaDB, nejnovější verzi. Nakonfigurujte mapování portů pro kontejner na portu 3306 a nakonfigurujte kořenové heslo MySQL pomocí proměnné prostředí 'MYSQL_ROOT_PASSWORD'. Nakonec nakonfigurujte objem kontejneru pro datový adresář MySQL.

Vložte konfiguraci níže:

mysql:
    obrázek:mariadb
    porty:
        - '3306:3306'
    svazky:
        - ./db-data:/var/lib/ mysql
    prostředí:
        - MYSQL_ROOT_PASSWORD=aqwe123
    restart:vždy

Poté nakonfigurujeme službu WordPress pomocí obrazu dockeru WordPress 4.7 s nainstalovaným PHP-FPM 7.0. Nakonfigurujte port pro PHP-fpm na portu 9000, povolte svazek dockeru pro webový adresář '/var/www/html' do hostitelského adresáře 'wordpress', nastavte databázi definováním proměnné prostředí WordPress a propojte službu WordPress s mysql.

Vložte konfiguraci níže:

wordpress:
    obrázek:wordpress:4.7.1-php7.0-fpm
    porty:
        - '9000:9000'
    svazky:
        - . /wordpress:/var/www/html
    prostředí:
         - WORDPRESS_DB_NAME=wpdb
        - WORDPRESS_TABLE_PREFIX=wp_
 D       - WORDPRESS_DB_    - WORDPRESS_DB_2 – WORDPRESS_DB_12 - WORDPRESS_DB_HOST /  sq  we 1 – WORDPRESS_DB_HOST / sq>    odkazy:
        – mysql
    restart:vždy

Po přidání tří částí do souboru docker-compose.yml soubor uložte a ukončete editor vim.

Naše konfigurace docker-compose je připravena.

Krok 5 – Spusťte Docker-compose

Začněte vytvářet nové kontejnery pomocí docker compose. Přejděte do adresáře wordpress-compose a spusťte nové kontejnery založené na našem souboru compose.

cd ~/wordpress-compose/
docker-compose up -d

Můžete vidět výsledky příkazu. Byly vytvořeny tři kontejnery. Pojďme zkontrolovat stav kontejneru pomocí možnosti ps:

docker-compose ps

Níže je výsledek:

Pokud chcete vidět výstup protokolu z kontejneru, můžete použít následující příkazy:

protokoly docker-compose nginx
protokoly docker-compose mysql
protokoly docker-compose wordpress

Protokoly kontejneru:

Poznámka :
Pokud v protokolu kontejneru WordPress uvidíte chybu o odmítnutí připojení MySQL, ignorujte ji.

Krok 6 – Nainstalujte Wordpress

Než provedeme tento krok, zkontrolujme dostupné porty/otevřené porty v systému. Ujistěte se, že máte otevřené 3 porty, port 80, 3306 a port 9000.

netstat -plntu

Výsledky jsou níže:

Nyní otevřete webový prohlížeč a zadejte adresu URL serveru nebo IP adresu.

http://IP_serveru/

Můžete se podívat na instalační stránku WordPressu. Vyberte jazyk a klikněte na tlačítko Pokračovat '.

Vyplňte podrobnosti o svém webu, jako je název webu, uživatel a heslo správce, svou e-mailovou adresu a poté klikněte na 'Instalovat Wordpress '.

Budete přesměrováni na 'Administrátorský panel Wordpress '.

A toto je můj ukázkový příspěvek na WordPressu ahoj světe.

Wordpress byl nainstalován pomocí docker-compose.

Krok 7 – Přístup ke kontejneru Docker

Toto je další krok, jak získat přístup ke kontejneru pomocí docker-compose. Zkontrolujte, zda jsou k dispozici všechny kontejnery, a ukažte jejich stav:

docker-compose ps

Již máme 3 kontejnery, nyní se můžeme pokusit přihlásit ke každému kontejneru. Přihlaste se k prvnímu kontejneru Nginx pomocí příkazu docker-compose.

docker-compose exec nginx bash

nginx :název služby v souboru docker-compose docker-compose.yml

bash :spusťte příkaz bash shell

Nyní zkontrolujte konfiguraci virtuálního hostitele WordPress.

cat /etc/nginx/conf.d/wordpress.conf

Soubory jsou dostupné v kontejneru.

Dále se zkuste přihlásit do kontejneru mysql a poté se přihlaste do prostředí mysql s naším heslem v souboru pro vytváření zpráv.

docker-compose exec mysql bash
mysql -u root -p
TYP MYSQL ROOT PASSWORD

Podívejte se na seznam databází:

zobrazit databáze;

Uvidíte naši databázi WordPress.

V kontejneru 'wordpress' uvidíte všechny soubory WordPress.

docker-compose exec wordpress bash
ls -lah

Všechny kontejnery jsou přístupné.


Ubuntu
  1. Jak nainstalovat WordPress s Dockerem na Ubuntu

  2. Nainstalujte Prosper202 s Nginx, MySQL a PHP-FPM na Ubuntu

  3. Nainstalujte WordPress s Varnish a Nginx na Ubuntu

  1. Ubuntu 20.04:WordPress s instalací Nginx

  2. Jak nainstalovat WordPress s Nginx na Ubuntu 18.04

  3. Nainstalujte WordPress s Memcached a Nginx na Ubuntu

  1. Instalace Nginx s PHP5 (a PHP-FPM) a podporou MySQL (LEMP) na Ubuntu 14.04 LTS

  2. Jak nainstalovat Drupal 8 s Nginx, PHP-FPM a SSL na Ubuntu 15.10

  3. Jak nainstalovat OpenCart 2 s Nginx a SSL na Ubuntu 15.10