Solaris 10 üzerinde Apache2.0, PHP5, MySQL5, Oracle Instant Client


Bu işlemleri gerçekleştirmeden önce bir takım ön hazırlıklar yapılmalıdır. Genelde hazır Solaris paketleri için iki site tavsiye edilir. www.sunfreeware.com ve www.blastwave.org. Biz bu iki organizasyonun da hazır paketlerini kullanacağız. Önce bize büyük kolaylıklar sağlayacak olan pkg-get programını indirelim. Her iki organizasyonun mirroru olan ftp://ftp.deu.edu.tr adresi bunun için yeterli olacaktır.

Önce pkg-get programını indirelim. (Makinanın sparc olduğunu varsayıyoruz)

Eğer Solaris 10 işletim sistemini extra CD ile kurduysak /usr/sfw/bin altında wget programı bulunmaktadır.

# uname -a
SunOS karin 5.10 Generic_138888-07 sun4v sparc SUNW,Sun-Fire-T1000

# PATH=$PATH:/usr/sfw/bin
# export PATH
# wget ftp://ftp.deu.edu.tr/pub/Solaris/Blastwave/pkg_get.pkg
# pkgadd -d pkg_get.pkg

Blastwave'nin pkg-get programını kurduk, şimdi Solaris 10 ile beraber dağıtılan MySQL4'ü sistemden kaldıralım.

# pkginfo|grep -i mysql
# pkgrm SUNWmysqlr SUNWmysqlt SUNWmysqlu

Şimdi MySQL5 kurulumuna geçebiliriz. Fakat bundan önce /opt/csw/etc altındaki pkg-get.conf dosyasına aşağıdaki satırı ekleyelim.
url=ftp://ftp.deu.edu.tr/pub/Solaris/csw/stable
# /opt/csw/bin/pkg-get -i mysql5 mysql5client mysql5devel mysql5rt
# /opt/csw/bin/pkg-get -i mysql5test
Mysql'i kurduktan sonra my.cnf için aşağıdaki işlemi yapalım.

