GNU/Linux >> Belajar Linux >  >> Ubuntu

Dockerizing Wordpress dengan Nginx dan PHP-FPM di Ubuntu 16.04

Tulisan Docker adalah alat baris perintah untuk mendefinisikan dan mengelola kontainer buruh pelabuhan multi-kontainer seolah-olah mereka adalah layanan tunggal. Compose ditulis dengan python dan dapat diinstal dengan perintah Python pip. Dengan compose, kita dapat menjalankan beberapa container docker hanya dengan satu perintah. Ini memungkinkan Anda membuat wadah sebagai layanan, bagus untuk lingkungan pengembangan, pengujian, dan pementasan Anda.

Dalam tutorial ini, saya akan memandu Anda langkah demi langkah untuk menggunakan docker-compose. Kami akan menerapkan 'Wordpress ' dengan Nginx, MySQL, dan PHP-FPM. Setiap layanan memiliki wadahnya sendiri, dan kami akan menggunakan gambar dari registri hub docker. Saya akan menunjukkan cara membuat container dari gambar docker dan mengelola semua container dengan docker-compose.

Prasyarat

  • Ubuntu 16.04
  • Keistimewaan Root

Langkah 1 - Instal Docker

Kita akan mulai dari awal, dengan menginstall docker dan docker compose secara manual dengan perintah apt.

Sebelum kita mulai, perbarui repositori Ubuntu dan instal pembaruan terbaru:

sudo apt-get update
sudo apt-get upgrade

Secara default, buruh pelabuhan tersedia di repositori Ubuntu, jadi kami dapat terus menginstalnya segera:

sudo apt-get install -y docker.io

Ketika instalasi selesai, mulai buruh pelabuhan dan tambahkan untuk memulai secara otomatis saat boot:

systemctl start docker
systemctl aktifkan docker

Sekarang uji instalasi buruh pelabuhan Anda dengan perintah di bawah ini:

docker menjalankan hello-world

Anda akan melihat hello-world dari buruh pelabuhan.

Langkah 2 - Instal Docker-Compose

Docker-compose adalah skrip yang ditulis dengan python, tersedia di repositori python PyPI dan dapat diinstal dengan python pip. Jadi kita perlu menginstal python dan python pip di sistem kita terlebih dahulu.

Instal python dan python-pip:

sudo apt-get install -y python python-pip

Selanjutnya, instal docker-compose dengan perintah pip:

pip install docker-compose

tunggu sampai proses instalasi selesai. Kemudian periksa instalasi dengan perintah docker-compose:

docker-compose -v

Anda akan mendapatkan versi docker-compose.

Langkah 3 - Siapkan Wordpress

Sekarang, docker dan docker-compose diinstal pada sistem. Pada langkah ini, akan menunjukkan kepada Anda cara membuat dan menyiapkan lingkungan docker-compose untuk proyek WordPress kami.

Kami akan menerapkan aplikasi PHP 'Wordpress' dengan Nginx sebagai server web, dan MariaDB untuk database MySQL sebagai wadah buruh pelabuhan yang dikelola oleh docker-compose. Setiap aplikasi (Wordpress, Nginx, dan MySQL) akan berjalan dalam wadahnya sendiri, Anda dapat melihat daftar di bawah ini:

- Nginx :Kami menggunakan gambar buruh pelabuhan resmi, versi terbaru 'nginx:terbaru'.

- Wordpress :Wordpress menyediakan beberapa gambar buruh pelabuhan di hub buruh pelabuhan, dan kita akan menggunakan WordPress 4.7 dengan PHP-FPM 7.0 di atasnya.

- MySQL :Kami akan menggunakan wadah resmi MariaDB, versi terbaru.

Jadi kita membutuhkan 3 image buruh pelabuhan dari registri hub buruh pelabuhan.

Kami tidak akan menjalankan buruh pelabuhan sebagai root, kami akan menggunakan pengguna Linux biasa. Jadi buat saja pengguna baru dengan perintah di bawah ini (jangan ragu untuk menggunakan nama pengguna yang berbeda di sini, pastikan pengguna tersebut belum ada. Jika Anda memilih nama yang berbeda, pastikan untuk mengubahnya di semua perintah yang mengikuti tutorial ini):

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

