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.

    Paylaşın:
    • Digg
    • StumbleUpon
    • del.icio.us
    • Facebook
    • Yahoo! Buzz
    • Twitter
    • Google Bookmarks
    • Reddit
    • Technorati
    • Add to favorites
    • email
    • Google Buzz
    • LinkedIn
    • Live
    • RSS
    Bu yazı Teknoloji kategorisine gönderilmiş ve , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.