# cp  /opt/csw/mysql5/share/mysql/my-medium.cnf /opt/csw/mysql5/my.cnf
(Biz my.cnf için my-medium.cnf seçtik. Makinanın fiziksel belleği 4 GB'dan fazlaysa large.cnf ya da yine makinanın durumuna göre başka bir conf dosyası seçilebilir. Keza InnoDB için de değişik seçenekler mevcuttur.)

MySQL için user ve group yaratalım.

# groupadd mysql
# useradd -c "MySQL Sunucu" -d /dev/null -g mysql -s /bin/false mysql

# grep mysql /etc/group
# grep mysql /etc/passwd

MySQL install_db scriptini çalıştıralım ve gerekli erişim izinlerini ayarlayalım.

# cd /opt/csw/mysql5
# ./bin/mysql_install_db
# chown -R mysql:mysql ./var

MySQL 5'i çalıştıralım ve kontrol edelim.

# cd /opt/csw/mysql5 ; /opt/csw/mysql5/bin/mysqld_safe &
# ps -ef| grep my

root 331 1 0 08:07:41 ? 0:00 /bin/sh /opt/csw/mysql5/bin/mysqld_safe --pid-file=/opt/csw/mysql5/var/mysql.pi
mysql 450 331 0 08:07:45 ? 0:10 /opt/csw/mysql5/libexec/mysqld --basedir=/opt/csw/mysql5 --datadir=/opt/csw/mys
root 764 663 0 10:31:15 pts/1 0:00 grep my

Kolaylık olsun diye mysql komutunu /usr/bin altına linkleyelim


# ln -s /opt/csw/mysql5/bin/mysql /usr/bin/mysql

Mysql'i durdurmak için Solaris'teki çok kullanışlı pkill komutunu kullanalım.

# pkill mysql

Eskiden açılış scriptleri RC dosyaları /etc/init.d altında olurdu. Solaris 10 ile beraber servis yönetimi ve kontrolu geldiği için artık SMF denilen mekanizma ile servis yönetimi yapılıyor. Bunun için önce svcs komutuyla mysql'i servisler altında arıyor ve daha sonra başlatıyoruz.

 # svcs -a | grep mysql
disabled 13:36:01 svc:/network/cswmysql5:default
Servisi başlatmak için aşağıdaki komutu uyguluyoruz. (svcadm ile -t parametresi kullansaydık sadece oturum için geçerli olurdu.)
# svcadm enable svc:/network/cswmysql5:default

Açılıp açılmadığını kontrol ediyoruz.

# svcs -a | grep mysql
online 15:12:43 svc:/network/cswmysql5:default

Mysql için root şifresi tayin ediyoruz.

# /opt/csw/mysql5/bin/mysqladmin -u root password 'buraya-sifre-yazin'

İsteğe bağlı olarak kurduğumuz Mysql'i test ediyoruz.

# cd /opt/csw/mysql5/mysql-test
# ./mysql-test-run
# ./bin/mysql -p

Mysql promptuna düşünce aşağıdaki komutları uygulayalım.

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.51-log Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show databases;

Çıkmak için Ctrl-D ya da;

quit

Rc dosyalarını gereken yerlere kopyalıyoruz.

# mkdir -p /etc/opt/csw
# chown root:bin /etc/opt/csw 
# chmod 0755 /etc/opt/csw
# cp /opt/csw/mysql5/share/mysql/mysql5rc /etc/opt/csw/

Gerekli paketler için diskimizde boş bir yer ayarlayalım. Biz /paket altında toparladık.

# mkdir -p /paket
# cd /paket
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.tar.gz
wget ftp://xmlsoft.org/libxml2/libxml2-2.7.3.tar.gz
wget ftp://ftp.gnome.org/pub/GNOME/sources/libxslt/1.1/libxslt-1.1.22.tar.gz
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.9.tar.gz
wget http://godel.cs.bilgi.edu.tr/apache/httpd/httpd-2.0.63.tar.gz
wget http://godel.cs.bilgi.edu.tr/apache/apr/apr-1.3.3.tar.gz
wget http://godel.cs.bilgi.edu.tr/apache/apr/apr-util-0.9.15.tar.gz
wget http://curl.haxx.se/download/curl-7.19.4.tar.gz
wget http://www.libgd.org/releases/gd-2.0.35.tar.gz
wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.35.tar.gz
wget ftp://ftp.deu.edu.tr/pub/Infosystem/samp/jpegsrc.v6b.tar.gz
wget ftp://ftp.deu.edu.tr/pub/Infosystem/samp/instantclient_11_1.tar
wget http://us.php.net/get/php-5.2.9.tar.gz
wget http://www.modsecurity.org/download/modsecurity-apache_2.5.9.tar.gz
wget ftp://ftp.deu.edu.tr/pub/Infosystem/samp/modsecurity-apache_1.9.5.tar.gz
wget ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.16.tgz
wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.21-02-src.tgz

Her ihtimale karşılık modsecurity için version 1.95'i de download edelim. Paketlerin tümüne ftp://ftp.deu.edu.tr/pub/Infosystem/samp adresinden de erişebilirsiniz.

LibIconv Kurulumu
# mkdir -p /sampo05 (biz prefix için /sampo05 dedik)
# cd /sampo05
# mkdir src
# cd src
# PATH=$PATH:/usr/sfw/bin:/usr/ccs/bin
# KOK=/sampo05 (işimizi kolaylaştırmak için her seferinde --prefix vermektense değişkene atayacağız)
# export PATH KOK
# gtar xvfz /paket/libiconv-1.13.tar.gz
# cd libiconv-1.13
# ./configure --prefix=$KOK
# make
# make install
# make clean

LibXml2 Kurulumu
# cd /sampo05/src
# gtar xvfz /paket/libxml2-2.7.3.tar.gz
# cd libxml2-2.7.3
# ./configure --prefix=$KOK
# make
# make install
# make clean

LibXslt Kurulumu
# cd /sampo05/src
# gtar xvfz /paket/libxslt-1.1.22.tar.gz
# cd libxslt-1.1.22

# ./configure --prefix=$KOK 
--with-libxml-prefix=$KOK
# make
# make install
# make clean

Pcre Kurulumu
# cd /sampo05/src/
# gtar xvfz /paket/pcre-7.9.tar.gz
# cd pcre-7.9
# ./configure --prefix=$KOK
# make
# make install
# make clean

Httpd Kurulumu
# cd /sampo05/src/
# gtar xvfz /paket/httpd-2.0.63.tar.gz
# cd httpd-2.0.63
# ./configure --prefix=$KOK --enable-so --enable-rewrite
# make
# make install
# make clean

Apr ve Apr-Util Kurulumu
# cd /sampo05/src/
# gtar xvfz /paket/apr-1.3.3.tar.gz
# cd apr-1.3.3
# ./configure --prefix=$KOK
# make
# make install
# make clean
# cd /sampo05/src/
# gtar xvfz /paket/apr-util-0.9.15.tar.gz
# cd apr-util-0.9.15
# make
# make install
# make clean

Curl Kurulumu
# cd /sampo05/src/
# gtar xvfz /paket/curl-7.19.4.tar.gz
# cd curl-7.19.4
# ./configure --prefix=$KOK
# make
# make install
# make clean

GD Kurulumu
# cd /sampo05/src/
# gtar xvfz /paket/gd-2.0.35.tar.gz
# cd gd-2.0.35/
# ./configure --prefix=$KOK
# make
# make install
# make clean

LibPng Kurulumu
# cd /sampo05/src/
# gtar xvfz /paket/libpng-1.2.35.tar.gz
# cd gd-2.0.35/libpng-1.2.35
# ./configure --prefix=$KOK
# make
# make install
# make clean

LibJpeg Kurulumu
# cd /sampo05/src/
# gtar xvfz /paket/jpegsrc.v6b.tar.gz
# cd gd-2.0.35/jpeg-6b
# ./configure --prefix=$KOK
# make
# make install
# cp libjpeg.a $KOK/lib/
# make clean

Openldap Kurulumu

# cd /sampo05/src/
# gtar xvfz /paket/openldap-2.4.16.tgz
# CFLAGS='-D_AVL_H' (gerekirse)
# export CFLAGS (gerekirse)
# ./configure --prefix=$KOK --disable-slapd --disable-slurpd
# make
# make depend
# make install

PHP5 Kurulumu

http://php.net adresinden en son stable sürüm 5.2.9'i indirelim. Php'yi derleyeceğimiz için bize yardımcı olacak GNU programlarının da sistemimizde bulunmasında fayda var. Solaris 10'u extra CD ile kurulmamışsa ya da elimizde companion CD yoksa aşağıdaki gerekli programları sisteme ekleyelim. Önce pathimizi değiştirelim.

# PATH=/opt/csw/bin:/usr/sfw/bin:/usr/sbin:/usr/bin:/usr/openwin/bin:/usr/dt/bin:/usr/ccs/bin
# export PATH
# echo $PATH
/opt/csw/bin:/usr/sfw/bin:/usr/sbin:/usr/bin:/usr/openwin/bin:/usr/dt/bin:/usr/ccs/bin

Şeklinde bir çıktı almamız gerekiyor. Daha sonra bu PATH satırını .profile ve .bashrc dosyalarına ekleyelim. (root olurken sadece su ile root olanlar bunu kendi home dizinlerindeki .profile ve .bashrc dosyalarına da eklemelidir.)  

Şimdi en gerekli üç toolu ekleyelim.

# pkg-get -i autoconf
# pkg-get -i automake
# pkg-get -i gsed
Sistemde gcc ve gmake kurulu olup olmadığını kontrol edelim. Büyük ihtimal /usr/sfw altında veya ekleri Blastwave'den  yüklediğimiz paketlerin bağımlılıklarında bulunduğu için sistemimizde yüklüdür. 
# which gcc 
/usr/sfw/bin/gcc

# which gmake
/usr/sfw/bin/gmake

# which flex
/usr/sfw/bin/flex

# which bison && bison --version | head -2
/usr/sfw/bin/bison

# which gm4
/opt/csw/bin/gm4

# which perl
/opt/csw/bin/perl

# which gunzip
/usr/bin/gunzip

# which gtar
/usr/sfw/bin/gtar
Görüldüğü gibi benim sistemimde bazıları /usr/sfw altında sistemle beraber gelmiş, bir kısmı da Blastwave'den program yüklerken depend olarak sisteme yerleşmiş. 
# cd /sampo05/src
# gtar xvfz /paket/php-5.2.9.tar.gz
# cd php-5.2.9
# vi yap_php
/append (aşağıdaki configure scriptini copy+paste yapın)

./configure --prefix=$KOK --with-apxs2=$KOK/bin/apxs --enable-dbase \
 --with-libxml-dir=$KOK --with-config-file-path=$KOK/conf \
 --enable-sysvsem  --enable-soap \
 --enable-sysvshm  --enable-sockets \
 --with-mysql=shared,/opt/csw/mysql5 \
 --with-mysqli=shared,/opt/csw/mysql5/bin/mysql_config \
 --with-curl=$KOK \
 --with-gd=$KOK  \
 --with-ldap=/usr \
 --with-jpeg-dir=$KOK --with-png-dir=$KOK --with-zlib --enable-mbstring \
 --with-iconv-dir=$KOK \
 --enable-calendar --enable-bcmath --enable-ftp --enable-exif  \
 --with-oci8=instantclient,$KOK/lib/instantclient_11_1 \
 --with-bz2

Bu yap_php dosyasını saklayın. İlerde biri çıkıp da "ben soap isterim, ben şunu isterim, ben bunu isterim" dediğinde bu dosyada php'yi nelerle derlediğinizi görüp ona göre ekleme yapabileceksiniz.

# sh yap_php
# make
# crle -l /lib:/usr/lib:$KOK/lib/instantclient_11_1 -s  /lib/secure:/usr/lib/secure
# make test (Bu işlem çok uzun sürebilir)
# make install
# make clean
PHP5 için nereye prefix verdiyseniz $KOK/lib/php altına kendi php.ini dosyanızı yerleştirip include_path'leri düzeltebilirsiniz.

# ls -l /usr/local/lib/php/extensions/no-debug-non-zts-20060613/
# vi /etc/apache2/php.ini

extension_dir = ifadesini arayın ve bulduğunuzda,
extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20060613/"
şekline getirin. Daha sonra aşağıda belirtilen örnekte olduğu gibi Dynamic Extensions kısmını bulup orada extension=mysql.so şekline getirin.

  ;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;

Eklenecek satır.

extension=mysql.so
Her şey yolunda gittiyse --prefix/bin altında ./apachectl start ile uygulamanızı başlatın.

Unix Ana Sayfaya Dönüş