Aslında sadece WHMCS şeklinde gidecektim ama bende kurulu olmadığı için mecbur bu şekilde davranmam gerekti.
Normal şartlar altında apache gibi servisleri kurarken tek tek modüllere bakmamız gerekecektir. Zira kullanılmayan her modül hem servisin yavaş çalışmasına etki eder, hemde donanıma beyhude iş çıkartacaktır. Fakat amacımız sadece WHMCS kurmak olduğundan bu durumu önemsemiyoruz. Daha sonra farklı bir yazıda tüm Apache modüllerine hatta tüm Php bileşenlerine göz gezdiririm.
Servis şeklinde çalışan (mail, httpd, smtp, veritabanı vs) neredeyse tüm yazılımlar çalışmak için veya kurulum için Perl diline ihtiyaç duyarlar. Bu sebeple perl dilinin sistemde kurulu olması gerekir. Freebsd port ağacının güzel bir yanı, kurulum esnasında neye ihtiyacı var ise onu portlardan kurmasıdır. Yani kısaca aslında perl dilini kurmamıza gerek yok, çünkü apache veya php dilini kurarken kendisi kuracak.
WHMCS sistem gereksinimleri kendi web sitesinde şu şekilde verilmiş;
- PHP
- Json
- GD2
- Curl (ssl desteği ile)
- Php bellek limiti 64mb
- Mysql
- Ioncube Loaders
AH00557: httpd: apr_sockaddr_info_get() failed for deneme.local
AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1. Set the ‘ServerName’ directive globally to suppress this message
Yukarıdaki şekilde bir hata alırsak önemsememize gerek yok. Bu hata apache’nin bizim sunucu ismimizi (hostname) beğenmediğinden kaynaklanıyor. Daha doğrusu sunucu isminin karşılığında bir ip olmadığından kaynaklanıyor. hostname sunucuismi.com yaparak değiştirebilir veya /etc/hosts dosyasına sunucumuzun ismini yazarak hatayı almamayı sağlayabiliriz.
ee /usr/local/etc/apache24/httpd.conf
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Şimdi /usr/local/www/apache24/data dizinine bir phpinfo dosyası yaratıp, php’nin çalışıp/çalışmadığını kontrol edelim.
<?php
phpinfo();
?>
Eğer kurulumda bir hata yaşamadıysak, tarayıcıya http://ip/phpinfo.php şeklinde yazdığımızda aşağıdaki sayfa gelecektir.
php.ini dosyasında ufak bir değişiklik yapmamız gerekiyor.
cd /usr/local/etccp php.ini-development php.ini
Bu dosyayı text editörü ile açıp, date.timezone =Europe/Istanbul şeklinde değiştirmemiz gerekiyor.
Şimdi ise sıradan php bileşenleri kurmak var. Php bileşenleri port ağacında php ile aynı dizinde bulunmaktadır.
cd /usr/ports/lang/php53-extensions/
Make config komutu ile ncurses ekrandan bize gerekli olan ve en sık kullanılan bileşenleri işaretleyelim. Benim kurmak istediğim bileşenler şu şekilde.
BCMATH – BZ2 – CALENDAR – CTYPE – CURL – FILEINFO – FTP – GD – GETTEXT – GMP – HASH -ICONV – JSON – MBSTRING – MCRYPT – MYSQL – MYSQLI – OPENSSL – RECODE – SESSION – SNMP – SOAP – TIDY – TOKENIZER – XML – XMLREADER – XMLRPC – XMLWRITER – XSL – ZIP – ZLIB
WHMCS üç tane bileşen yazdı, biz neden bunları kuruyoruz peki? Mesela WHMCS’nin yazmadığı php-mysql var veya sesion var. Bunlar o yazmasa da bize lazım olacak bileşenler. Ayrıca xmlrpc gibi kütüphaneleri de daha sonra ekleyeceğimiz modüller için kuruyoruz. Ha bu modüllerin hepsi port ağacında farklı yerlerde de tek başına bulunuyor bu arada. Komutu tekrar verip kurmaya başlıyoruz. “make install clean”. Yine bir çok ncurses ekranı karşımıza gelecektir. Şu an için sadece varsayılan olanları seçsek yeterli olacaktır. Gd kütüphanesi kurulurken varsayılan olarak “Japon dilleri kütüphanesi” desteğini aktif etmiyoruz, yoksa GD problem yaşatıyor.
Eğer herhangi bir problem çıkmadıysa, apache servisini restart ettiğimizde, phpinfo sayfasında, kurduğumuz tüm bileşenleri görmemiz gerekiyor.
Mysql Kurulumu
Yine mysql veritabanı kurulumunu da, port ağacı üzerinden yapacağız.
cd /usr/ports/databases/mysql55-servermake install clean
echo ‘mysql_enable=”YES”‘ >> /etc/rc.conf
/usr/local/etc/rc.d/mysql-server start
Ioncube Kurulumu
Biz Freebsd 10 üzerinde çalışıyoruz fakat Ioncube Freebsd 9 için yayınlamış, yinede kurulum yapabiliriz, sağlıklı bir şekilde çalışıyor.
Freebsd 32 Bit Ioncube
fetch komutu ile .tar.gz dosyasını indiriyoruz.
fetch ioncube.com/ioncube.tar.gz
tar -zxvf ioncube.tar.gz
mkdir -p /usr/local/ioncube/
mv ioncube* /usr/local/ioncube
Şimdi php.ini dosyasında değişiklik yapmamız gerekiyor.
ee /usr/local/etc/php.ini
zend_extension = /usr/local/ioncube/ioncube_loader_fre_5.3.so
Bu satırı php.ini de en sona ekliyoruz. Farklı bir sürüm var ise, o sürümün .so dosyasını ekleyebiliriz. Apache servisini restart ediyoruz. Ayrıca loader-wizard.php dosyasından kurulumun olup olmadığını kontrol edebiliriz. Tabi bu dosyayı mv loader-wizard.php /usr/local/www/apache24/data yapıp, dizine taşıyarak.
Ftp Kurulumu
Dosyaları atmak için bir ftp sunucusu lazım olacaktır. Gerçi scp üzerinden de dosyaları atabiliriz veya fetch ile çekebiliriz fakat ftp sunucusu kurup, resimler veya farklı dosyaları atmak daha sağlıklı olacaktır.
Kuracağımız ftp sunucusu Freebsd üzerinde varsayılan olarak gelen bir ftp sunucu programı. Komplike bir yapısı yok ve bizim işimizi şimdilik görecek düzeyde.
/etc/inetd.conf dosyasını açıyoruz ve aşağıdaki satırın yorumunu kaldırıyoruz.
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
/usr/libexec/ftpd -D -ll
-D parametresi daemon olarak çalışmasını, ll parametresi ise servisin log tutmasını sağlayacaktır. Loglar /var/log/ftpd.log dosyasında saklanır.
/etc/ftpusers dosyasında bulunan kullanıcılar ftp servisine erişim sağlayamazlar. Ben root olarak dosyaları atacağım için, dosyada bulunan root satırını siliyorum ve bağlanıyorum.
Bu şekilde gidersek bu yazı çok uzamış olacak. Bu şekilde bitirip, WHMCS konusunu farklı bir konuda yazayım.