Bu rehberde, Ubuntu 12.04 işletim sistemine sahip bir Sanal Özel Sunucu (VPS) üzerinde Phalcon PHP çatısını nasıl kuracağınızı ve ilk projenizi nasıl başlatacağınızı adım adım öğreneceksiniz. Phalcon, performansı ve düşük kaynak tüketimi ile bilinen, C dilinde yazılmış bir PHP uzantısı olarak dikkat çekmektedir. Ancak, Ubuntu 12.04’ün yaşam döngüsünün sona erdiğini ve modern uygulamalar için güvenlik ve güncel yazılım desteği açısından daha yeni bir işletim sistemi kullanmanın şiddetle tavsiye edildiğini belirtmek isteriz. Yine de, bu rehber, spesifik olarak Ubuntu 12.04’te Phalcon’u kurmak isteyenler için hazırlanmıştır.
Phalcon’un hızlı ve verimli yapısı, özellikle yüksek trafikli uygulamalar ve API’ler geliştirmek isteyenler için cazip bir seçenektir. Geleneksel PHP framework’lerinin aksine, Phalcon bir C uzantısı olarak doğrudan sunucuya yüklenir, bu da her istekte yeniden yükleme maliyetini ortadan kaldırarak önemli bir performans artışı sağlar.
Bu rehberde, Ubuntu 12.04’ün varsayılan PHP sürümü olan PHP 5.3.10 ile uyumlu olan Phalcon 1.3.x sürümünü kuracağız. Daha yeni Phalcon sürümleri (örneğin Phalcon 2.x, 3.x, 4.x) daha yeni PHP sürümleri (PHP 5.5 ve üzeri) gerektirdiğinden, Ubuntu 12.04’te bu sürümleri kurmak için PHP’yi PPA’lar aracılığıyla yükseltmeniz gerekir ki bu, bu rehberin kapsamının dışında ve Ubuntu 12.04 için önerilmeyen bir adımdır.
Ubuntu 12.04 Ortamını Hazırlama
Phalcon’u kurmaya başlamadan önce, Ubuntu 12.04 VPS’nizin gerekli tüm bağımlılıkları ve araçları içerdiğinden emin olmalıyız. Bu adımlar, sisteminizin Phalcon’u derlemek ve çalıştırmak için hazır olmasını sağlayacaktır.
Sistem Güncellemesi ve Temel Bağımlılıkların Kurulumu
İlk olarak, sunucunuzdaki paket listesini güncelleyelim ve mevcut paketleri yükseltelim. Bu, olası uyumluluk sorunlarını önlemeye yardımcı olacaktır.
sudo apt-get update
sudo apt-get upgrade -y
Ardından, Phalcon’u kaynak koddan derlemek için gerekli olan geliştirme araçlarını ve PHP uzantılarını yüklemeliyiz. Bu araçlar arasında derleyici (build-essential), PHP geliştirme dosyaları (php5-dev) ve PHP komut satırı arayüzü (php5-cli) bulunmaktadır.
sudo apt-get install -y build-essential php5-dev php5-cli git
build-essential: C/C++ derleyicileri ve diğer geliştirme araçlarını içerir. Phalcon bir C uzantısı olduğundan, bu pakete ihtiyacımız var.php5-dev: PHP uzantılarını derlemek için gereken başlık dosyalarını ve geliştirme araçlarını sağlar.php5-cli: PHP komut satırı arayüzünü (CLI) sağlar. Bu, Composer ve Phalcon Developer Tools gibi araçları çalıştırmak için gereklidir.git: Phalcon’un kaynak kodunu ve geliştirici araçlarını GitHub’dan indirmek için kullanılır.
Web Sunucusu ve PHP-FPM Kurulumu
Phalcon uygulamalarınızı çalıştırmak için bir web sunucusuna ihtiyacınız olacak. Bu rehberde, performans avantajları nedeniyle Nginx ve PHP-FPM kombinasyonunu kullanacağız. Alternatif olarak Apache’yi de kullanabilirsiniz, ancak yapılandırma adımları farklılık gösterecektir.
sudo apt-get install -y nginx php5-fpm
nginx: Yüksek performanslı bir web sunucusudur.php5-fpm: PHP FastCGI Process Manager, Nginx’in PHP kodunu işlemesini sağlar.
Kurulumdan sonra, PHP-FPM’in doğru çalıştığından emin olmak için yapılandırma dosyasını düzenlememiz gerekebilir. Genellikle, /etc/php5/fpm/pool.d/www.conf dosyasında listen yönergesinin bir Unix soketine (örneğin /var/run/php5-fpm.sock) ayarlı olduğundan emin olun. Nginx yapılandırmamızda bu soketi kullanacağız.
sudo service php5-fpm start
sudo service nginx start
Bu adımlarla, Phalcon’u kurmak ve çalıştırmak için gerekli tüm temel bileşenleri hazırlamış olmalısınız.
Phalcon PHP Framework Kurulumu
Şimdi sıra, Phalcon PHP uzantısını Ubuntu 12.04 sunucunuza kurmaya geldi. Phalcon bir C uzantısı olduğu için, onu derlememiz ve ardından PHP’ye bir modül olarak etkinleştirmemiz gerekecek.
Phalcon Kaynak Kodunu İndirme ve Derleme
Phalcon’un kaynak kodunu GitHub deposundan klonlayarak başlayacağız. Daha önce de belirttiğimiz gibi, Ubuntu 12.04’ün varsayılan PHP sürümü PHP 5.3.10 olduğundan, Phalcon 1.3.x sürümünü hedefleyeceğiz.
cd ~
git clone https://github.com/phalcon/cphalcon.git
cd cphalcon
git checkout 1.3.x # Phalcon 1.3.x branch'ine geçiş yapıyoruz
Şimdi kaynak kodu derleyebiliriz. Derleme işlemi genellikle birkaç dakika sürer.
cd build
sudo ./install
./install komutu, Phalcon uzantısını derleyecek ve phalcon.so dosyasını PHP’nin uzantı dizinine (genellikle /usr/lib/php5/20100525 veya benzeri bir dizin) kopyalayacaktır.
PHP Modülünü Etkinleştirme
Phalcon uzantısı sunucuya kopyalandıktan sonra, PHP’ye bu uzantıyı kullanması gerektiğini bildirmemiz gerekiyor. Bunu yapmak için, PHP yapılandırma dizininde bir .ini dosyası oluşturup phalcon.so uzantısını etkinleştirmeliyiz.
echo "extension=phalcon.so" | sudo tee /etc/php5/mods-available/phalcon.ini
Ubuntu 12.04’te php5enmod komutu bulunmayabilir veya düzgün çalışmayabilir. Bu durumda, phalcon.ini dosyasını manuel olarak etkinleştirmemiz gerekecektir. PHP-FPM ve PHP CLI için sembolik bağlar oluşturacağız:
sudo ln -s /etc/php5/mods-available/phalcon.ini /etc/php5/fpm/conf.d/20-phalcon.ini
sudo ln -s /etc/php5/mods-available/phalcon.ini /etc/php5/cli/conf.d/20-phalcon.ini
Değişikliklerin etkili olması için PHP-FPM ve Nginx servislerini yeniden başlatmanız gerekmektedir:
sudo service php5-fpm restart
sudo service nginx restart
Kurulumu Doğrulama
Phalcon’un başarıyla kurulduğunu ve etkinleştirildiğini doğrulamak için birkaç yöntem bulunmaktadır:
1. PHP CLI üzerinden kontrol:
php -m | grep phalcon
Eğer çıktı olarak phalcon görüyorsanız, CLI için uzantı başarıyla yüklenmiş demektir.
2. Detaylı PHP bilgisi:
php -i | grep phalcon
Bu komut, Phalcon uzantısının versiyonu gibi daha detaylı bilgileri gösterecektir.
3. Web sunucusu üzerinden kontrol (phpinfo()):
Web sunucunuzun da Phalcon’u tanıdığından emin olmak için, web kök dizininizde (örneğin /usr/share/nginx/www/info.php) bir phpinfo.php dosyası oluşturun ve içine şu kodu ekleyin:
Ardından tarayıcınızdan bu dosyaya erişin (örneğin http://your_vps_ip/info.php). Açılan sayfada “phalcon” kelimesini aratın. Eğer Phalcon’a ait bir bölüm görüyorsanız, web sunucunuz da uzantıyı başarıyla yüklemiş demektir. İşiniz bittikten sonra güvenlik nedeniyle bu info.php dosyasını silmeyi unutmayın.
Phalcon Developer Tools Kurulumu
Phalcon Developer Tools, Phalcon projeleri oluşturmak, denetleyiciler, modeller ve diğer bileşenleri hızlı bir şekilde generate etmek için kullanışlı bir araç setidir. Bu araçları kullanabilmek için öncelikle Composer’ı kurmamız gerekecek.
Composer Kurulumu
Composer, PHP için bir bağımlılık yöneticisidir. Phalcon Developer Tools’un bağımlılıklarını yönetmek için Composer’a ihtiyacımız var.
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Bu komutlar Composer’ı indirir ve sistem genelinde kullanılabilir hale getirir. Kurulumu doğrulamak için:
composer --version
Phalcon Developer Tools Kurulumu
Composer’ı kurduktan sonra, Phalcon Developer Tools’u GitHub’dan klonlayabilir ve bağımlılıklarını Composer ile yükleyebiliriz.
cd ~
git clone https://github.com/phalcon/phalcon-devtools.git
cd phalcon-devtools
git checkout 1.3.x # Phalcon 1.3.x ile uyumlu devtools sürümünü kullanıyoruz
composer install
Phalcon Developer Tools’u sistem genelinde kullanılabilir hale getirmek için, phalcon.php betiğine bir sembolik bağ oluşturabiliriz veya bulunduğu dizini PATH ortam değişkenine ekleyebiliriz. Sembolik bağ oluşturmak en kolay yöntemdir:
sudo ln -s ~/phalcon-devtools/phalcon.php /usr/bin/phalcon
Şimdi phalcon komutunu herhangi bir dizinden çalıştırabilirsiniz. Kurulumu doğrulamak için:
phalcon
Bu komut, Phalcon Developer Tools’un mevcut komutlarının bir listesini göstermelidir.
İlk Phalcon Projenizi Oluşturma ve Çalıştırma
Artık Phalcon uzantısı ve Developer Tools kurulduğuna göre, ilk Phalcon projenizi oluşturmaya ve web sunucunuzda çalıştırmaya hazırsınız.
Yeni Bir Phalcon Projesi Oluşturma
phalcon komutunu kullanarak hızlıca yeni bir proje oluşturabiliriz. Web sunucunuzun belge kök dizini (document root) olarak kullanacağımız bir dizinde yeni bir proje oluşturalım. Nginx’in varsayılan belge kök dizini genellikle /usr/share/nginx/www/‘dur.
cd /usr/share/nginx/www/
sudo phalcon project my-first-app simple
my-first-app: Projenizin adıdır.simple: Proje şablonudur. Phalcon Developer Tools,simple(basit bir dizin yapısı),micro(mikro uygulamalar için) vewebtools(Phalcon WebTools arayüzü) gibi şablonlar sunar.
Bu komut, /usr/share/nginx/www/my-first-app dizini içinde temel bir Phalcon projesi oluşturacaktır. Projenizin web üzerinden erişilebilir kısmı public/ dizininde yer alacaktır.
Web Sunucusu Yapılandırması (Nginx)
Phalcon uygulamanızı Nginx üzerinden çalıştırmak için bir sanal ana bilgisayar (virtual host) yapılandırması oluşturmanız gerekir. Bu yapılandırma, Nginx’e gelen istekleri Phalcon projenizin public/ dizinine yönlendirmesini ve URL yeniden yazma (URL rewriting) kurallarını uygulamasını söyleyecektir.
Yeni bir Nginx yapılandırma dosyası oluşturalım:
sudo nano /etc/nginx/sites-available/my-first-app.conf
Dosyanın içine aşağıdaki içeriği yapıştırın. IP adresinizi veya alan adınızı uygun şekilde değiştirin:
server {
listen 80;
server_name your_vps_ip_or_domain; # Buraya VPS IP adresinizi veya alan adınızı yazın
root /usr/share/nginx/www/my-first-app/public; # Projenizin public dizini
index index.php index.html index.htm;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock; # PHP-FPM soket yolu
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
Yapılandırma dosyasını kaydedin ve kapatın (Ctrl+O, Enter, Ctrl+X).
Şimdi bu yapılandırmayı etkinleştirmek için sites-enabled dizinine bir sembolik bağ oluşturalım ve Nginx’i yeniden başlatalım:
sudo ln -s /etc/nginx/sites-available/my-first-app.conf /etc/nginx/sites-enabled/
sudo service nginx configtest # Yapılandırma hatası olup olmadığını kontrol edin
sudo service nginx restart
Tarayıcıdan Erişme
Tüm adımları başarıyla tamamladıysanız, şimdi tarayıcınızı açıp VPS’inizin IP adresine veya yapılandırdığınız alan adına giderek Phalcon uygulamanızı görebilirsiniz (örneğin http://your_vps_ip_or_domain). Phalcon’un varsayılan hoş geldiniz sayfasını görmeniz gerekir.
Sonuç ve Sıkça Sorulan Sorular (SSS)
Bu rehberde, Ubuntu 12.04 VPS üzerinde Phalcon 1.3.x framework’ünü başarıyla kurdunuz ve ilk projenizi başlattınız. Phalcon’un C uzantısı olarak çalışması sayesinde elde ettiği yüksek performans ve düşük kaynak tüketimi avantajlarından artık faydalanabilirsiniz. Unutmayın ki Ubuntu 12.04 eski bir işletim sistemidir ve güvenlik, güncel PHP/Phalcon sürümleri ve genel yazılım desteği açısından daha yeni bir Ubuntu sürümüne geçmeniz şiddetle tavsiye edilir.
Sıkça Sorulan Sorular (SSS)
Phalcon neden bu kadar hızlı?
Phalcon, C dilinde yazılmış bir PHP uzantısıdır. Geleneksel PHP framework’leri her istekte PHP kodunu yorumlarken, Phalcon’un çekirdeği doğrudan sunucu belleğine yüklenir ve PHP yorumlayıcısı tarafından çağrılır. Bu, disk I/O’sundan tasarruf sağlar ve PHP’nin kendisinden daha düşük seviyede çalıştığı için çok daha hızlı yürütme süreleri sunar. MVC bileşenleri gibi temel işlevsellikler doğrudan C seviyesinde optimize edilmiştir.
Phalcon’u güncellemek nasıl yapılır?
Phalcon bir C uzantısı olduğu için, onu güncellemek tipik bir PHP bağımlılığını güncellemeyle aynı değildir. Yeni bir Phalcon sürümüne geçmek için, genellikle cphalcon deposunu yeniden klonlamanız veya mevcut klonunuzu güncellemeniz, istediğiniz sürümün branch’ine veya tag’ine geçmeniz ve ardından uzantıyı yeniden derleyip yüklemeniz gerekir (git pull, git checkout , sudo ./install). Her güncellemeden sonra PHP-FPM ve web sunucunuzu yeniden başlatmayı unutmayın. Ayrıca, Phalcon Developer Tools’u da güncel tutmak iyi bir uygulamadır.
Farklı PHP versiyonları ile Phalcon nasıl kullanılır?
Ubuntu 12.04’te varsayılan PHP 5.3.10’dur ve bu rehber Phalcon 1.3.x ile uyumludur. Daha yeni Phalcon sürümleri (örneğin Phalcon 2.x ve üzeri) PHP 5.5 veya daha yeni sürümleri gerektirir. Ubuntu 12.04’te daha yeni bir PHP sürümüne geçmek, genellikle PPA (Personal Package Archive) ekleyerek veya PHP’yi kaynaktan derleyerek yapılır. Ancak, 12.04 için PPA’lar genellikle güvenli değildir veya artık desteklenmemektedir ve kaynaktan derlemek karmaşık olabilir. En iyi çözüm, daha yeni bir Ubuntu sürümüne (örneğin Ubuntu 18.04 LTS veya 20.04 LTS) geçmek ve o sistemin sunduğu daha güncel PHP ve Phalcon sürümlerini kullanmaktır.
Ubuntu 12.04 yerine daha yeni bir sürüm kullanmalı mıyım?
Kesinlikle evet! Ubuntu 12.04, Nisan 2017’de resmi yaşam döngüsünün (End-of-Life – EOL) sonuna ulaşmıştır. Bu, artık güvenlik güncellemeleri, hata düzeltmeleri veya yazılım desteği almadığı anlamına gelir. Bu durum, sunucunuzu güvenlik açıklarına karşı savunmasız bırakır ve modern yazılımlarla (PHP 7.x, Phalcon 3.x/4.x, güncel Composer, vb.) uyumluluk sorunlarına yol açar. Geliştirme ve üretim ortamları için her zaman aktif olarak desteklenen bir işletim sistemi sürümünü (örneğin Ubuntu 18.04 LTS veya 20.04 LTS) kullanmanız şiddetle tavsiye edilir.
Phalcon DevTools komutları çalışmıyor, ne yapmalıyım?
Eğer phalcon komutunu çalıştırdığınızda bir hata alıyorsanız, aşağıdaki noktaları kontrol edin:
- PATH Ortam Değişkeni/Sembolik Bağ:
/usr/bin/phalconsembolik bağının doğru yola işaret ettiğinden emin olun (ls -l /usr/bin/phalcon). Eğer sembolik bağ yoksa veya yanlışsa, yukarıdaki adımları takip ederek yeniden oluşturun. - İzinler:
phalcon.phpdosyasının yürütme izinlerine sahip olduğundan emin olun (chmod +x ~/phalcon-devtools/phalcon.php). - Composer Bağımlılıkları:
~/phalcon-devtoolsdizinindecomposer installkomutunu çalıştırdığınızdan ve tüm bağımlılıkların yüklendiğinden emin olun. - PHP CLI: PHP CLI’nin Phalcon uzantısını tanıdığından emin olun (
php -m | grep phalcon). Eğer tanımıyorsa, PHP modülünü etkinleştirme adımlarını tekrar gözden geçirin.