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:
Kod:
# 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:
Kod:
# 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:
Kod:
# 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:
MySQL'in kullanım izinlerini belirlememiz gerekir. Aşağıdaki komutları yazarken
"parola" kelimesi yerine vermek istediğiniz parola kelimesini yazmanız gerekir:
Kod:
# 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:
Kod:
# 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
Kod:
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).
Kod:
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?
Kod:
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:
Kod:
# 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:
Kod:
# ./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:
Oluşan ini dosyasını lib dizinine koplayalım:
Kod:
# 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: