Symfony 4 Kurulumu

Eğer symfony 2 veya symfony 3 kurulumu yapmak istiyorsanız buraya tıklayın.


  • Öncelikle kuruluma başlamadan önce php‘nin en az 7.1 sürümünün ve composer‘ın kurulu olduğundan emin olun.
  • Daha sonra işletim sisteminizin terminalinde aşağıdaki komutu çalıştırın.
composer create-project symfony/website-skeleton projem
  • Bu komut çalıştırıldıktan sonra aşağıdaki gibi bir çıktı oluşmalı.
  • Bu aşamada symfony 4 projesi kurulumu tamamlandı. Projeyi geliştirme(dev env) modunda çalıştırmak için aşağıdaki komutları çalıştırın.
cd projem
php -S 127.0.0.1:8000 -t public
  • Bu komut çalıştırıldıktan sonra projeniz 8000 portundan yayına başlayacaktır. Tarayıcınızda http://localhost:8000/ adresini ziyaret edip projenizi görüntüleyebilirsiniz.

Docker Container Permission Sorunu Çözümü

Eğer container’larınızın ortak kullandıgı bir volume’e container’lar farklı user’lar ile dosya/klasör oluşturuyorsa, dosya izini sorunları yaşabilirsiniz.(permission denied)

Örneğin php-fpm image’ını kullandıgınızı varsayarsak, projenizi webten(php-fpm) çalıştırdığınızda dosyalar www-data kullanıcısına ait olacaktır. Eğer terminalden(php-cli) çalıştırırsanız dosyalar root kullanıcısına ait olacaktır.

Çözüm

Dockerfile’ınıza aşağıdaki satırı ekleyin.

USER www-data

Bu işlemi yaptığınızda container’ınıza docker exec ile gönderdiğiniz komutları www-data kullanıcısıyla çalıştıracaktır.

Örnek Senaryo

Symfony framework kullanıyorsanız aşağıdaki komutu çalıştırdığınızda projenizin cache’leri silinecek ve cache klasörünüze root kullanıcısına ait bazı dosyalar oluşacaktır.

docker exec php_prod php bin/console cache:clear

Daha sonra tarayıcınızda sitenizi açmaya çalıştığınızda php-fpm bu cache dosyalarına www-data kullanıcısıyla erişmeye çalışıp, bu kullanıcının yetkileri root kullanıcısının dosyaları okumaya veya yazmaya yetmediği için dosya izni hatası veya sonsuz döngü şeklinde sorunlarla karşılacaksınız.

Yukarıdaki çözümü uyguladığınızda cache dosyaları www-data kullanıcısı tarafından oluşturulduğu için yine aynı kullanıcı ile sorunsuz cache dosyalarınıza erişebileceksiniz.

Symfony Kurulumu

Eğer Symfony 4 kurulumu yapmak istiyorsanız buraya tıklayın.


Symfony Nedir?

PHP web uygulamaları için MVC mimarisine sahip bir web çatısıdır. 2005 yılından beri geliştirilmektedir. Drupal, phpBB, Laravel ve Composer gibi bir çok popüler projenin altyapısında kullanılmaktadır.


Symfony Nasıl Kurulur?

Kurulum için öncellikle işletim sisteminizin terminal’ini açınız. Daha sonra işletim sisteminizin tipine göre aşağıdaki komutları sırasıyla kullanınız.

Linux ve Mac OS X Kurulumu

sudo curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony
sudo chmod a+x /usr/local/bin/symfony

Windows Kurulumu

php -r "file_put_contents('symfony', file_get_contents('https://symfony.com/installer'));"

Not: Bu aşamada yeni symfony projesi oluşturmamızı sağlayan Symfony Installer adlı aracı kuruyoruz.


Yeni Symfony Projesi Nasıl Oluşturulur?

İlk projenizi oluşturmak için symfony komutunun new methodunu kullanabilirsiniz.

Linux ve Mac OS X Proje Oluşturma

# Kullanımı
symfony new [proje_ismi] [symfony_sürümü]
# Örnek
symfony new blog 2.8

Windows Proje Oluşturma

# Kullanımı
php symfony new [proje_ismi] [symfony_sürümü]
# Örnek
php symfony new blog 2.8

Not: Eğer symfony sürümünü yazmazsanız symfony’nin tavsiye ettiği sürüm kurulacaktır.


Symfony Nasıl Çalıştırılır?

Symfony projeleriniz 2 farklı modda çalışabilir. 1. si production environment (prod) 2. si developer environment(dev)’tır.

Prod modda kullanıcıya teknik detaylar gösterilmez, bu mod projenizi sunucunuza yükleyip sunacağınız moddur.

Dev modda ise symfony’nin profiler sistemi tüm isteklerin kaydını tutar, siz başka bir sayfaya geçseniz bile geçmiş kayıtlardan tüm sayfaların nasıl oluşturulduğuna dair detaylı istatistikleri görebilirsiniz.

Production Environment Proje Çalıştırma

Klasik php projelerinden temel farkı varsayılan olarak proje dizini web’tir yani tarayıcı üzerinden doğru adresi açmanız yeterli olacaktır. Hosting kontrol panelinizin klasör yapısı ile uyumlu olması için bu klasörü istediğiniz gibi değiştirebilirsiniz, örneğin public_html yapabilirsiniz.

Developer Environment Proje Çalıştırma

Öncelikle symfony console aracı ile sunucuyu başlatmalısınız. Daha sonra terminal’de göreceğiniz adresi tarayıcınızda açarak projenizi görüntüleyebilirsiniz.

Symfony2 için:

# Geliştirme sunucusunu çalıştırır.
php app/console server:run
# Geliştirme sunucusunu arkaplanda çalıştırır.
php app/console server:start
# Geliştime sunucusunu kapatır.
php app/console server:stop

Symfony3 için:

# Geliştirme sunucusunu çalıştırır.
php bin/console server:run
# Geliştirme sunucusunu arkaplanda çalıştırır.
php bin/console server:start
# Geliştime sunucusunu kapatır.
php bin/console server:stop

Not: Symfony2’den Symfony3’e geçerken console dosyası app’den bin’e taşındığı için kullanacağınız komutların klasörünün doğru olduğundan emin olun.


Symfony2 Kurulumu Ekran Görüntüleri

symfony2-kurulumu

symfony2-homepage

Bu kurulum aşamaları aşağıdaki geliştirme ortamlarında test edilmiştir.

İşletim Sistemi: Ubuntu 14.04, Windows 10, Debian 8, Ubuntu 16.04, CentOS 7

PHP Sürümü: 5.6, 7.0, 7.1

Symfony Sürümü: 2.8.x, 3.2.x, 3.3.x