Furkan Hakan
YazarFurkan Hakan
2 dakika okuma süresi
Haz 5, 2020

PHP Projesini Docker Üzerinde Çalıştırmak


Bu yazımda docker kullanarak Nginx web server üzerinde php projemizi nasıl çalıştırabiliriz onu anlatacağım.

Öncelikle aşağıdaki şekilde bir proje dizini yaratıyoruz.

Öncelikle nginx üzerinde projemizi çalıştırabilmek için bir config dosyası yazıyoruz.

Nginx’in default gelen config dosyası php dosyalarını çalıştırmak için ayarlı değildir. Bu nedenle bu işlemi yapıyoruz.

# /nginx/default.conf

server {

    listen 80;

    server_name localhost;

    root /usr/share/nginx/html;

location / {

         index index.html index.htm index.php;

     }

    error_page 500 502 503 504 /50x.html;

location ~ \.php$ {

        fastcgi_pass php:9000;

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;

        include fastcgi_params;

        fastcgi_param PATH_INFO $fastcgi_path_info;

    }

}

Daha sonra Dockerfile dosyamızı yazıyoruz. Dockerfile dosyamızın içerisindeki COPY default.conf /etc/nginx/conf.d ile kendi config dosyamızı nginx’in config dosyasıyla değiştiriyoruz.

# /nginx/Dockerfile

FROM nginx:latest

COPY default.conf /etc/nginx/conf.d/

Son olarak docker-compose.yml dosyamızı aşağıdaki şekilde yazıyoruz.

# docker-compose.yml

version: '2'

services:

  web-server:

    build: ./nginx # => nginx klasöründe bulunana Dockerfile dosyasını çalıştırır.

    ports:

      - 8080:80 # => Web server'a ait 80 portu dışarıya 8080 portundan aktarıldı.

    volumes:

      - ./:/usr/share/nginx/html # => Nginx çalışma dizini bulunduğumuz dizinle ilişkilendirildi.

      - ./logs:/var/log/nginx # => Nginx log dizini, projemizin logs dizini olarak ilişkilendirildi.

    links:

      - php # => Web sunucumuzun PHP imajıyla konuşabilmesi için iki servis ilişkilendirildi.

  php:

    image: php:7.1-fpm

    volumes:

      - ./:/var/www/html

Tüm bu dosyaları ayarladıktan sonra terminalimizi açıp proje dizinine geliyoruz. Proje dizininde docker-compose up -d komutunu çalıştırıyoruz. Bu işlem ile dosyadaki tüm satırlar sırayla işleme alınarak konteynerlerimiz ayağa kalkar.

Bunlar İlginizi Çekebilir