MacOSX + MAMP + Symfony Development Ortamı Hazırlamak

Bir çok yerde benzeri kurulumlar anlatılıyor. Ben en basit şekilde, sisteminize dokunmadan kurulumu yazmaya çalışacam.

Bu sayfa hazırlanırken ki mevcut versionlar:
Mac OS X : 10.5.7
Mamp : 1.7.2 (ve içerisinde gelen php pear apache mysql versionları)
Symfony : 1.2.8

MAMP

Mac OS X altında MAMP çok yaygın kullanılan (Macosx Apache Mysql Php) nin baş harflerinden oluşan komple bir pakettir. Son sürümü mamp.info adresinden edinebilirsiniz. Diğer programların kurulumu gibi .dmg yi sisteme mount edip ve içerisindeki .app klasörünü /Application/ klasörüne atıyoruz.

Mamp’ı çalıştırıp ‘Preferences’ butonuna tıklıyoruz ve ayarlarını aşağıdaki şekilde yapıyoruz:

UYARI 1 ! MAMP ın aşağıdaki ayarlarda sorunsuz çalışması için System Preferences -> HTTP Sharing kısmının kapalı olduğundan emin olun. MAMP altındaki Apache ve Mysql’i tabii ki farklı portlarda da çalıştırabilirsiniz. Eğer farklı portlar tercih ederseniz dökümanın ilerisinde de o portları kullanmanız gerektiğini unutmayın!

UYARI 2 ! Unix türevi (Mac OS X, Linux, BSD) işletim sistemleri 1024 den daha küçük portlarda program çalıştırabilmek için root şifresine ihtiyaç duyarlar. Buradaki ayarları yaptıktan sonra MAMP her açılışta root şifresi (yönetici şifresi) isteyecektir. Eğer yönetici şifrenizi bilmiyorsanız normal kullanıcı şifrenizi deneyin veya MAMP altındaki Apache yi 1024 den daha yüksek (8080 veya 8888 numaralı portlar özelliksiz olmasına rağmen kolay hatırlayabilmek için genelde tercih edilir) bir portta çalıştırın.

mamp-port

mamp-php

mamp-http-root

Symfony

Symfony kurulumu için öncelikle php.ini den php nin memory_limit değerini yükseltmemiz ve bir kaç özelliği de aktif etmemiz gerekiyor. $ nano /Applications/MAMP/conf/php5/php.ini komutunu verdikten sonra Ctrl + W tuş kombinasyonuna basarak memory_limit yazıp enter a basıyoruz. Bulduğumuz memory_limit satırının karşısındaki değeri 32M yapıyoruz.
Aynı şekilde Ctrl+W tuş kombinasyonlarıyla short_open_tag ve magic_quotes_gpc satırlarını bulup karşılarındaki değerleri “Off” olarak değiştiriyoruz. zend_extension="/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20050922/eaccelerator.so" satırının başındaki ; işaretini kaldırıyoruz.

Bu satırların önceki halleri :

memory_limit = 8M
short_open_tag = On
magic_quotes_gpc = On
; zend_extension="/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20050922/eaccelerator.so"

Bu satırların sonraki halleri :

memory_limit = 32M
short_open_tag = Off
magic_quotes_gpc = Off
zend_extension="/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20050922/eaccelerator.so"

Düzenlemeleri yaptıktan sonra Ctrl + X tuş kombinasyonuna sonra Y harfine sonra da enter a basarak kaydedip çıkıyoruz.

NOT : Eğer version değişikliklerinden dolayı bu düzenlemeleri yaptığınız halde problem yaşıyorsanız Symfony sayfalarında PHP ayarlarınızı kontrol edebileceğiniz check_configuration.php dosyasını bulabilirsiniz. Symfony 1.2.8 sürümünü MAMP harici bir sisteme kurmaya çalışıyorsanız php.ini konfigürasyon scriptini şuradan edinebilirsiniz:

Symfony 1.2.8 için php.ini kontrol scripti

Scripti herhangi bir yere açtıktan sonra scriptin bulunduğu dizine cd komutu yardımıyla giderek;

$ /Applications/MAMP/bin/php5/bin/php check_configuration.php 

komutunu verin. Eğer aşağıdaki gibi bir çıktı görüyorsanız php.ini ayarlarınız sorunsuz demektir:

********************************
* *
* symfony requirements check *
* *
********************************
php.ini used by PHP: /Applications/MAMP/conf/php5/php.ini
** WARNING **
* The PHP CLI can use a different php.ini file
* than the one used with your web server.
* If this is the case, please launch this
* utility from your web server.
** WARNING **
** Mandatory requirements **
OK PHP version is at least 5.2.4
** Optional checks **
OK PDO is installed
OK PDO has some drivers installed: sqlite2, sqlite, pgsql, mysql
OK PHP-XML module is installed
OK XSL module is installed
OK The token_get_all() function is available
OK The mb_strlen() function is available
OK The iconv() function is available
OK The utf8_decode() is available
OK A PHP accelerator is installed
OK php.ini has short_open_tag set to off
OK php.ini has magic_quotes_gpc set to off
OK php.ini has register_globals set to off
OK php.ini has session.auto_start set to off
OK PHP version is not 5.2.9

