OpenBSD Üzerine Apache / PHP5 / MySQL Kurulumu ve Ayarlanması

From OpenBSD Belgeleme Projesi

Contents

- Bu Belge Neler İçerir?

Bu belgede, OpenBSD 3.8 üzerine, PHP5, MySQL, phpMyAdmin kurulumu, PHP5 için eklenti kurulumu, ve Apache+PHP5+MySQL üçlüsü arasındaki senkronizasyonun sağlanması anlatılmaktadır.

Dikkat! Bu belgede OpenBSD 3.8 kurulumu yer almamaktadır. OpenBSD'nin halihazırda kurulmuş olduğu varsayılmaktadır. Bu konuda yardım almak isterseniz, OpenBSD 3.8 Kurulumu adresini ziyaret edebilirsiniz.

- Paket Deposunun Ayarlanması

OpenBSD üzerinde yazılım kurmak oldukça kolaydır. Oyle ki, bir depodan yazılım kuracağımız zaman bu depoyu bir çevre değişkenine geçirmemiz yeterlidir. Şimdi bunu gerçekleştirelim.

# export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/3.8/packages/i386/

Böylece yeni depomuzu tanımlamış olduk. Kurulum boyunca bu depoyu kullanmak bize yetecek. Yazılım kurmak için, paket yönetim sisteminin bir parçası olan pkg_add uygulamasını kullanacağız. pkg_add uygulaması, talep ettiğimiz yazılımı nereden kuracağını öğrenmek için az önce tanımladığımız PKG_PATH ortam değişkenine bakacak.

OpenBSD Paket Yönetim Sistemi hakkında detaylı bilgi almak isterseniz OpenBSD Paket Yönetim Sistemi adresine bakabilirsiniz.

- MySQL Kurulumu ve Yapılandırılması

- MySQL Kurulumu

# pkg_add -v mysql-server-4.0.24p1

Burada, -v parametresi daha detaylı çıktı almamız için kullanıldı. Bu komut dizisinden sonra uygulama depodan kontrol edilecek, ve bağımlılıkları da kontrol edilerek gerekli paketlerle birlikte kurulacak. Bir noktayı belirtmek isterim ki, bir paketi kurduğumuzda, kurulum sonrasında ne yapacağımıza dair bir bilgi genelde verilmektedir.

Örnek olması açısından, MySQL kurulumu sırasında verilen çıktılara bir gözatalım.

parsing mysql-server-4.0.24p1
Dependencies for mysql-server-4.0.24p1 resolve to: 
p5-DBD-mysql-3.0002, mysql-client-4.0.24 (todo: mysql-client-4.0.24,p5-DBD-mysql-3.0002)
mysql-server-4.0.24p1:parsing mysql-client-4.0.24
mysql-server-4.0.24p1:parsing p5-DBD-mysql-3.0002
Dependencies for p5-DBD-mysql-3.0002 resolve to: p5-DBI-1.45p1, mysql-client-4.0.24..
mysql-server-4.0.24p1:parsing p5-DBI-1.45p1
Dependencies for p5-DBI-1.45p1 resolve to: p5-PlRPC-0.2018 (todo: p5-PlRPC-0.2018)
mysql-server-4.0.24p1:parsing p5-PlRPC-0.2018
Dependencies for p5-PlRPC-0.2018 resolve to: p5-Net-Daemon-0.38 (todo: p5-Net-Daemon-0.38)
mysql-server-4.0.24p1:parsing p5-Net-Daemon-0.38
adding group _mysql
adding user _mysql
--- mysql-server-4.0.24p1 -------------------
Preparing db table
Preparing host table
Preparing user table
Preparing func table
Preparing tables_priv table
Preparing columns_priv table
Installing all prepared tables
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/local/bin/mysqladmin -u root password 'new-password'
/usr/local/bin/mysqladmin -u root -h enderunix.my.domain password 'new-password'
See the manual for more instructions.
Please report any problems with the /usr/local/bin/mysqlbug script!
The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at https://order.mysql.com

Görüldüğü gibi, bağımlılıklar taranıyor, gerekli paketler kuruluyor, MySQL için gerekli grup ve kullanıcı ekleniyor vs.. Daha sonra bize, MySQL'in root parolasını nasıl atayacağımıza ve MySQL'e nasıl bağlanacağımıza dair bilgiler veriliyor.

- MySQL Yapılandırılması

Öncelikle MySQL'i ilk defa başlatalım.

# mysqld_safe &

Enter tuşuna basarak konsolu ele alalım tekrar. Hatırlarsınız, MySQL paketini kurduğumuzda bize yol gösterilmişti; şimdi o işlemleri gerçekleştirelim. Öncelikle MySQL için root kullanıcısına parola atayalım:

