içerik Wordpress

Docker ile WordPress kurulumu

Sıkça sorulan sorulardan biri, “Bir WordPress sitesi kurmak istiyorum ve bunu Docker ile yapmak istiyorum… Ama nasıl?”. Bir WordPress kurulumunda yer alan birkaç farklı hizmet olduğundan, Docker, kurulumunu yapmak için mükemmel bir eştir, öyleyse bir göz atalım.

Bir oluşturma dosyası oluşturarak başlayacağız. Eklemek istediğimiz ilk hizmet veritabanıdır:

version: '2'
services:
  db:
    image: mysql:5.7
    restart: always
    volumes:
       - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: p4ssw0rd!
    networks:
      - back
networks:
  back:
volumes:
  db_data:

MySQL’in (şu anda) en son sürümü olan 5.7’yi kullanıyoruz, ancak tercihiniz buysa, bunu MariaDB ile değiştirebilirsiniz. Bu veritabanına akan veriler, db_data adlı bir birimde saklanacak, böylece kabı kaldırdığım zaman bile veriler makinemde bir yerde yaşayacak ve yeni bir kaba yeniden monte edilebilecek. Ayrıca bu hizmeti bir overlay ağına da bağlarız, böylece gelecekteki kapsayıcıları ona bağlayabiliriz.

Şimdi, hizmeti herhangi bir bağlantı noktasında yayınlamadım. Aslında, veritabanımızın yönetim arabirimimiz olarak hizmet verecek başka bir hizmet phpmyadmin ekleyeceğim:

version: '2'
services:
  db:
    image: mysql:5.7
    restart: always
    volumes:
       - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: p4ssw0rd!
    networks:
      - back
  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - 8080:80
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: p4ssw0rd!
    networks:
      - back
networks:
  back:
volumes:
  db_data:

Phpmyadmin, arka ağ üzerinden db veritabanı hizmetine bağlanacak ve 8080 numaralı bağlantı noktasında hizmet verecek. Hızlı bir docker-compose up -d her şeyi getirecek ve tarayıcınızı localhost:8080 phpmyadmin karşılama ekranı tarafından karşılanacaksınız. root kullanıcısı ve oluşturma dosyasında tanımlanan şifre ile oturum açabilirsiniz.

Şimdi tüm kurulumumuzun ana parçası olan WordPress hizmeti geliyor:

version: '2'
services:
  wordpress:
    depends_on:
      - db
    image: wordpress:4.6
    restart: always
    volumes:
      - ./wp-content:/var/www/html/wp-content 
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_PASSWORD: p4ssw0rd!
    ports:
      - 80:80
      - 443:443
    networks:
      - back
  db:
    image: mysql:5.7
    restart: always
    volumes:
       - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: p4ssw0rd!
    networks:
      - back
  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - 8080:80
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: p4ssw0rd!
    networks:
      - back
networks:
  back:
volumes:
  db_data:

4.6 sürümünden başlayacağız ve kurulumlarımı temiz tutmayı sevdiğim için, yerel makinemde yalnızca temaları ve eklentileri içeren wp-content klasörünü kapsayıcıya bağlayacağım. Temel wordpress kurulumundaki diğer dosyalar konteynerin kendisi tarafından sağlanacaktır.

Tekrar bir docker-compose up -d zamanı, bu wordpress hizmetini başlatacak. Yerel dosya sisteminizi yakından takip ettiğinizde, docker görüntüleri çekildikten sonra wp-content klasörünün oluşturulacağını ve dosya ve klasörlerle doldurulacağını göreceksiniz. Bu, wordpress yükleyicisi tarafından oluşturulan temel dosya sistemidir. Birkaç saniye sonra her şey yüklenecek. Sizden birkaç parametre yapılandırmanızı isteyen yükleme ekranını görmek için tarayıcıda localhost'u açın.

Şimdi devam edebilir ve wp-admin arayüzünde veya dosya sisteminde değişiklikler yapabilir, eklentileri yükleyebilir ve temaları değiştirebilirsiniz ve bu, yerel makinenizdeki wp-content klasör üzerinde anında etkili olacaktır. Hazır olduğunuzda, değişikliklerinizi kodlama havuzunuza uygulayabilirsiniz.

Yine de son bir şey kaldı. Yönetici kontrol panelimiz bizi yeni bir WordPress sürümü konusunda uyardığı için güncellememiz gerekecek. İyi vatandaşlar ve Docker kullanıcıları olarak, görüntü sürümünü en yenisiyle değiştirip yeniden başlatacağız:

version: '2'
services:
  wordpress:
    depends_on:
      - db
    image: wordpress:4.7.1
    restart: always
    volumes:
      - ./wp-content:/var/www/html/wp-content 
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_PASSWORD: p4ssw0rd!
    ports:
      - 80:80
      - 443:443
    networks:
      - back
  db:
    image: mysql:5.7
    restart: always
    volumes:
       - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: p4ssw0rd!
    networks:
      - back
  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - 8080:80
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: p4ssw0rd!
    networks:
      - back
networks:
  back:
volumes:
  db_data:

Resmi depodaki bu yorum maalesef yeterli değil. Yalnızca kapsayıcının güncellenmesi değil, aynı zamanda Güncellemeler sekmesindeki yönetici arayüzünden bir güncelleme başlatmamız da gerekiyor. Tüm güncelleme görevleri tamamlandıktan sonra, WordPress kurulumumuz tamamen günceldir!

Hobi olarak Web, Masaüstü ve Mobil Yazılım geliştiriyorum. Python, Php, C# ve Html dilleriyle çalışıyorum, ara sıra E-ticaret alanında ilgileniyorum ve bunları zaman zaman burada anlatacağım.

Leave a Comment