Sekarang tambahkan pengguna ke 'buruh pelabuhan ' grup sehingga pengguna dapat menggunakan perintah buruh pelabuhan, dan memulai ulang layanan buruh pelabuhan:

usermod -a -G docker hakase
systemctl restart docker

Masuk ke pengguna 'hakase' dan buat direktori baru untuk proyek WordPress:

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

Selanjutnya, buat file baru bernama 'docker-compose.yml ', dan buat direktori baru untuk proyek tersebut. Cukup ketik perintah di bawah ini:

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

Daftar File dan Direktori proyek:

- docker-compose.yml :Ini adalah file konfigurasi docker-compose, Anda harus membuatnya saat memulai proyek docker-compose baru.

- nginx/ :Direktori ini digunakan untuk konfigurasi nginx tambahan kami seperti virtual host dll.

- db-data/ :Volume/direktori untuk data mysql. sql from data '/var/lib/mysql' dipasang ke direktori db-data.

- log/ :Direktori untuk log aplikasi, nginx, mariadb dan php-fpm.

- wordpress/: Semua file wordpress akan tersedia di direktori itu.

Di direktori 'nginx', buat file konfigurasi baru untuk host virtual wordpress kami.

Buat file baru wordpress.conf:

vim nginx/wordpress.conf

Tempelkan konfigurasi di bawah ini:

