Ö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
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:
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.