Belgeyi Hazırlayan: Duygu Ölmez
Bu kurulum Tekir’in varsayılan ayarları için geçerlidir.
Sistem Gereksinimleri ve Ön Gereksinimler
Kuracağımız sanal makinenin özellikleri aşağıdaki gibidir.
- İşletim Sistemi: CentOS 6.6
- İşletim Sistemi Türü: Red Hat (64-bit)
- Bellek: 2048 MB (1024 MB’dan fazla olmalı)
- İşlemci: 1
- Depolama: 10 GB
Öncelikle 80 portunun açık olduğundan ve selinuxun kapalı olduğundan emin olun. 80 portu kapalıysa açmak için /etc/sysconfig/iptables dosyasına aşağıdaki satırı ekleyin:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
Servisi yeniden başlatın:
service iptables restart
Selinuxu kapatmak için /etc/sysconfig/selinux dosyasındaki seçeneği aşağıdaki şekilde değiştirin. Değişiklikten sonra cihazı reboot etmeniz gerekir:
SELINUX=disabled
NOT: Sanal makinenin imajını almadan önce /etc/udev/rules.d/70-persistent-net.rules dosyasındaki SUBSYSTEM ile başlayan satırı silmeniz gerekmektedir. Makineyi reboot etmeden imajını alın.
Tekir’i kurarken aşağıdaki uygulamaları kuracağız
- Java : Sun-JDK 7
- Veritabanı Sunucusu : Percona Mysql 5.6
- Uygulama Sunucusu : JBoss AS 4.2.3.GA (RedHat)
- Web Sunucusu : Nginx 1.8.0
Zip dosyalarını internetten indirmek için wget kullanacağız. Açmak için unzip ve tar kullanacağız. Kurulu değillerse aşağıdaki gibi kurabilirsiniz:
yum install -y wget unzip tar
JDK ( Java Development Kit ) Kurulumu
Öncelikle rpm dosyasını indirip kuruyoruz:
cd /tmp wget -c --no-check-certificate --no-cookies --header 'Cookie: oraclelicense=accept-securebackup-cookie' http://download.oracle.com/otn-pub/java/jdk/7u71-b14/jdk-7u71-linux-x64.rpm -O jdk-7u71-linux-x64.rpm yum install -y jdk-7u71-linux-x64.rpm rm -f jdk-7u71-linux-x64.rpm
Daha sonra java ve alternatiflerinin kurulumu için aşağıdaki komutları çalıştırıyoruz:
alternatives --install /usr/bin/java java /usr/java/jdk1.7.0_71/bin/java 1 alternatives --install /usr/bin/javac javac /usr/java/jdk1.7.0_71/bin/javac 1 alternatives --install /usr/bin/jar jar /usr/java/jdk1.7.0_71/bin/jar 1 alternatives --install /usr/bin/javaws javaws /usr/java/jdk1.7.0_71/bin/javaws 1 alternatives --config java Selection Command ----------------------------------------------- *+ 1 /usr/java/jdk1.7.0_71/bin/java Enter to keep the current selection[+], or type selection number: 1 alternatives --set jar /usr/java/jdk1.7.0_71/bin/jar alternatives --set javac /usr/java/jdk1.7.0_71/bin/javac alternatives --set java /usr/java/jdk1.7.0_71/bin/java alternatives --set javaws /usr/java/jdk1.7.0_71/bin/javaws
MySQL Kurulumu
Veritabanı paketini yükleyip kurmak için aşağıdaki komutları yazmanız yeterli:
yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm yum install -y Percona-Server-server-56.x86_64 Percona-Server-client-56.x86_64 service mysql start chkconfig --levels 235 mysql on
Güvenlik ayarlarını yapılandırıp root şifresi oluşturmak için aşağıdaki komutu giriyoruz:
mysql_secure_installation
İlk kurulumda veritabanı parolamız olmadığı için enter’a basıyoruz
Enter current password for root (enter for none): Set root password? [Y/n] y New password: parolaniz Re-enter new password: parolaniz ... Remove anonymous users? [Y/n] y ... Disallow root login remotely? [Y/n] y ... Remove test database and access to it? [Y/n] y ... Reload privilege tables now? [Y/n] y ... All done! If you've completed all of the above steps, your MySQL installation should now be secure. Thanks for using MySQL!
utf8 çalışmasını sağlama almak için /etc dizinindeki my.cnf dosyasında ilgili bölümlere şu satırları ekleyelim:
[mysqld] character_set_server=utf8 character_set_client=utf8 skip-name-resolve [client] default-character-set=utf8 [mysql] default-character-set=utf8
JBoss AS 4.2.3.GA Kurulumu
JBoss AS 4.2.3.GA sürümünü /tmp dizini altına indirip /opt dizinine açıyoruz
cd /tmp wget http://sourceforge.net/projects/jboss/files/JBoss/JBoss-4.2.3.GA/jboss-4.2.3.GA.zip unzip jboss-4.2.3.GA.zip mv jboss-4.2.3.GA /opt/tekir/ rm -f /tmp/jboss-4.2.3.GA.zip
Çalışma ayarını yapmak için /opt/tekir/bin/run.conf dosyasındaki x$JAVA_OPTS parametrelerini tanımlayalım:
if [ "x$JAVA_OPTS" = "x" ]; then JAVA_OPTS="-Xms1024m -Xmx1024m -XX:MaxPermSize=1024m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Duser.language=en -Duser.country=US" fi
Jboss için bir tekir kullanıcısı oluşturuyoruz
useradd -r tekir -d /opt/tekir chown tekir: -R /opt/tekir
Jbossu çalıştırıp kapatabilmek için opt/tekir/bin dizinindeki run.sh ve shutdown.sh dosyalarının çalıştırılabilir olması gerekir:
chmod +x /opt/tekir/bin/run.sh chmod +x /opt/tekir/bin/shutdown.sh
Jboss servisini kullanabilmek için /etc/init.d dizinine tekir adında bir servis dosyası oluşturun. Dosya içeriği aşağıdaki gibi olmalıdır:
#!/bin/sh # # $Id: jboss_init_redhat.sh 71252 2008-03-25 17:52:00Z dbhole $ # # JBoss Control Script # # To use this script run it as root - it will switch to the specified user # # Here is a little (and extremely primitive) startup/shutdown script # for RedHat systems. It assumes that JBoss lives in /usr/local/jboss, # it's run by user 'jboss' and JDK binaries are in /usr/local/jdk/bin. # All this can be changed in the script itself. # # Either modify this script for your requirements or just ensure that # the following variables are set correctly before calling the script. # chkconfig: - 64 36 # description: Jboss Start|Restart|Stop Application Server # pidfile: /var/run/jboss.pid #define where jboss is - this is the directory containing directories log, bin, conf etc JBOSS_HOME=${JBOSS_HOME:-"/opt/tekir"} #define the user under which jboss will run, or use 'RUNASIS' to run as the current user JBOSS_USER=${JBOSS_USER:-"tekir"} #make sure java is in your path JAVAPTH=${JAVAPTH:-"/usr/java/default/bin"} #configuration to use, usually one of 'minimal', 'default', 'all' JBOSS_CONF=${JBOSS_CONF:-"default"} #if JBOSS_HOST specified, use -b to bind jboss services to that address JBOSS_HOST="127.0.0.1" JBOSS_BIND_ADDR=${JBOSS_HOST:+"-b $JBOSS_HOST"} #define the script to use to start jboss JBOSSSH=${JBOSSSH:-"$JBOSS_HOME/bin/run.sh -c $JBOSS_CONF $JBOSS_BIND_ADDR"} if [ "$JBOSS_USER" = "RUNASIS" ]; then SUBIT="" else SUBIT="su -s /bin/bash - $JBOSS_USER -c " fi if [ -n "$JBOSS_CONSOLE" -a ! -d "$JBOSS_CONSOLE" ]; then # ensure the file exists touch $JBOSS_CONSOLE if [ ! -z "$SUBIT" ]; then chown $JBOSS_USER $JBOSS_CONSOLE fi fi if [ -n "$JBOSS_CONSOLE" -a ! -f "$JBOSS_CONSOLE" ]; then echo "WARNING: location for saving console log invalid: $JBOSS_CONSOLE" echo "WARNING: ignoring it and using /dev/null" JBOSS_CONSOLE="/dev/null" fi #define what will be done with the console log JBOSS_CONSOLE=${JBOSS_CONSOLE:-"/dev/null"} JBOSS_CMD_START="cd $JBOSS_HOME/bin; $JBOSSSH" if [ -z "`echo $PATH | grep $JAVAPTH`" ]; then export PATH=$PATH:$JAVAPTH fi if [ ! -d "$JBOSS_HOME" ]; then echo JBOSS_HOME does not exist as a valid directory : $JBOSS_HOME exit 1 fi echo JBOSS_CMD_START = $JBOSS_CMD_START function procrunning() { procid=0 JBOSSSCRIPT=$(echo $JBOSSSH | awk '{print $1}') for procid in `/sbin/pidof -x "$JBOSSSCRIPT"`; do ps -fp $procid | grep "${JBOSSSH% *}" > /dev/null && pid=$procid done } stop() { pid=0 procrunning if [ $pid = '0' ]; then echo -n -e "\nNo JBossas is currently running\n" exit 1 fi RETVAL=1 # If process is still running # First, try to kill it nicely for id in `ps --ppid $pid | awk '{print $1}' | grep -v "^PID$"`; do if [ -z "$SUBIT" ]; then kill -15 $id else $SUBIT "kill -15 $id" fi done sleep=0 while [ $sleep -lt 120 -a $RETVAL -eq 1 ]; do echo -n -e "\nwaiting for processes to stop"; sleep 10 sleep=`expr $sleep + 10` pid=0 procrunning if [ $pid == '0' ]; then RETVAL=0 fi done # Still not dead... kill it count=0 pid=0 procrunning if [ $RETVAL != 0 ] ; then echo -e "\nTimeout: Shutdown command was sent, but process is still running with PID $pid" exit 1 fi echo exit 0 } case "$1" in start) cd $JBOSS_HOME/bin if [ -z "$SUBIT" ]; then eval $JBOSS_CMD_START >${JBOSS_CONSOLE} 2>&1 & else $SUBIT "$JBOSS_CMD_START >${JBOSS_CONSOLE} 2>&1 &" fi ;; stop) stop ;; restart) $0 stop $0 start ;; *) echo "usage: $0 (start|stop|restart|help)" esac
Tekir dosyasını çalıştırılabilir hale getirdikten sonra aşağıdaki komutları kullanarak servisi başlatıp durdurup ya da yeniden başlatabilirsiniz. Jboss’un başlaması bir kaç dakika alabilir:
chmod +x /etc/init.d/tekir service tekir start service tekir stop service tekir restart
Jbossun sistem açılışında çalışması için aşağıdaki komutu veriyoruz:
chkconfig --levels 235 tekir on
ÖNEMLİ: CentOS kurulumunda sunucu adını değiştirdiyseniz /etc/hosts dosyasına IP ve hostname bilgisini eklemeniz gerekmektedir. Aksi halde jboss başlamaz.
192.168.xxx.xxx hostname
TEKİR’İN KURULUMU
Öncelikle Tekir’in kurulum paketini indiriyoruz:
cd /tmp wget http://sourceforge.net/projects/tekir/files/tekir/Tekir%202.1.0/tekir-2.1-linux-install.tar.gz tar -xvf tekir-2.1-linux-install.tar.gz chown tekir:tekir -R /tmp/tekir-2.1-linux-install rm -f tekir-2.1-linux-install.tar.gz
Tekir’in çalışması için önceden veritabanının oluşturulması, tablo ve varsayılan verilerin yüklenmesi
gerekmektedir.
İlk önce mysql’e root olarak giriş yapıp tekir isimli bir veritabanı oluşturuyoruz. Daha sonra bu veritabanı için kullanıcı ve parolasını oluşturuyoruz. Giriş yapabilmek için güvenlik ayarlarını yapılandırırken oluşturduğunuz parolayı girmeniz gerekmektedir:
mysql -u root -p mysql> CREATE DATABASE tekir collate utf8_turkish_ci; mysql> CREATE USER 'kullanici'@'127.0.0.1' IDENTIFIED BY 'parolaniz'; mysql> GRANT ALL PRIVILEGES ON tekir.* TO 'kullanici'@'127.0.0.1'; mysql> FLUSH PRIVILEGES; mysql> exit
Tabloları ve varsayılan verileri oluşturun. Burada kullanici kullanıcısı için oluşturduğunuz parolayı yazmanız gerekmektedir:
mysql -u kullanici -h 127.0.0.1 -p tekir < /tmp/tekir-2.1-linux-install/tekir/tekir.sql
Veritabanı bağlatısı için gereken bilgiler /tmp/tekir-2.1-linux-install/tekir dizininde tekir-ds.xml içinde bulunmaktadır. Veritabanını oluşturduktan sonra buradaki bilgilerin düzenlenmesi gerekmektedir. Kullanici ve parola yerine veritabanında oluşturduğunuz kullanıcı adını ve parolasını yazmanız gerekir. Dosya içeriği şu şekildedir :
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE datasources PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" "http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <datasources> <local-tx-datasource> <jndi-name>tekirDatasource</jndi-name> <connection-url>jdbc:mysql://localhost:3306/tekir?characterEncoding=UTF-8</connection-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <user-name>kullanici</user-name> <password>parolaniz</password> <exception-sorter-class-name> org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter </exception-sorter-class-name> <metadata> <type-mapping>mySQL</type-mapping> </metadata> </local-tx-datasource> </datasources>
Tekir’in JBoss’a yüklenmesi
Tekir EAR dosyasını kopyalayın:
cp /tmp/tekir-2.1-linux-install/tekir/tekir.ear /opt/tekir/server/default/deploy
Veritabanı bağlantı bilgisini kopyalayın:
cp /tmp/tekir-2.1-linux-install/tekir/tekir-ds.xml /opt/tekir/server/default/deploy
E-posta bağlantı bilgisini kopyalayın:
cp /tmp/tekir-2.1-linux-install/tekir/tekir-mail-service.xml /opt/tekir/server/default/deploy
Tekir ayar dosyasını kopyalayın:
cp /tmp/tekir-2.1-linux-install/tekir/tekir.properties /opt/tekir/server/default/conf
MySQL JDBC sürücünü kopyalayın:
cp /tmp/tekir-2.1-linux-install/lib/mysql.jar /opt/tekir/server/default/lib
Baskı şablonları ve kullanım sırasında yüklenecek olan dosyalar için klasörleri hazırlayın:
mkdir /var/tekir mkdir /var/tekir/sablonlar mkdir /var/tekir/dosyalar cp -r /tmp/tekir-2.1-linux-install/tekir/sablonlar /var/tekir chown tekir:tekir -R /var/tekir/ rm -rf /tmp/tekir-2.1-linux-install
Jboss servisini yeniden başlatıyoruz:
service tekir restart
Yukarıdaki işlemlerin sonucunda Tekir uygulama sunucusuna kurulmuş durumdadır. Denemek için metin tabanlı bir tarayıcıdan(Elinks) ip adresini girebilirsiniz. Elinks yüklemek için aşağıdaki komutu vermeniz yeterlidir. :
yum install -y elinks.x86_64
Tarayıcıyı ile tekir uygulamasına gitmek için aşağıdaki komutu kulanabilirsiniz(ipadresi yerine sanal makinenizin IP adresini yazın). Tarayıcıdan çıkmak için ctrl+c tuşuna basmanız yeterli:
links 127.0.0.1:8080/tekir
Uygulamaya ilk giriş için kullanıcı adı tekir ve parolası tekir’dir.
Nginx Kurulumu
Öncelikle Nginx’i yüklüyoruz:
yum install -y http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm yum install -y nginx.x86_64
Nginxi çalıştırıp, sistem açılışında çalışmasını sağlıyoruz:
service nginx start chkconfig --levels 235 nginx on
/etc/nginx/conf.d dizini altında Tekir için bir konfigürasyon dosyası(tekir.conf) oluşturuyoruz ve mevcut öntanımlı dosya ile çakışmaması için default.conf dosyasını siliyoruz:
rm -f /etc/nginx/conf.d/default.conf
Tekir.conf dosyası aşağıdaki gibi olmalıdır:
server { listen 80 default_server; server_name _; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8080/tekir/; } location /tekir/ { proxy_pass http://127.0.0.1:8080/tekir/; } }
Değişiklikleri yaptıktan sonra servisi yeniden başlatıyoruz:
service nginx restart
Bu ayarları da yaptıktan sonra makineyi çalıştırdığımızda tarayacınızdan IP adresinizi girerek Tekir’in giriş sayfasına ulaşabilirsiniz.
Not: Sistem ilk açıldığında Jboss’un çalışması, sistem donanımına bağlı olarak bir kaç dakika alabilir.
Son Yorumlar