server {
    listen 80;
    server_name 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;

    lokasi / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
       try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass wordpress:9000;
       fastcgi_index index.php;
       sertakan fastcgi_  T_FILE /   params;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

Simpan file dan keluar dari vim.

Langkah 4 - Konfigurasikan Docker-Compose

Pada langkah ini, kita akan mulai mengedit file docker-compose.yml. Saat Anda ingin memulai proyek docker-compose, pastikan Anda membuat file docker-compose.yml terlebih dahulu seperti yang kami lakukan di bawah ini.

Edit docker-compose.yml dengan vim:

vim docker-compose.yml

Tentukan layanan Anda, pada baris pertama kami akan mendefinisikan Nginx. Kami menggunakan gambar buruh pelabuhan resmi Nginx, versi terbaru, dan mengonfigurasi pemetaan port untuk port 80 pada wadah ke port 80 pada host. Selanjutnya, konfigurasikan volume buruh pelabuhan, volume untuk konfigurasi virtual host Nginx kami, volume untuk file log Nginx dan volume direktori root web '/var/www/html'. Wadah Nginx ditautkan ke wadah WordPress.

Tempelkan konfigurasi di bawah ini:

nginx:
    image:nginx:latest
    port:
       - '80:80'
    volumes:
       - ./nginx:/etc/nginx/ conf.d
        - ./logs/nginx:/var/log/nginx
       - ./wordpress:/var/www/html
    link:
       - wordpress
    mulai ulang:selalu

Selanjutnya, tentukan server MySQL. Kami menggunakan gambar MariaDB, versi terbaru. Konfigurasikan pemetaan port untuk wadah pada port 3306, dan konfigurasikan kata sandi root MySQL dengan variabel lingkungan 'MYSQL_ROOT_PASSWORD'. Terakhir, konfigurasikan volume penampung untuk direktori data MySQL.

Tempelkan konfigurasi di bawah ini:

mysql:
    image:mariadb
    port:
        - '3306:3306'
    volumes:
       - ./db-data:/var/lib/ mysql
    lingkungan:
        - MYSQL_ROOT_PASSWORD=aqwe123
    mulai ulang:selalu

Kemudian kita akan mengkonfigurasi layanan WordPress dengan menggunakan gambar buruh pelabuhan WordPress 4.7 dengan PHP-FPM 7.0 diinstal. Konfigurasikan port untuk PHP-fpm pada port 9000, aktifkan volume buruh pelabuhan untuk direktori web '/var/www/html' ke direktori host 'wordpress', atur database dengan mendefinisikan variabel lingkungan WordPress, dan tautkan layanan WordPress ke mysql.

Tempelkan konfigurasi di bawah ini:

wordpress:
    gambar:wordpress:4.7.1-php7.0-fpm
    port:
        - '9000:9000'
    volume:
        - . /wordpress:/var/www/html
    environment:
        - WORDPRESS_DB_NAME=wpdb
       - WORDPRESS_TABLE_PREFIX=wp_
       - WORDPRESS_DB HOST> _DB_saya__DB_HOST>=saya>    link:
        - mysql
    mulai ulang:selalu

Setelah menambahkan tiga bagian ke dalam file docker-compose.yml, simpan file dan keluar dari editor vim.

Konfigurasi docker-compose kami sudah siap.

Langkah 5 - Jalankan Docker-compose

Mulai buat container baru dengan docker compose. Buka direktori penulisan wordpress dan mulai wadah baru berdasarkan file penulisan kami.

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

Anda dapat melihat hasil dari perintah tersebut. Tiga kontainer dibuat. Mari kita periksa status container dengan opsi ps:

docker-compose ps

Di bawah ini adalah hasilnya:

Jika Anda ingin melihat output log dari container, Anda dapat menggunakan perintah di bawah ini:

log penulisan buruh pelabuhan nginx
log pembuatan buruh pelabuhan mysql
log pembuatan buruh pelabuhan wordpress

Log kontainer:

Catatan :
Jika Anda melihat di log kontainer WordPress kesalahan tentang koneksi MySQL ditolak, abaikan saja.

Langkah 6 - Instal Wordpress

Sebelum kita melakukan langkah ini, mari kita periksa port yang tersedia/port terbuka pada sistem. Pastikan Anda memiliki 3 port yang terbuka, port 80, 3306 dan port 9000.

netstat -plntu

Hasilnya di bawah ini:

Sekarang buka browser web Anda dan ketik URL server atau alamat IP.

http://serverIP/

Anda dapat melihat halaman instalasi WordPress. Pilih bahasa Anda dan klik 'Lanjutkan '.

Isi detail situs web Anda seperti judul situs, pengguna dan kata sandi admin, alamat email Anda, lalu klik 'Instal Wordpress '.

Anda akan dialihkan ke 'Dasbor Admin Wordpress '.

Dan ini adalah contoh posting WordPress saya hello world.

Wordpress telah diinstal dengan docker-compose.

Langkah 7 - Mengakses Docker Container

Ini adalah langkah tambahan tentang cara mengakses wadah dengan docker-compose. Periksa apakah semua wadah tersedia dan tunjukkan statusnya:

docker-compose ps

Kita sudah memiliki 3 container, sekarang kita bisa mencoba login ke masing-masing container. Masuk ke wadah Nginx pertama dengan perintah docker-compose.

docker-compose exec nginx bash

nginx :nama layanan pada file docker-compose docker-compose.yml

bash :jalankan perintah bash shell

Sekarang periksa konfigurasi host virtual WordPress kami.

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

File tersedia dalam wadah.

Selanjutnya, coba login ke mysql container, lalu login ke mysql shell dengan password kita di file compose.

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

Lihat daftar database:

tampilkan database;

Anda akan melihat database WordPress kami.

Dalam wadah 'wordpress', Anda akan melihat semua file WordPress.

docker-compose exec wordpress bash
ls -lah

Semua kontainer dapat diakses.


Ubuntu
  1. Cara Menginstal WordPress dengan Docker di Ubuntu

  2. Instal Prosper202 dengan Nginx, MySQL dan PHP-FPM di Ubuntu

  3. Instal WordPress dengan Varnish dan Nginx di Ubuntu

  1. Ubuntu 20.04:WordPress dengan instalasi Nginx

  2. Cara Menginstal WordPress dengan Nginx di Ubuntu 18.04

  3. Instal WordPress dengan Memcached dan Nginx di Ubuntu

  1. Menginstal Nginx Dengan PHP5 (Dan PHP-FPM) Dan Dukungan MySQL (LEMP) Di Ubuntu 14.04 LTS

  2. Cara Menginstal Drupal 8 dengan Nginx, PHP-FPM dan SSL di Ubuntu 15.10

  3. Cara Menginstal OpenCart 2 dengan Nginx dan SSL di Ubuntu 15.10