Daha önce hiç Linux programı derlemediyseniz, önce bazı kavramları açıklığa kavuşturalım:
tar: (tape archiver) birden fazla dosyayı tek dosya haline getirir ve sıkıştırır. Teyplere yedekleme amacıyla geliştirilmiştir. tar dosyaları sıkıştırılmışsa uzatması .gz, değilse .tar olur.
gcc: GNU’nun C derleyicisidir. İnsan tarafından okunabilen kaynak kodlarını makina tarafından okunabilen nesne (object) dosyalarına dönüştürür. C programlama diliyle yazılmış kaynak kodları içeren dosyaların uzantını .c olur. Nesne dosyalarının adının uzantısı genellikle .o olur. Derleyici baÅŸlık (header, uzantısı .h olan) dosyalarını bulamazsa derleme hatası verir.
make: henüz derlenmemiş kaynak dosyalarını derleyen yardımcı bir programdır. make, derleme talimatlarını Makefile adlı bir dosyadan alır.
ld: GNU’nun baÄŸlayıcı (linker) programıdır. Nesne dosyalarını ve kitaplık denen dosyaları birbirine baÄŸlayarak ortaya çalıştırılabilir bir program dosyası çıkartır. Genellikle Makefile’ın içinde linker’ın çalıştırılması talimatı bulunur ve sizin bu programı kullanmanız gerekmez.
ldconfig : paylaşılan kitaplık dosyalarını (shared librari) arar. Bu dosyalardan birden fazla program tarafından paylaşılır, ve dosya adlarında .so bulunur.
./configure : C derleyecisi ve header dosyalarının nerede olduğunu araştırır, ve vardığı sonuca göre Makefiles dosyasında değişiklik yapar.
PHP, bir Unix/Linux sisteminde müstakil yorumlayıcı veya Apache Web sunucusunun bir modülü olarak çalışmak üzere derlenebilir. PHP, müstakil yorumlayıcı olarak kurulduÄŸunda, Web sunucusu, her ihtiyaç halinde PHP yorumlayıcısının bir örneÄŸini çalıştırır. Bu, bir süre sonra Web sunucusunun bulunduÄŸu iÅŸletim sisteminin yükünün artmasına ve iÅŸleyiÅŸinde yavaÅŸlamaya yol açabilir. Oysa PHP, sunucunun bir modülü olarak kurulduÄŸunda, bu sakınca ortaya çıkmaz. (Bu özelliÄŸi ile PHP, klasik CGI/Perl’ün çalışma tarzından ayrılır, ASP’nin ve ColdFusion’ın çalışma tarzına yaklaşır.) Bununla birlikte kötü niyetle veya beceriksizce yazılmış PHP programları modül olarak kurulmuÅŸ PHP’yi çökertirlerse, Web sunucusunu da çökertmiÅŸ olurlar; oysa müstakil PHP yorumlayıcı çökerse, Web sunucusuna bir ÅŸey olmaz.
Burada yapacağımız kurulum işlemi sırasında Linux kurulu olan bilgisayarımıza Apache Web sunucu programını, bu sunucunun kullanacağı güvenli Socket katmanını sağlayacak Mod_SSL programını, bu programın gerektirdiği OpenSSL aracını, MySQL veritabanı sunucusunu ve PHP Scripting dilini kurmuş olacağız.
PHP’yi Linux ortamında Apache Web sunucusuna modül olarak kurmak için sırasıyla ÅŸu iÅŸlemleri yapmamız gerekir (Sisteminizde gzip veya gunzip ile gcc and GNU make kurulu olduÄŸunu varsayıyorum):
1. Sisteminizi root olarak baÅŸlatın ve sıkıştırılmış olarak alacağınız PHP ve Apache dosyalarını geniÅŸ yer olan geçici bir dizinde açın, ve o dizine gidin. Sözgelimi, Apache’nin tar-zip olarak sıkıştırılmış kaynak dosyalarının tmp adlı dizinde olduÄŸunu varsayalım:
# cd /tmp
# gunzip -c apache_1.3.12.tar.gz | tar xf -
Burada, indirdiÄŸiniz Apache sürümü farklı ise onun adını yazacaksınız. Åžimdi Apache’yi açtığınız klasöre gidin ve buradaki configure dosyasını çalıştırın:
# cd apache_1.3.12
# ./configure –prefix=/usr/local/apache
Buradaki örnekte Apache’yi /usr/local/apache dizinine koyduÄŸumuza dikkat edin. Bu dizini, bir çok kurulumun varsayım olarak arayacağı dizin olduÄŸu için tercih ediyoruz. Ama isterseniz siz Apache’yi baÅŸka dizine de kurabilirsiniz.
2. Sıra MySQL veritabanı sunucusunda. Linux’ta root oturumunda iken sıkıştırılmış dosyaları indirdiÄŸiniz geçici dizine geçin ve dosyaları açın; sonra oluÅŸturulan dizine giderek, configure komutu ile veritabanı sürücüsünü yapılandırın:
# cd /tmp
# gunzip -dc mysql-3.22.32.tar.gz | tar xvf -
# cd mysql-3.22.32
# configure –prefix=/usr/local/mysql
Şimdi make komutu ile binary dosyalarını oluşturarak, ve sisteme yükleyelim:
# make
# make install
MySQL’in kullanım izinlerini belirlememiz gerekir. AÅŸağıdaki komutları yazarken “parola” kelimesi yerine vermek istediÄŸiniz parola kelimesini yazmanız gerekir:
# scripts/mysql_install_db
# cd /usr/local/mysql/bin
# ./safe_mysqld &
# ./mysqladmin -u root password ‘parola’
Kurulum işleminin başarılı olup olmadığını sınamak için, kurulum sırasında oluşturlan örnek veritabanı dosyalarını bulunup bulunmadığını soruşturabilir ve kendimiz yeni bir veritabanı oluşturabiliriz. Bunun için şu komutu yazalım:
# BINDIR/mysqlshow -p
# mysql -u root -p
Sistem “Enter password:” karşılığını verdiÄŸinde, yukarıda kullanım izinlerini belirlerken yazdığınız parolayı yazın; MySQL sunucusu çalışacak ve size kullanıcı izinlerinin bulunduÄŸu “mysql” ve sınama amacıyla oluÅŸturulan “test” adlı iki veritabanının bulunduÄŸunu bildirecektir. Åžimdi kendi veritabanımızı oluÅŸturalım. MySQL sunucu komut istemcisi satırına ÅŸunu yazın (Bilgisayarın vereceÄŸi karşılıklardan ayırt etmek için kendi yazdıklarımızı koyu renkle gösteriyoruz):
mysql> create database deneme;
Sunucu “Query OK, 1 row affected (0.00 sec)” ÅŸeklinde karşılık verecektir. Åžimdi bu veritabanını seçerek içinde deneme adlı ve içinde “no” ve “isim” adlı iki alan bulunan bir tablo oluÅŸturalım (MySQL komutları büyük harf-küçük harf ayrımı yapmaz; komutlardan sonra noktalı virgül konur). Burada koyu renkle gösterilen satırlar ve iÅŸaretler bize aittir:
mysql> use deneme;
Database changed
mysql> CREATE TABLE books (
-> no int(3) not null auto_increment,
-> isim char(50) not null,
-> unique(no),
-> primary key(no)
-> );
Query OK, 0 rows affected (0.00 sec)
Bakalım tablomuz başarılı şekilde oluşmuş mu?
mysql> show tables;
mysql> describe deneme;
Field Type Null Key Default Extra
no int(3) PRI 0 auto_increment
isim char(50)
2 rows in set (0.00 sec)
Çok güzel! Hem MySQL’i kurmuÅŸ, hem de ilk tablomuzu oluÅŸturmuÅŸ bulunuyoruz. MySQL komutlarını daha ayrıntılı öğrenebilmek için MySQL’in http://www.mysql.com adresindeki sitesini ziyaret edebilirsiniz. Åžimdilik MySQL’den çıkalım ve kuruluma devam edelim.
3. Sıra geldi PHP’ye! PHP kaynak dosyasının bulunduÄŸu geçici dizine geçin, ve dosyaları açın; sonra açılan dosyaların bulunduÄŸu dizine gidin:
# gunzip -c PHP-4.0.1pl2.tar.gz | tar xf -
# cd PHP-4.0.1pl2
Åžimdi configure dosyasını çalıştıracağız; bu komutun bir çok opsiyonu vardır; bunların tümünü görmek istiyorsanız, “configure –help” komutunu verebilirsiniz. Biz sadece PHP’ye MySQL ve Apache opsiyonlarını eklemekle yetineceÄŸiz:
# ./configure –with-mysql=/usr/local/mysql
–with-xml
–with-apache=../apache_1.3.12
–enable-track-vars
Oluşan binary dosyalarını program dosyasına çevirerek, yükleyelim:
# make
# make install
Oluşan ini dosyasını lib dizinine koplayalım:
# cp PHP.ini-dist /usr/local/lib/PHP.ini
PHP.ini dosyasındaki bir çok özelliÄŸi deÄŸiÅŸtirerek, PHP’nin çalışma tarzını ayarlayabilirsiniz; örneÄŸin ÅŸu satırı ekleyerek, PHP’nin azamî çalışma süresini arttırabilirsiniz:
max_execution_time = 60;