# mysqladmin -u root password sizin_parolaniz

Şimdi de root kullanıcısı ile bağlanmak için;

# mysql -u root -p

diyelim ve parolamızı girelim.

mysql> promptuna düştüysek sorun yok, artık MySQL'deyiz. Ufak bir deneme yapalım;

mysql> SELECT User, Password FROM mysql.user;

mysql veritabanının user tablosundan veri oku dedik. Bunun sonucunda bize tablo ile istediğimiz sonuçların verildiğini göreceksiniz.

+------+---------------------+
| User | Password            +
+------+---------------------+
| root + 5ht677ju985yt9b5    +
+------+---------------------+

Şimdi bir veritabanı oluşturma, oluşturduğumuz veritabanında bir tablo açmak için gerekli adımları uygulayalım.

mysql> CREATE DATABASE deneme_db;
mysql> GRANT SELECT ON deneme_db.* TO 'kullanici'@'localhost'
    -> IDENTIFIED BY 'parola' ;
Query OK, 0 rows affected (0.02 sec)

Veritabanımızı oluşturduk, ve kullanıcı yetkilendirmesini gerçekleştirdik. Şimdi oluşturduğumuz veritabanını kullanmak için geçiş yapalım.

mysql> USE deneme_db
Database changed

Şimdi de, bir tablo oluşturalım.

mysql> CREATE TABLE deneme_tb (
    -> id int not null primary key auto_increment,
    -> alan1 varchar (50) not null );
Query OK, 0 rows affected (0.00 sec)

Görüntüleyelim.

mysql> show tables;
+-------------------------+
| Tables_in_deneme_db     |
+-------------------------+
| deneme_tb               |
+-------------------------+
1 row in set (0.00 sec)

Şimdi tablomuza değerler girelim.

mysql> INSERT INTO deneme_tb VALUES ('NULL', 'alan1 deneme girdisi');
Query OK, 1 row affected (0.00 sec)

Görüntüleyelim.

mysql> SELECT * FROM deneme_tb;
+----+----------------------+
| id + alan1                |
+----+----------------------+
| 1  | alan1 deneme girdisi |
+----+----------------------+
1 row in set (0.01 sec)

Evet MySQL ile işimiz bitti, testimizi yaptık ve şimdi çıkalım.

mysql> exit
Bye

Son olarak değinmemiz gereken bir nokta var. OpenBSD üzerinde Apache'nin kök dizini /var/www dizinidir. MySQL'in varsayılan socket dosyası ise /var/run/mysql/mysql.sock dosyasıdır. Bu durumda Apache bu dizine ulaşamayacağından, oluşacak sorunların önüne geçmek için aşağıdaki işlemleri uygulayabiliriz.

# mkdir -p /var/www/var/run/mysql
# ln -f /var/run/mysql/mysql.sock /var/www/var/run/mysql/mysql.sock

Burada /var/www/var/run/mysql dizinini oluşturduk. (-p oluşturacağımız dizini oluştururken gereken üst dizinlerin de oluşturulmasını sağlar.)
Sonrasında da varsayılan mysql.sock dosyasını Apache'nin ulaşabileceği dizine bağladık. (-f hedef dosya mevcutsa silinsin diye kullandık.)

// Bu işlemlerin her açılışta yapılması işlemini yazının sonunda yapacağız.

- PHP5 Kurulumu ve Yapılandırılması

- Temel Paketin Kurulumu

MySQL kurulumunu tamamladık, ayarlarına tekrar döneceğiz. Şimdi PHP5 kurulumunu yapalım. (Bütün kurulumları yapalım, ayarlardan sonra testi yapmak daha akılda kalıcı olacaktır.)

# pkg_add -v php5-core-5.0.4p0

diyerek PHP5'in temel paketini kurmuş oluyoruz.

- PHP5 Yapılandırılması

İşemler bittikten sonra, PHP5 modülünü Apache'de aktif etmemiz gerekiyor. Bunun için /usr/local/sbin altında yer alan phpxs aracını kullaranarak ağrısız sonuca ulaşabiliriz. Daha sonra da, örnek php.ini dosyasını gereken yere kopyalayalım.

# phpxs -s
# cp /usr/local/share/examples/php5/php.ini-recommended /var/www/conf/php.ini

- PHP5 - MySQL Bağlantısı

Bu kısım #PHP5 Eklenti Kurulumu bölümüne referans olabilir. O kısımda değil de ayrı bir bölüm olarak değinilmesinin sebebi; seçimlik bir işlem olmaması, yani PHP-MySQL ilişkisi için gerekli olmasıdır. PHP5 ile MySQL bağlantısını sağlamak için;

