fatihbilgin.com LEMP Yapısı 2

Önceki bir yazımda LEMP yapısından bahsetmiştim. Bu yazımda LEMP yapısını kurmak için neler yaptığımdan bahsedeceğim.

Önce LEMP’in “L”sinden başlayalım. Linux olarak Ubuntu kullandım, Ubuntu dağıtımını kurmak için özel sanal servis sağlayıcım olan Linode’un hazır Ubuntu linux dağıtımını kullandım. Bunu yaptıktan sonra ssh ile bağlanabileceğim bir Ubuntu sunucum oluştu. Bu aşamada sunucu isimlendirmesi, sunucu saat ayarı belirleme gibi bir takım işlemler ile bir takım yardımcı araçlar yükledim. Yüklediğim yardımcı araçlar sırası ile

  • gcc : C/C++ derleyicisi
  • locate: dosya ve klasör bulmayı kolaylaştıran bir program.
  • Sırasıyla çalıştırdığım komutlar ise şu şekilde:
    echo "Sunucu Adı" > /etc/hostname
    hostname -F /etc/hostname
    ln -sf /usr/share/zoneinfo/Europe/Istanbul /etc/localtime
    apt-get install gcc
    apt-get install locate

    Bu komutları yürüttükten sonra sıra LEMP’in “E” sine geldi. Nginx kurmak aptitude sayesinde o kadar kolay ki:
    apt-get install nginx

    LEMP’in “M”si için MySql kuracağız:
    apt-get install mysql-server mysql-client
    mysql_secure_installation

    İkinci satır ile mysql’imizin güvenlik ayarları için bir sihirbaz çıkacak. Bu sihirbazı uygun şekilde doldurabilirsiniz. Son kurulumumuz ise LEMP’in “P”si olan php. Php kurmak için yapılacaklar basit, bu aşamada sadece php değil php’nin mysql istemcisini ve wordpress’e Nginx üzerinden erişim için kullanacağımız fastcgi kurulumlarını da yapıyoruz:

    apt-get install php5-cli php5-cgi psmisc spawn-fcgi
    apt-get install php5-mysql

    Artık wordpress kurulumuna geçebiliriz. Bunu yapmak için aşağıdaki komutları kullanabilirsiniz:

    cd /var/www/
    wget http://wordpress.org/latest.zip
    unzip latest.zip

    Şimdi php konfigürasyonumuza geçelim. Fastcgi üzerinden wordpress’i çalışacak ve Nginx bu fastcgi prosesi aracılığı ile wordpress sitemizi sunuyor olacak. Bunu başarabilmek için fastcgi’ı yüklemiştik şimdi de fastcgi’i konfigüre edelim.

    wget -O php-fastcgi-deb.sh http://library.linode.com/assets/554-php-fastcgi-deb.sh
    mv php-fastcgi-deb.sh /usr/bin/php-fastcgi
    chmod +x /usr/bin/php-fastcgi
    wget -O init-php-fastcgi-deb.sh http://library.linode.com/assets/553-init-php-fastcgi-deb.sh
    mv init-php-fastcgi-deb.sh /etc/init.d/php-fastcgi
    chmod +x /etc/init.d/php-fastcgi
    /etc/init.d/php-fastcgi start
    update-rc.d php-fastcgi defaults

    Bu komutlar sayesinde php-fastcgi prosesimiz sunucu üzerinde çalışmakta ve her yeniden başlatma işlemi sonrasında tekrar başlıyor olacak. Yukarıdaki betiklerden ilki prosesin 9000 nolu porttan çalışacağını yazıyor eğer dilerseniz bunu değiştirebilirsiniz. Bu ayarı değiştirirseniz aşağıdaki Nginx konfigürasyonunda da ilgili alana değiştirdiğiniz port numarasını girmelisiniz.

    Sırada Mysql konfigürasyonumuz var. MySql zaten varsayılan ayarları ile çalışıyor olacak, yapmamız gereken sitemizin verilerinin bulunacağı veritabanını ve erişim için bir kullanıcı eklemek:

    mysql -u root -p

    Bu aşamada daha önce belirlediğimiz root şifresi bize soruluyor olacak bunu girdikten sonra ise şu komutları çalıştıralım:

    CREATE DATABASE WP;
    CREATE USER 'WP' IDENTIFIED BY 'SIFREMIZ';
    GRANT ALL PRIVILEGES ON WP.* TO 'WP';

    Artık Nginx konfigürasyonumuzu yapabiliriz. Bunun için /etc/nginx/sites-enabled klasörü altında bir Nginx konfigürasyon dosyası eklemek. Dosyasının adını dilediğiniz gibi oluşuturup, favori editörünüz ile güncelleyebilirsiniz.
    cd /etc/nginx/sites-enabled/
    touch blog
    vim blog

    Editör ile açtıktan sonra içerik olarak bu satırlara kendi alan adımızı, wordpress’in kurulduğu klasör bilgilerini ve php-fcgi prosesinin çalıştığı port bilgisini eklemeliyiz. Örnek bir dosya aşağıdaki şekilde olabilir.

    server {
    listen 80; # web sunucusunun çalışacağı port
    server_name blog.alanadim.com; # alan adınız

    location / {
    root /var/www/wordpress; # WordPress'in kurulu oldugu klasor
    index index.php index.html index.htm;
    # statik dosyaların rewrite edilmeden sunulmasını saglar
    if (-f $request_filename) {
    expires 30d;
    break;
    }

    # Bulunamayan dosya ve klasorler index.php'ye yonlendirilerek wordpress'in rewrite modulunun calismasi saglanir
    if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php?q=$1 last;
    }
    }

    location ~ \.php$ {
    fastcgi_pass localhost:9000; # FASTCGI prosesinin çalışacağı port.
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www/wordpress$fastcgi_script_name; # Yukaridaki wordress ile aynı olacak.

    fastcgi_param QUERY_STRING $query_string;
    fastcgi_param REQUEST_METHOD $request_method;
    fastcgi_param CONTENT_TYPE $content_type;
    fastcgi_param CONTENT_LENGTH $content_length;

    fastcgi_param SCRIPT_NAME $fastcgi_script_name;
    fastcgi_param REQUEST_URI $request_uri;
    fastcgi_param DOCUMENT_URI $document_uri;
    fastcgi_param DOCUMENT_ROOT $document_root;
    fastcgi_param SERVER_PROTOCOL $server_protocol;

    fastcgi_param GATEWAY_INTERFACE CGI/1.1;
    fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

    fastcgi_param REMOTE_ADDR $remote_addr;
    fastcgi_param REMOTE_PORT $remote_port;
    fastcgi_param SERVER_ADDR $server_addr;
    fastcgi_param SERVER_PORT $server_port;
    fastcgi_param SERVER_NAME $server_name;

    fastcgi_param REDIRECT_STATUS 200;
    }
    }

    Artık sitemiz çalışıyor ve erişilebiliyor olmalı ancak wordpress kurulumumuzu tamamlamız lazım. Bunun için de yapmamız gerekenler şu adımları yapmak:

  • /var/www/wordpress/wp-config-sample.php dosyasının içeriğine DB_NAME, DB_USER, DB_PASSWORD alanlarını daha önce tanımladığınız veritabanı bilgileri ile doldurmak.
  • Yine aynı dosyada bulunan WPLANG parametresini tr-TR olarak belirtmek (Eğer siteniz türkçe olacaksa)
  • Dosyanın adını wp-config.php olarak değiştirmek.
  • Artık LEMP yapısında çalışan blogunuz hazır. Nginx ayarlarınız aktif olması için Nginx’i aşağıdaki komut ile tekrar başlatmanız yeterli.

    /etc/init.d/nginx stop
    /etc/init.d/nginx start

    Bu aşamadan sonra alan adınızı favori tarayıcınızda açıp standart wordpress sihirbazında sitenizle ilgili bilgiler vererek kurulumunuzu tamamlayabilirsiniz.

    Teknoloji kategorisine gönderildi | , , ile etiketlendi | Yorum yapın

    VPS Özel Sanal Sunucu ve Linode

    VPS (Virtual Private Server) özel sanal sunucu anlamına gelmektedir. Son bir kaç yıldır yaygınlaşan bu hizmeti standart sunucu hizmetlerinden ayıran özelliği işletim sistem üzerinde bir özel sunucu (Dedicated Server) gibi erişim hakkınızın olması. Bu nedenle ismi “Özel Sanal Sunucu”. Özel sanal sunucu çözümlerinin, özel sunuculara göre avantajı daha makul sahip olma maliyetleri olması. Linode Xen özel sanal sunucu sistemini kullanan bir servis sağlayıcı. Linode Linux Nodes kelimelerini kısaltması, kısaca Linux ağları anlamına geliyor.

    VPS sağlayan bir servis sağlayıcı hem Windows hem Linux’a destek verebilir, Linode hem teknik bazı avantajlar hem de daha performanslı olması açısından burada detayına girmeyeceğim PVM(Para-Virtualized Machines) kullanıyor ve Windows 2008 Xen desteklediği halde PVM değil HVM(Hardware-Virtualized Machine) desteklediği için windows desteği Linode’da yok. Bence olmasın da zaten, 512MB RAM’li bir Linode her şeyinize yetebilecek iken windows için 2GB RAM’li çok daha pahalı bir çözüm gerekeceği için Linux kullanmak daha makul.

    Linode’da işletim sistemi kurmak, ayarlamak ve web uygulamalarınızı barındırmakla ilgili bir takım yazılar yazmayı düşünüyorum. Eğer siz zaten Linux’a yabancı değilseniz hemen linode’a abone olabilirsiniz. Abone olurken Linode linkini kullanırsanız ben sizleri referans etmiş olacağım. Eğer direkt Linode sitesinden abone olursanız beni referans etmek isterseniz “referral code” olarak “32a1170bcc492089a76a1d41192174d9947e4951” değerini kullanabilirsiniz. Linode’a abone olurken İngiltere’de bulunan sunucularından almaya bakın, ülkemizden ve Avrupa’dan çok hızlı erişim sağlayabilirsiniz böylece. Eğer Linux’tan çok anlamıyorsanız yine de endişe etmeyin Linode kullanmak çok basit ve temel linux bilgilerini Linode’un Linux kütüphanesini kullanarak edinebilirsiniz.

    Teknoloji kategorisine gönderildi | , ile etiketlendi | Yorum yapın

    AirTies İTÜ IEEE Kariyer Günlerinde!

    9-10 Mart (2011)’de İTÜ IEEE Kariyer Günlerine katılıyor olacak. 9 Mart günü AirTies adına ben İTÜ’de olacağım. AirTies’da iş/staj imkanları ile ilgili bilgi almak isterseniz bana 9 Mart’ta İTÜ’de ulaşabilirsiniz. Ayrıca AirTies’da yapılan AR-GE çalışmaları ile ilgili İTÜ’lüleri bilgilendirmeye çalışıyor olacağım.

    Etkinliklerle ilgili detaylı bilgiye ulaşmak isterseniz www.ituieee.com sitesini ziyaret edebilirsiniz.

    Görüşmek Üzere.

    Airties kategorisine gönderildi | ile etiketlendi | Yorum yapın