php.ini dosyamızı ayarladığımıza göre sıra geldi PEAR işlemlerine. Sisteminizde kurulu pear ve/veya php zaten vardır. Biz bunlara hiç dokunmayacağız. İleride onları kullanmak zorunda kalabilirsiniz veya farklı php sürümünü farklı konfigürasyonlarla kullanmanız gerekebilir.

$ cd /Applications/MAMP/bin/php5/bin/
$ ./pear channel-discover pear.symfony-project.com

komutlarını verdikten sonra

Adding Channel "pear.symfony-project.com" succeeded
Discovery of channel "pear.symfony-project.com" succeeded

çıktısını veya işlemin hatasız tamamlandığını söyleyen benzer bir çıktı görmeniz gerekiyor.
Şimdi symfony i pear yardımıyla kuralım.

$ ./pear install symfony/symfony-1.2.8

yine işlemin hatasız tamamlandığını söyleyen

install ok: channel://pear.symfony-project.com/symfony-1.2.8

gibi bir çıktı görmeniz gerekiyor. Şimdi symfony için link oluşturalım;

$ sudo ln -sf /Applications/MAMP/bin/php5/bin/symfony /usr/bin/symfony

komutunu yazdıktan sonra root şifrenizi giriyorsunuz, /usr/bin/ altına symfony isimli linkimiz oluşuyor. Kurulumu bitirdik sayılır, şimdi yeni bir proje oluşturup test edelim. Ben http kök için /Users/irfan/Sites/ dizinini kullanıyorum.

$ cd ~/Sites/
$ mkdir sftest
$ cd sftest
$ symfony generate:project sftest

Proje için oluşturulan dosya ve dizinlerin çıktılarını göreceksiniz. Şimdi projemizin sağlıklı çalışması için Apache ve hosts dosyamızda küçük bir iki ayar yapacağız.

Apache Ayarları

$ nano /Applications/MAMP/conf/apache/httpd.conf

komutu ile httpd.conf u açıp aşağıdaki satırları kendinize göre düzenleyip dosyanın sonuna ekleyin.
Değiştirmeniz gereken direktifler DocumentRoot, Directory, ServerName veya daha fazlası (Örneğin Apache portu) olabilir.

Aşağıdaki satırları düzenlemek için uğraşmak istemiyorsanız yeni oluşturduğunuz proje içerisinde config/vhost.sample dosyasını düzenleyerek de kullanabilirsiniz.

# sftest projem icin http.conf satırları
NameVirtualHost 127.0.0.1:80
Listen 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
ServerName sftest
DocumentRoot "/Users/irfan/Sites/sftest/web"
DirectoryIndex index.php
<Directory "/Users/irfan/Sites/sftest/web">
AllowOverride All
Allow from All
</Directory>
Alias /sf "/Applications/MAMP/bin/php5/lib/php/data/symfony/web/sf"
<Directory "/Applications/MAMP/bin/php5/lib/php/data/symfony/web/sf">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>

DNS Resolve Ayarları
Buraya kadar herşey yolunda gittiyse

$ sudo nano /etc/hosts

komutuyla hosts dosyanızı açın ve içerisine

127.0.0.1 sftest

satırını ekleyin.

Sona Doğru..
MAMP çalışıyor ise Stop Servers butonuna basarak servisleri durdurun. Daha sonra Start Servers butonuna basarak başlatın. MAMP çalışmıyor ise çalıştırın. Tarayıcınızla http://sftest adresine girin. Aşağıdaki gibi 404 Not Found hatası alıyorsanız herşey yolunda demektir -) Korkmayın bu hatayı da gidereceğiz -)

Not Found
The requested URL /index.php was not found on this server.
Apache/2.0.59 (Unix) PHP/5.2.6 DAV/2 Server at sftest Port 80

Şimdi projemizi oluşturduğumuz klasöre geri dönüp base app ı (temel sistemi) kuruyoruz.

$ cd ~/Sites/sftest
$ symfony generate:app base

Hepsi bu kadar. Tarayıcınızda açtığınız http://sftest/ sayfasını yeniden yükleyin ve aşağıdaki mutlu son -)

symfony-ana-ekran

Burada symfony hakkında herşeyi anlatabilecek kadar ne zamanım ne de enerjim var. http://www.symfony-project.org/ adresini daha güncel bilgiler için mutlaka inceleyin.

Benzer Yazılar

Yorum eklemek için çok geç, 22-07-2010 tarihinde yoruma kapatıldı.