# pkg_add -v php5-mysql-5.0.4

dedikten sonra aktif etmek için;

# phpxs -a mysql

dememiz yeterli.

- PHP5 Eklenti Kurulumu

OpenBSD deposunda, PHP5 için eklentiler de bulunmaktadır. Bu eklentilerden ihtiyaç gördüklerimizi çok basit biçimde kurabiliriz. Bunun için php5-mysql eklentisinin yönergelerini izleyebilirsiniz. Şimdi örnek olarak bir eklenti daha kuralım.

CURL Kütüphanesi
URL işlemleri için kullanılan bir kütüphanedir. GET / POST, kullanıcı doğrulama, çerez, veri çekme vs gibi işlemler için kullanılabilir. http, https, ftp, gopher, telnet, dict, file, ve ldap protokollerini destekler.

Kurulum ve aktif etme:

# pkg_add -v php5-curl-5.0.4
# phpxs -a curl

Bunların haricinde php5 için eklenti kurmak isterseniz, OpenBSD deposunda kullanılabilir olan eklentiler aşağıdaki gibidir:

php5-bz2-5.0.4        php5-curl-5.0.4  php5-dba-5.0.4
php5-dbase-5.0.4      php5-dbx-5.0.4   php5-extensions-5.0.4
php5-filepro-5.0.4    php5-gd-5.0.4    php5-gd-5.0.4p1-no_x11
php5-gmp-5.0.4        php5-imap-5.0.4            php5-ldap-5.0.4
php5-mbstring-5.0.4          php5-mcrypt-5.0.4  php5-mhash-5.0.4 
php5-mysql-5.0.4    php5-ncurses-5.0.4   php5-odbc-5.0.4   
php5-pear-5.0.4              php5-pgsql-5.0.4
php5-shmop-5.0.4          php5-snmp-5.0.4       php5-soap-5.0.4
php5-sqlite-5.0.4
php5-sybase_ct-5.0.4         php5-xmlrpc-5.0.4           php5-xsl-5.0.4

NOT: Kurulan eklentiler /var/www/lib/php/modules altina kurulur.

- Apache Yapılandırılması

Dikkat ederseniz Apache Kurulumu yok. Çünkü Apache OpenBSD üzerinde varsayılan olarak kurulu geliyor; o nedenle kurulum yönergeleri mevcut değil. Sıra geldi Apache uygulamasını yapılandırmaya. httpd.conf dosyasını duzenleyelim.

# vi /var/www/conf/httpd.conf

// Editör olarak vi kullanmak istemezseniz, nano gibi basit bir editör tercih edebilirsiniz. Nano kurulumu için;

# pkg_add -v nano-1.2.5

dememiz yeterli.

Yukarıdan aşağıya doğru ayarlamaya başlayalım: Apache'nin nereyi dinleyeceğini ayarlayalım. (192.168.0.17 kısmı sizin makinenizin ip adresi olacak)

Listen 192.168.0.17:80
Listen 127.0.0.1:80

ServerAdmin ve ServerName satırlarını ayarlayalım.

ServerAdmin arkhe@enderunix.localhost
ServerName 192.168.0.17

DirectoryIndex satırını aşağıdaki gibi duzenleyerek ilgili uzantıları tanıtalım.

DirectoryIndex index.html index.php index.phtml index.php4 index.php3

PHP modul ayarını yapmak için aşağıdaki satırı yorum satırı olmaktan çıkaralım.

AddType application/x-httpd-php .php

Şimdi dosyayı kaydedelim ve çıkalım.

:wq

Konsola düştüğümüzde;

# apachectl stop
# apachectl start

diyelim ve yeniden çalıştıralım. Bunlar temel ayarlar, herbiri yapılması zorunlu değildi. Daha detaylı bilgi isterseniz http://kendi_sunucunuzun_adresi/manual/index.html adresine bakabilirsiniz. Şimdi apache'yi deneyelim:

# lynx http://localhost/

- phpMyAdmin Kurulumu ve Yapılandırılması

- phpMyAdmin Kurulumu

Şimdi de, MySQL'i Web arabirimi üzerinden kullanmamızı sağlayarak işlerimizi oldukça hızlandıran phpMyAdmin uygulamasını kuralım.

# pkg_add -v phpMyAdmin-2.6.3

Kurulum tamamlandıktan sonra görebiliriz ki, phpMyAdmin /var/www/ altına kuruluyor. Bu şekilde ulaşamayacağımız için, aşağıdaki satırları uygulayalım.

# cd /var/www/htdocs/
# ln -s ../phpMyAdmin/ .

