İçeriğe geç

Docker ile PHP Çalışma Ortamı Oluşturma

Uzun zamandır bloguma yeni bir içerik girmek istiyordum fakat bunun için ne bir zaman ne de bir konu bulabildim. Bugünlerde yeni bir proje geliştirmek için çalışma ortamımdaki “docker” için yeni bir imaj oluştururken bu konu hakkında bir şeyler yazabileceğimi düşündüm. Evet şu anda bu konu hakkında bir şeyler karalıyorum buraya…

Docker’ın ne olduğunu, nasıl çalıştığı kısmına hiç girmeyip sizleri google’ın sonsuz denizlerine bırakıyorum… Bu yazımızda sadece docker kullanarak nasıl bir çalışma ortamı hazırlayabileceğimizi uygulamalı bir şekilde anlatmaya çalışacağım.

Bu yazıyı hazırlarken Mac OS üzerinde testlerimi yapıyor olacağım. İşletim sisteminizin farklılık göstermesi sonucunda oluşabilecek farklı senaryoları benimle paylaşabilirseniz bir çözüm üretmek için elimden geleni yapabilirim.

Öncelikle ihtiyaçlarımızı belirleyelim. Ben bu örnekte Nginx web sunucusunun üzerinde çalışacak bir PHP application için çalışma ortamı hazırlamak istiyorum. Bu nedenle bana gerekli olanlar sırasıyla;

  1. Nginx Web Server
  2. PHP-FPM

İhtiyaç listemizi hazırladık. Bunları temin etme vakti! İlgili paketleri bulabileceğimiz adres: https://store.docker.com. Bunun yanı sıra docker imajlarını bir paket haline getirip her seferinde konsolda aynı işleri yapmak yerine “docker-compose” tool’unu kullanacağım.

Dizinimizi ve “docker-compose.yml” dosyasımızı oluşturalım.

docker-compose.yml dosyamızı açıp nginx için gerekli eklemeleri yapalım.

Nginx web sunucumuz için configlerini ayarlayalım.

Yukarıda paylaştığım default bir nginx config dosyası. root olarak tanımlanan dizine atılan herhangi bir html dosyası 80 portu üzerinden serve edilebilecek şekilde hazırlanmış.

Yaptığımız çalışmayı görme vakti… Aşağıdaki komutu çalıştırarak ilgili docker paketlerini indirip çalıştalım.

-d argümanı, “Detached mode” olarak tanımlanmaktadır. Yani konteynırlar arka planda çalışacaklar.

Bir sorunla karşılaşmadan komutumuz çalıştıysa tarayıcımıza gelip localhost yazıp ilgili html dosyamızı görebiliriz. (Bunun için öncelikle www klasörünüze bir html dosyası oluşturmanız gerekmektedir.)

Şimdi sıra geldi PHP için gerekli düzenlemelerin yapılmasına. PHP için php-fpm imajını kullanacağız. docker-compose.yml dosyamızı açalım ve aşağıdaki eklemelerle birlikte dosyamızın son halini görelim.

Ardından Nginx config dosyamızı açıp aşağıdaki şekilde düzenleyelim.

Nginx config içerisine FPM için ilgili düzenlemeler eklenmiş oldu böylelikle.

PHP-FPM imajı da docker-compose.yml dosyamıza ekledikten sonra konsala gelip aşağıdaki komut ile docker imajlarımızı yeniden başlatalım.

Bir sorun oluşmadıysa, www klasörümüze gelip bir index.php dosyası oluşturalım. İçerisine de aşağıdaki kodları girelim.

Ardından http://localhost/index.php adresine giderek PHP info çıktısını görebiliriz.

Bu çalışma ile docker kullanarak bir çalışma ortamı nasıl kurulur örneklemiş olduk. Dilerseniz mevcut hazır paketleri kullanabilirsiniz veya kendiniz bir imaj build edebilirsiniz. Bu yazımızda offical paketler ile bir çalışma ortamı kurulmuş oldu.

Başka bir yazıda görüşmek üzere 🙂

Kategori:Genel Fikir ve PaylaşımlarPHP
  • mehmet

    nginx config dosyası diye bahsettiğiniz dosya nerede? ismi nedir o dosyanın?

    • “www.conf” dosyası nginx.conf dosyanızdır.