MacPorts ile Apache2 ve PHP (MySQL-PostgreSQL destekli) kurulumu – BT Hayat
admin 24 Nisan 2010 2
Bir PHP geliştiricisi olarak uzun yıllar Windows tecrübesi yaşadıktan sonra artık aradığımı bulmuş ve Macos kullanmaya karar vermiştim. Bunun envai çeşit nedenini bir önceki yazıda zaten uzun anlatmıştım. Bu yazıda macos’da Apache ve PHP (MySQL-PostgreSQL destekli) kurulumundan bahsedeceğiz. Aslında Apache-PHP-MySQL için en pratik yol MAMP kurmak ama bu şekilde kurulan PHP’ye postgreSQL desteği vermek zor. Bunun için en iyi yöntem MacPorts kurmak.
Bilindiği üzere Macos aslında BSD tabanlı bir Unix işletim sistemidir. BSD’nin de en güzel özelliklerinden biri Ports denen bir yazılım kurma sistemi olmasıdır. Bu sistem sayesinde pek çok yazılımı sadece bir kaç komutla internetten indirip güncelleyebilirsiniz. İşte bu Ports sistemini Mac’e de uyarlamışlar ve adına MacPorts demişler.
MacPorts komut satırı (terminal) üzerinden çalıştırılan bir uygulama ama işletim sisteminize kurulu olarak gelmiyor. Bunun için bu sayfadan macos’unuza uygun olan dmg imajını öncelikle indirip kurmanız gerekiyor. Bizim sistemimiz Snow Leopard 1.6.3 olduğu için biz bu dosyayı indirip kurduk.
MacPorts kurulunca sıra port ağacını internetten güncellemeye geldi. Bunu arasıra yapmak gerekiyor ki en güncel yazılımları kullanabilelim.
Port ağacını güncellemek için terminali açıp şu ifadeyi giriyoruz:
Kısa bir işlemden sonra port ağacı güncellenecektir. Bu güncelleme işlemi sonrasında eğer daha önce macports ile kurduğunuz yazılımların da güncellenmesini istiyorsanız
Şimdi sıra MacPorts kullanarak uygulamaları sisteme kurmaya geldi. Öncelikle şunu da belirtelim; Macos’da zaten Apache kurulu olarak gelmektedir. MacPorts ile kuracağımız sistemin sorunsuz çalışması için bu mevcut Apache’yi devredışı bırakmamız gerekiyor. Bunun en kolay ve zararsız yolu System Preferences>Sharing ekranında Web Sharing’i kapatmak.
Artık Apache2’yi portlardan kurabiliriz:
Bu komutu yazıp işlemlerin tamamlanmasını bekliyoruz. Biraz uzun sürebiliyor. En son şuna benzer bir çıktı ile işlem tamamlanıyor:
—> Installing apache2 @2.2.15_1+darwin+preforkmpm
—> Activating apache2 @2.2.15_1+darwin+preforkmpm
—> Cleaning apache2
Şimdi sıra PHP5’i eklentileri ile birlikte kurmaya geldi. Macports’un en güzel yanı burada; istediğiniz eklentiyi daha sonra bile sisteme entegre edebiliyorsunuz. PHP’yi tekrar derlemek gibi bir problem yok. PHP’yi kurmadan önce Apache’nin mutlaka kapalı olması gerekiyor. Bunu da not düşmüş olalım.
PHP ile birlikte kurabileceğimiz bazı eklentiler :
Biz şu şekilde kurduk, (burada mysql ve postgresql kurulumu yapılmıyor, sadece php’nin bu eklentilerle birlikte kurulması sağlanıyor):
# sudo port install php5 +apache2 +mysql5 +postgresql
Kurulum sonrasında şu şekilde bir çıktı alınıyor:
—> Cleaning php5
Bu mesajda da belirtildiği üzere ilk kurulum sonrasında Apache’yi PHP’den anlar hale getirmek için bir işlem daha yapmak gerekiyor. Fakat bundan önce Apache’nin konfigürasyon dosyasını oluşturalım. Apache ile birlikte gelen örnek dosyayı konfigürasyon dosyası olarak kopyalamak kafi:
#sudo cp /opt/local/apache2/conf/httpd.conf.sample /opt/local/apache2/conf/httpd.conf
Şimdi de active edelim:
# cd /opt/local/apache2/modules/
# sudo /opt/local/apache2/bin/apxs -a -e -n “php5” libphp5.so
[activating module `php5′ in /opt/local/apache2/conf/httpd.conf]
Apache’mizi konfigüre etmek için httpd.conf dosyasında bazı oynamalar yapmamız gerekiyor. Örneğin; web sayfalarının tutulduğu klasörü /www dizini olarak değiştirmek için /opt/local/apache2/conf/httpd.conf dosyasını açıp içerisindeki DocumentRoot ifadesini şu şekilde değiştirmemiz gerekiyor:
Ayrıca <Directory> ifadesini değiştirmemiz gerekiyor:
index.php adlı dosyaların url’de belirtilmeksizin ön tanımlı olarak açılmasını sağlayan ifadeyi dir_module ifadesine ekleyelim:
.php uzantılı dosyaları Apache’nin yorumlamasını sağlamak için <IfModule mime_module> bloğunda gereken ayarı ekleyelim:
Evet httpd.conf dosyamızla işimiz bitti. Şimdi php.ini dosyamızı oluşturalım:
# sudo cp /opt/local/etc/php5/php.ini-development /opt/local/etc/php5/php.ini
Eğer sistemimizde MySQL kurulu ise php.ini dosyasına şu ifadeyi kaydetmemiz gerekiyor (macportslardan mysql kurulumunu da bu sayfalarda bulabilirsiniz):
Apache’yi çalıştırmak ve durdurmak için komut satırından apachectl komutunu start veya stop parametresi ile çağırmak mümkün. Fakat halihazırda bu komut sadece macos’a önceden kurulu olan Apache’yi çalıştıracaktır. Biz kendi apachectl komutumuzu mesela apache2ctl şeklinde oluşturabiliriz. Bunun için .profile dosyamızda bir alias tanımlaması yapmamız kafi:
alias apache2ctl=’sudo /opt/local/apache2/bin/apachectl’
Profile dosyamızı yeniden yüklemek için şu komutu verin:
Eğer Apache’mizin macos açılır açılmaz kendiliğinden devreye girmesini istiyorsak aşağıdaki komutu bir kere çalıştırmamız kafi:
İşte bu kadar. Şimdi bir info.php dosyası oluşturup /www dizini altına kopyalayalım ve apache’mizi çalıştıralım:
# echo ‘<?php phpinfo(); ?>’ >> /www/info.php
Ve deneyelim: http://localhost/info.php
NOT: Bu yazı http://2tbsp.com/content/install_apache_2_and_php_5_macports adresindeki döküman baz alınarak hazırlanmıştır.
admin Yazar 24 Nisan 2010
Bu yazıda her nekadar kurulum sırasında postgresql desteğini de parametrelere dahil ettiysek phpinfo çıktısını ilk kontrol ettiğimde postgresql desteğini göremedim. Bunu halletmek için :
# sudo port install php5-postgresql
komutunu kullanıp kurabilirsiniz.
Romario 19 Mayıs 2010
MacPorts (ve aynı şekilde Fink) birçok sorunu halletmek üzere düşünülmüş bir sistem olduğu halde bazen sorun çıkartabiliyor. Geçen aylara kadar Mac mini’me açık kaynak uygulamaları kurmak için MacPorts’u kullanıyordum taa ki 64 bit – 32bit uyumsuzluğu yaşayana kadar.
Evet, PHP’nin özellikle GD gibi bazı extension’larının kullandığı libjpeg gibi kütüphaneler Mac sistemlerine default olarak 32bit olarak yerleştiriliyordu (MacPorts tarafından) İyi ama ben PHP’yi daha rahat calışsın diye 64bit istiyorum, ne olacak o zaman? Hiçbir şey olmadı, MacPorts’u tamamı ile kaldırdım ve Apache, MySQL + birçok kütüphaneyi (libjpeg, libpng, libiconv, libmcrypt,libmysqlclient) sıfırdan 64bit derleyerek PHP’yi yeniden derledim ve ancak o zaman 64bit PHP (3.2) elde edebildim….