Linux’a Symfony Kurulumu ve Konfigürasyonu

Bu konu başlığı altında verilen bilgiler Symfony & Phpunit başlıklı yazı dizisine aittir.
Bir önceki Symfony & Phpunit başlıklı yazıya erişmek için tıklayın.


Symfony ile proje oluşturmadan önce Symfony’nin web sitesinde Get Started başlıklı yazıya göz atmanızı tavsiye ederim. Symfony’nin web sitesinde anlatılanları baz alarak projemizi oluşturacağız.

Öncelikle Symfony’nin download sayfasını açıyoruz. Orada Symfony’i bilgisayarımıza kurmak için gerekli talimatları görebiliriz. Ben kendi izlediğim yolu anlatacağım.

  1. Symfony indirme sayfasından Symfony’nin uygun olan paketi indiriyoruz. Bu yazının yazıldığı tarihte ben Symfony Standart Edition 2.3.1 (.tgz) isimli paketi indirdim.
  2. İndirdiğimiz paketi projenin çalışacağı dizine çıkarıyoruz. Bunu arayüz üzerinden yapabileceğiniz gibi komut satırından da yapabilirsiniz. İndirilen dosyanın projenin çalışacağı dizinde olduğundan emin olduktan sonra ilgili dizine terminal üzerinden gidip bu komutu çalıştırabilirsiniz;
    tar zxvf Symfony_Standard_Vendors_2.3.1.tgz
  3. Projeyi ilgili dizine çıkardıkan sonra Symfony adında bir klasör oluşacak. Yapacağımız her şey bu Symfony kasörü altında olacak. Symfony adını proje isminizle değiştirip indirilen .tgz veya .zip dosyasını silebilirsiniz. Ben “Symfony” ismini “hello_symfony” olarak değiştirdim.
  4. hello_symfony klasörüne terminal üzerinden girip (cd hello_symfony) aşağıdaki komutu çalıştırıyoruz;
    curl -s http://getcomposer.org/installer | php

    Bu komut Symfony’nin kullandığı dış kütüphaneleri yükleyip güncelleştirmemize, onları düzenlememize olanak sağlayan Composer’ı yükleyecek. Composer’ı ilerleyen adımlarda kullanacağız.

  5. Proje oluşturmak için hello_symfony klasöründe olduğunuza emin olduktan sonra aşağıdaki komutu yazın;
    php composer.phar create-project symfony/framework-standard-edition 2.3.1

    Eğer proje klasörü içinde değilseniz komutu aşağıdaki şekilde de değiştirebilirsiniz;

    php composer.phar create-project symfony/framework-standard-edition /path/to/webroot/Symfony 2.3.1

    path/to/webroot kısmı proje dizinini ifade ediyor. Biz zaten dizinin içinde olduğumuz için o parametreyi vermeye gerek duymadık. Bu komut çeşitli kütüphaneleri indirip güncellediğinden dolayı komutun çalışması biraz zaman alabilir. composer.phar dosyası bu tür komutları terminal üzerinden çalıştırıp çeşitli işlemler yapmamıza olanak sağlayan bir aracı görevinde.

    Not: Eğer komut çalışırken aşağıdaki gibi bir hata alırsanız bunun sebebi php.ini‘deki apc.enable_cli parametresinin 1 olmasıdır.

    [apc-error] Cannot redeclare class composer\composer in phar://path/to/webroot/hello_symfony/composer.phar/vendor/composer/ClassLoader.php on line 185.

    Bu sorunu gidermek için projeyi aşağıdaki komutla oluşturun;

    php -d "apc.enable_cli=0" composer.phar create-project symfony/framework-standard-edition /path/to/webroot/Symfony 2.3.1

    Komut çalışırken bizden veritabanıyla ve diğer modüllerle ilgili çeşitli alanları doldurmamızı isteyecek. Bu alanları boş bırakabiliriz. Eğer boş geçersek uygulama o alanları kendisi dolduracak. Bu alanda veritabanı için bir host belirtebilir, veritabanı ismi, kullanıcı adı, şifre girebiliyoruz.

  6. Bu işlemleri yaptıktan sonra proje klasörümüzün şu şekilde olması gerekiyor;
          path/to/webroot/
              hello_symfony/
                  app/
                      cache/
                      config/
                      logs/
                  src/
                      ...
                  vendor/
                      ...
                  web/
                      app.php
                      ...
  7. Bu noktada proje geliştirmek için Symfony’i kurmuş bulunuyoruz. Symfony’nin çok sayıda kütüphaneyle bağlantısı bulunmakta. Bu kütüphaneler Composer isimli kütüphane kullanılarak önceki adımlarda yaptığımız gibi vendor dizini altına kurulmakta.
  8. Bu adımda vendor altındaki kütüphaneleri güncelleştiriyoruz. Birden fazla kişi aynı proje üzerinde çalıştığında farklı bilgisayarlarda yaptığınız değişiklikler sonucu bu vendor klasörünü güncelleştirmeniz gerekir. Eğer yeni kütüphaneler eklenmişse veya yeni eklentiler mevcutsa bu sayede senkronizasyon sağlanmış olur. Bu iş için Composer kullanacağız.Not: Composer yüklü değilse 4. adımda anlatıldığı gibi Composer’ı yükleyebilirsiniz. Ama bu yazıyı takip ediyorsanız Composer yüklenmiş demektir.Composer indikten sonra composer.phar dosyası aracılığıyla vendor altındaki kütüphaneleri yüklüyoruz. Bunun için aşağıdaki komutu kullanın;
    php composer.phar install

    Not: Eğer yine [apc-error] hatası alırsanız komutu aşağıdakiyle değiştirin.

    php -d "apc.enable_cli=0" composer.phar install

    Not: Eğer aşağıdaki hata mesajını alırsanız (ben aldım, muhtemelen localhost’u kullanarak proje geliştiren arkadaşlarda bu hata çıkmayacaktır) bu linkteki ICU and Deployment Problems başlığı altında yapılan açıklamaları okuyun ve söylenen çözümü uygulayın. 

    error

  9. Symfony uygulaması çalışma esnasında cache ve log klasörlerini kullanır. Bu klasöre çeşitli veriler yazar. Kullandığınız işletim sisteminde bütük olasılıkla bu klasörlere okuma/yazma yetkisi verilmemiştir. Bu nedenle bu klasörlere dosya işlemleri için izin vermek gerekir. Bunun için hello_symfony klasörü içindeyken aşağıdaki komutu kullanın.
    sudo chmod +a "www-data allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs

    Eğer yukarıdaki kod işlemezse (benim kullandığım işletim sisteminde işe yaramadı) basitçe aşağıdaki komutu kullanarak cache ve logs klasörlerine bütün izinleri vermiş oluyorsunuz. En kısa yöntem bu.

    chmod 777 -R app/cache app/logs
  10. Eğer buraya kadar gelebildiyseniz son adımda neler yapabildiğimizi görelim. Şu anda halihazırda çalışan bir Symfony uygulamasına sahip olmamız gerek. Web tarayıcınızı açın (lokalinizdeki serverın çalıştığına emin olun) ve http://localhost/app_dev.php adresine gidin. Başka bir sunucu üzerinde uygulamayı çalıştıran arkadaşlar localhost yerine ilgili sunucunun adresini yazmalıdır. Bu adrese girdiğinizde aşağıdaki gibi bir sayfa sizi karşılayacak;
    Screenshot from 2013-07-11 17:32:45
    Not: Eğer yukarıdaki adres sizi giriş sayfasına ulaştırmıyorsa http://localhost/hello_symfony/web/app_dev.php yolunu deneyin (başka bir sunucu kullanıyorsanız lokalhost yerine o sunucunun adresini yazın).
    Buna rağmen ilgili sayfaya erişemiyor veya aşağıdaki hatayı alıyorsanız 10. adımı uygulayın.

    "You are not allowed to access this file. Check app_dev.php for more information."
  11. Eğer 9. adım işe yaramadıysa hello_symfony/web/app_dev.php dosyasını açın. Aşağıdaki yorum satırlarını bulun;
    // This check prevents access to debug front controllers that are deployed by accident to production servers
    // Feel free to remove this, extend it, or make something more sophisticated.

    Bu yorumun dediği gibi, yorum satırlarının altında kalan ifadeyi silin veya yorum (comment-line) haline getirin;

    Screenshot from 2013-07-11 17:39:51

    Bu işlemi yaptıktan sonra giriş sayfasına erişebiliyor olmanız gerek.

    Umarım kurulum dökümanına ihtiyacınız kalmaz ama olur da “bu olmadı, silip baştan kurayım” diyorsanız. Symfony’nin kurulum dökümanından yardım alabilirsiniz.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s