- phpMyAdmin Yapılandırılması

Şimdi sıra geldi phpMyAdmin ayarlarını yapmaya.

# vi /var/www/phpMyAdmin/config.inc.php

Dosyayi açtıktan sonra

$cfg['PmaAbsoluteUri'] = ";

satırını bulup

$cfg['PmaAbsoluteUri'] = 'http://adresimiz/phpMyAdmin/';
olarak değiştiriyoruz.

phpMyAdmin'i diğer makinelerden kullanacağımız için,

$cfg['Servers'][$i]['auth_type'] = 'config';

satırını bularak

$cfg['Servers'][$i]['auth_type'] = 'http';

olarak değiştiriyoruz. Böylece kullanıcı doğrulamasını http üzerinden yap demiş oluyoruz. config olarak bıraksaydık;

$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'mysql_parolamiz';

şeklinde kullanıcı bilgilerini dosyaya yazmamız gerekecekti. Fakat bu durumda, phpMyAdmin direk erişilir biçimde kalacaktı. Temel olarak bu kadar düzenleme yeterli. Diğer ayarlar hakkında yardım almak isterseniz http://kendi_sunucunuzun_adresi/phpMyAdmin/Documentation.html adresine bakabilirsiniz.

Şu anda phpMyAdmin çalışıyor olmalı. Bir ağa dahilseniz hemen http://kendi_sunucunuzun_adresi/phpMyAdmin/ adresini talep ederek sonucu görebilirsiniz. (root olarak, ya da MySQL denemesi yaparken oluşturduğumuz veritabani icin yetkilendirilen kullanıcı ile giriş yapabilirsiniz.)

- OpenBSD Açılış Ayarları

Bu bölümde, sistem ilk açıldığında ilgili servislerin otomatik olarak başlatılması için gerekli ayarları yapacağız.

- Apache

Apache uygulamasının ilk açılışta başlaması için

# vi /etc/rc.conf

diyerek dosyayı açtıktan sonra

httpd_flags=NO

satırını bularak

httpd_flags=""

şeklinde değiştiriyoruz.

- MySQL

/etc/inetd.conf ile servisler kullanılmıyorsa (bu konuda bir değişiklik yapmadım zaten diyorsanız aşağıdakileri uygulayabilirsiniz)

# vi /etc/rc.conf

diyerek dosyayı açtıktan sonra

inetd=YES

satırını

inetd=NO

olarak değiştiriyoruz. Daha sonra

# vi /etc/rc.conf.local

diyerek dosyayı açıyoruz (yoksa oluşturmuş olacağız). Ve

mysql=YES
satırını ekleyip kaydederek çıkıyoruz.

Şimdi de;

# vi /etc/rc.local

dosyasını açıyoruz. "starting local daemons" ifadesinin yer aldığı satırdan sonra aşağıdaki betik parçasını ekliyoruz.

if [ X"${mysql}" == X"YES" -a -x /usr/local/bin/mysqld_safe ]; then
 echo -n " mysqld baslatiliyor "; /usr/local/bin/mysqld_safe --user=_mysql --log \
--open-files-limit=256 &
    for i in 1 2 3 4 5 6; do
        if [ -S /var/run/mysql/mysql.sock ]; then
            break
        else
            sleep 1
            echo -n "."
        fi
    done
    #
    # Apache chroot Settings
    mkdir -p /var/www/var/run/mysql
    sleep 2
    ln -f /var/run/mysql/mysql.sock /var/www/var/run/mysql/mysql.sock
fi

Dosyayı kaydedip çıkıyoruz.

MySQL sunucusunun açılışta başlamamasını isterseniz, /etc/rc.conf.local dosyasındaki mysql=YES satırını mysql=NO olarak değiştirmeniz (daha doğrusu YES dışında istediğinizi yazmanız) yeterlidir. /etc/rc.local dosyasına eklediğimiz betik parçası buradaki mysql değerini kontrol eder, değeri YES değilse MySQL sunucusunu başlatmak için gereken işlemleri yapmaz.

# halt

diyerek sistemi yeniden başlatıyoruz.

Evet, açılışta Apache ve MySQL'in başlamış olması gerekir. Apache ve MySQL'in çalışıp çalışmadığını anlamak için en basit yöntem olarak phpMyAdmin ile deneme yapabiliriz. phpMyAdmin'i Web tarayıcımız ile açıp, kullanıcı adı ve parola bilgilerini girdiğimizde oturum açılıyorsa sorun yok demektir.

- Yararlanılan Kaynaklar

OpenBSD Packages 3.8
MySQL Database Server
How-to: OpenBSD 3.8+Apache+PHP+MySQL