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=YESsatı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